【发布时间】:2016-03-13 03:11:02
【问题描述】:
我已经在我的演示应用程序中包含了 mysql jdbc 驱动程序。
/tmp/jettytmp$ find . -name "*.jar"
./jetty-0.0.0.0-8080-auth-0.1.war-_auth-any-7537667183570190622.dir/webapp/WEB-INF/lib/mysql-connector-java-5.1.38.jar
但是,当我尝试登录我的演示应用程序时,java.lang.ClassNotFoundException 抛出:
java.lang.ClassNotFoundException: org.gjt.mm.mysql.Driver
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:191)
at org.eclipse.jetty.security.JDBCLoginService.connectDatabase(JDBCLoginService.java:197)
at org.eclipse.jetty.security.JDBCLoginService.loadUser(JDBCLoginService.java:238)
at org.eclipse.jetty.security.MappedLoginService.login(MappedLoginService.java:221)
at org.eclipse.jetty.security.JDBCLoginService.login(JDBCLoginService.java:222)
at org.eclipse.jetty.security.authentication.LoginAuthenticator.login(LoginAuthenticator.java:61)
at org.eclipse.jetty.security.authentication.FormAuthenticator.login(FormAuthenticator.java:194)
at org.eclipse.jetty.security.authentication.FormAuthenticator.validateRequest(FormAuthenticator.java:270)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:512)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:215)
at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:110)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)
at org.eclipse.jetty.server.Server.handle(Server.java:499)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:311)
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257)
at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:544)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635)
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555)
at java.lang.Thread.run(Thread.java:745)
2016-03-12 15:41:32.894:WARN:oejs.JDBCLoginService:qtp1980086877-13: UserRealm Admin Login could not load user information from database
java.sql.SQLException: Can't connect to database
从日志中可以看到JDBCLoginService尝试连接数据库,但是找不到jdbc驱动。但是 jdbc 驱动程序已经包含在演示应用程序中了吗?如何解决这个问题,任何 cmets 都会受到赞赏。 我的码头版本是 9.2。我使用以下命令启动演示应用程序: java -jar /*/jetty-distribution-9.2.15.v20160210/start.jar
【问题讨论】: