ローカルホストのTomcat 8.5で実行するとjsp webappが正常に動作しますが、サーバに置くと、私はドライバを読み込めません例外。JDBCドライバクラス 'org.neo4j.jdbc.Driver'を読み込むことができません
私はjarファイルをホーム/ libフォルダにあることを確認している
(ケースでは、Amazon EC2上で稼働しているサーバーは、Ubuntuの16で任意の違いを行う必要があります)。 tomcatを実行しているユーザーに権限があります(my jstl jar works)。 デーモンをリロードしてサービスを再開しようとしました。
私はこの件に関して多量のスレッドを探していますが、正解を見つけることはできません。
これは私の(関連)コンテキストです:
<Resource name="jdbc/MyDB"
auth="Container"
type="javax.sql.DataSource"
username="myname"
password="mypass"
driverClassName="org.neo4j.jdbc.Driver"
url="jdbc:neo4j:bolt://localhost"
maxActive="8"
maxIdle="4"/>
(名とパスワードは明らかに本物ではありません)
これはエラーを公開するクラスからのコードです:
Context initContext = new InitialContext();
Context webContext = (Context)initContext.lookup("java:/comp/env");
DataSource ds = (DataSource) webContext.lookup("jdbc/MyDB");
con = ds.getConnection();
これは私のスタックトレースです:
Unfortunately something went wrong. This to be specific:
java.sql.SQLException: Cannot load JDBC driver class 'org.neo4j.jdbc.Driver'
at org.apache.tomcat.dbcp.dbcp2.BasicDataSource.createConnectionFactory(BasicDataSource.java:2145)
at org.apache.tomcat.dbcp.dbcp2.BasicDataSource.createDataSource(BasicDataSource.java:2037)
at org.apache.tomcat.dbcp.dbcp2.BasicDataSource.getConnection(BasicDataSource.java:1543)
at myapp.model.neo4j.LoginHandler.login(LoginHandler.java:24)
at myapp.control.LoginServlet.doPost(LoginServlet.java:27)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:648)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165)
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:474)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:624)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:349)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:783)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:789)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1437)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.ClassNotFoundException: org.neo4j.jdbc.Driver
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1285)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1119)
at org.apache.tomcat.dbcp.dbcp2.BasicDataSource.createConnectionFactory(BasicDataSource.java:2136)
... 28 more
あなたはそれが 'ホーム/ lib'であると言うとき、あなたはそれで何を意味するのですか?ドライバ(と必要なすべての依存関係)は、tomcatの 'lib'フォルダ(' $ CATALINA_HOME/lib'とも呼ばれます。http://stackoverflow.com/questions/11496280/how-do-i-find-theを参照してください) -value-of-catalina-home –
私が家に言いましたら、$ CATALINA_HOME/libを参照してください(何があるべきか)。その場所について何か怪しいものがあるかどうか確認するために投稿をチェックしてください。 – oht
$ ps aux | grep catalina私は-Dcatalina.base =/opt/tomcat -Dcatalina.home =/opt/tomcatを取得します。私は自分のlibフォルダを持っています。 – oht