0

我得到了一个工作 web 服务的 WAR 文件,它通过托管在 TomCat 7 中的 JDBC 访问 MySQL。

代码:

 private static final String db_jdbc_connection = "jdbc:mysql://localhost:3306/jsea";
 Class.forName("com.mysql.jdbc.Driver");
 con = DriverManager.getConnection(db_jdbc_connection, "root, "secret");

但是,这会导致以下错误:

No suitable driver found for jdbc:mysql://localhost:3306/jsea
  [ERROR] Exception occurred while trying to invoke service method clientSignUp
java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)  at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.axis2.rpc.receivers.RPCUtil.invokeServiceClass(RPCUtil.java:212)
at org.apache.axis2.rpc.receivers.RPCMessageReceiver.invokeBusinessLogic(RPCMessageReceiver.java:117)
at org.apache.axis2.receivers.AbstractInOutMessageReceiver.invokeBusinessLogic(AbstractInOutMessageReceiver.java:40)
at org.apache.axis2.receivers.AbstractMessageReceiver.receive(AbstractMessageReceiver.java:110)
at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:181)
at org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:172)
at org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:146)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)

在 web 服务的 web-inf/LIB 文件夹中,存在以下 JAR 文件:

mysql-connector-java-5.1.23-bin.jar

还尝试将此文件复制到 tomcat/lib 文件夹。

MySQL 配置了数据库 jsea,并且连接中提供的用户具有权限。

在 MySQL 日志中,我根本看不到任何条目。

我已经用谷歌搜索了几个小时,我真的不知道。我究竟做错了什么 ?

4

2 回答 2

1

没有合适的驱动程序”通常意味着您提供的用于连接的 JDBC URL 语法不正确,或者根本没有加载驱动程序。

当调用 getConnection 方法时,DriverManager将尝试从初始化时加载的驱动程序和使用与当前小程序或应用程序相同的类加载器显式加载的驱动程序中找到合适的驱动程序。(使用Class.forName()

我建议放置mysql-connector-java-5.1.23-bin.jar/WEB-INF/lib您的项目目录中并重新启动 Tomcat。此外,检查 Tomcat日志,您应该会发现一些异常情况。

于 2013-03-07T13:08:04.177 回答
0

我真的不知道是什么导致了这个问题。我已经收到了webservice的源代码,清理了项目,重新构建,它突然工作了......

于 2013-03-08T14:05:33.293 回答