我获得了一个工作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的连接器的Java-5.1.23-bin.jar
还尝试将此文件复制到tomcat / lib文件夹。
MySQL配置了数据库jsea,连接中提供的用户具有权限。
在MySQL日志中,我看不到任何条目。
我已经用Google搜索了几个小时,我真的不知道。我做错了什么?
答案 0 :(得分:1)
没有合适的司机"通常意味着您提供给连接的JDBC URL具有错误的语法或者根本没有加载驱动程序。
当调用getConnection方法时,DriverManager
将尝试从初始化时加载的驱动程序中找到合适的驱动程序,并使用与当前applet或应用程序相同的类加载器显式加载的驱动程序。(使用Class.forName()
})
我建议将mysql-connector-java-5.1.23-bin.jar
放在项目的/WEB-INF/lib
目录中,然后重新启动Tomcat。此外,检查Tomcat 日志,您应该找到一些不寻常的东西。
答案 1 :(得分:0)
我真的不知道是什么导致了这个问题。我收到了webservice的源代码,清理了项目,重建了,它突然起作用....