我在我的src/main/webapp/META-INF/context.xml中声明了这个资源
<Resource name="jdbc/myDB" type="javax.sql.DataSource" auth="Container" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://..." username="..." password="..." />当我将我的应用程序部署到Tomcat 8上时,它运行良好,资源是可用的。
但是,当我试图通过webapp-runnner (本地或Heroku)使用以下命令运行时:
java -jar target/dependency/webapp-runner.jar target/*.war --enable-naming我收到此警告,资源不可用:
WARNING: Failed to register in JMX: javax.naming.NamingException: Could not create resource factory instance [Root exception is java.lang.ClassNotFoundException: org.apache.tomcat.dbcp.dbcp2.BasicDataSourceFactory]我尝试将这些依赖项添加到我的pom.xml中,但这并没有什么区别:
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-dbcp2</artifactId>
<version>2.1.1</version>
</dependency>
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-dbcp</artifactId>
<version>7.0.65</version>
</dependency> 请给我建议。
发布于 2017-02-21 14:25:13
dbcp2 JAR文件需要放在java命令的类路径上。要做到这一点,您需要使用-cp选项而不是-jar选项。您的命令将如下所示(假设dbcp2 JAR也在target/dependency dir中):
java -cp target/dependency/*.jar webapp.runner.launch.Main target/*.war --enable-naminghttps://stackoverflow.com/questions/42364354
复制相似问题