我最近更换了我的工作计算机,在那里我测试了在Maven上运行的Web应用程序。目前,我在将Servlet连接到MySQL数据库时遇到了问题
//Database
String DB_URL="jdbc:mysql://localhost:3306/adminhub";
//Credentials
String USR = "root";
String PASS = "password";
try {
// Register JDBC driver
Class.forName("com.mysql.jdbc.Driver");
//Establish Database Connection
Connection conn = DriverManager.getConnection(DB_URL, USR, PASS);
//SQL Statement Execution
Statement stm = conn.createStatement();
if (comboSrch.equals("Tag")) {
sqlm = "Select * from knowledge where Tag1 like '%" + boxSrch + "%' or Tag2 like '%" + boxSrch +"%';";
} else {
sqlm = "Select * from knowledge where " + comboSrch + " like '%" + boxSrch + "%';";
}
ResultSet mid = stm.executeQuery(sqlm);
while (mid.next()) {
Name = mid.getString("KName");
Path = mid.getString("KPath");
out.println("<a href=\"" + Path + "\">" + Name + "</a><br>");
}
mid.close();
stm.close();
conn.close();
} catch (SQLException se){
se.printStackTrace();
System.out.println("Servlet failed to Load the desired resource");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
java.sql.SQLException: Communication link failure: Bad handshake
Servlet failed to Load the desired resource
at com.mysql.jdbc.MysqlIO.init(Unknown Source)
at com.mysql.jdbc.Connection.connectionInit(Unknown Source)
at com.mysql.jdbc.jdbc2.Connection.connectionInit(Unknown Source)
at com.mysql.jdbc.Driver.connect(Unknown Source)
at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:677)
at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:228)
at com.company.adm.Knowledge.doPost(Knowledge.java:78)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:650)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:800)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:806)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1498)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1135)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.base/java.lang.Thread.run(Thread.java:844)
编辑:我确信Servlet设法找到了数据库,但随后失败了
Edit2:这是我的POM文件
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.company</groupId>
<artifactId>adm</artifactId>
<version>0.5 - Enif</version>
<packaging>war</packaging>
<name>adm</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.target>1.7</maven.compiler.target>
<maven.compiler.source>1.7</maven.compiler.source>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jsp-api</artifactId>
<version>2.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-api</artifactId>
<version>3.11.0</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>2.0.14</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<webXml>WebContent\WEB-INF\web.xml</webXml>
</configuration>
</plugin>
</plugins>
</build>
</project>
正如你提到的,你在更换工作电脑后得到的问题,这与我的情况类似。我的问题是由JDK、mysql及其连接器的版本引起的。由于@kristianmitk,您可能需要在连接字符串中添加enabledtlsprotocols=tlsv1.2
配置属性来解决问题。像这样:
jdbc:mysql://<host>:<port>/<dbname>?enabledTLSProtocols=TLSv1.2
有关版本冲突的更多信息,您也可以参考此问题。
笔记: 最初我试图从使用如下代码 代码1: 错误: 在谷歌搜索之后,我发现您已经使用了SSL验证,使用适配器会话可以解决这个问题。但我仍然有错误,请找到下面的代码和错误 代码2: 错误:
我正在go中运行https web服务器。我正在使用angular web应用程序(Chrome浏览器)对其进行测试,该应用程序可以对web服务器进行ajax调用。 如果我不断地点击网络服务器,一切似乎都正常。但每当我让它闲置一段时间并点击web服务器时,来自浏览器的ajax调用都不会得到响应。我几乎总是在服务器日志中看到此日志行。 我可以确认IP地址是我的IP地址。 我像这样启动我的https服
问题内容: 我正在使用和大多数查询。加工。一些查询不起作用。我尝试了Node的每个版本(从0.5 …到(5.6.0),也尝试了(4.0)和(4.1),没有任何帮助。 我试图按性别进行更改,但没有工作。我试图将文件更改为:并没有帮助。 我阅读了这些问题和GitHub,但没有任何帮助。 我可以尝试自己修复它,但是我需要更多信息。超时在哪里,为什么?什么时候?这是什么类型的消息?超时从哪里来? 问题答案
我正在编写一个web应用程序,其中客户端将(JSON)表单数据发布到,服务器也应该使用JSON进行响应。服务器端使用java servlet编写,运行在Tomcat上,客户端使用Angular 7编写。不幸的是,即使在通过HTTP头启用CORS之后,我仍然面临CORS错误。我有什么遗漏吗? 这就是我在客户端遇到的错误:在'http://localhost:8080/mysocial/signIn“
我们有一个应用程序,它将一些xml数据发布到另一个应用程序,并通过ApacheWeb服务器(版本2.2.26)反向代理传输流量。我们观察到一些零星的代理错误(http响应代码500)-删除服务器的SSL握手错误。错误消息显示在apache web服务器错误日志中。 早些时候,我们使用sunOne网络服务器,我们没有注意到这个错误。我怀疑可能是apache网络服务器上的一些缺失配置导致了这个问题。这
我正在尝试使用SSL证书将java客户端与JMX服务器连接。 但是不幸的是,这个连接给出了一个SSL握手错误。当我尝试使用< code >-DJ avax . net . debug = all 标志对此进行调试时,我在java客户端上得到以下错误消息。 2016-07-15T13:29:50.02-0700[APP/0]退出RMI更新清洁-[10.200.0.27:44445,javax.rmi