首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Heroku webapp-runner JNDI命名,资源不可用

Heroku webapp-runner JNDI命名,资源不可用
EN

Stack Overflow用户
提问于 2017-02-21 10:08:50
回答 1查看 3.8K关注 0票数 2

我在我的src/main/webapp/META-INF/context.xml中声明了这个资源

代码语言:javascript
复制
<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)使用以下命令运行时:

代码语言:javascript
复制
java -jar target/dependency/webapp-runner.jar target/*.war --enable-naming

我收到此警告,资源不可用:

代码语言:javascript
复制
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中,但这并没有什么区别:

代码语言:javascript
复制
<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>   

请给我建议。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-21 14:25:13

dbcp2 JAR文件需要放在java命令的类路径上。要做到这一点,您需要使用-cp选项而不是-jar选项。您的命令将如下所示(假设dbcp2 JAR也在target/dependency dir中):

代码语言:javascript
复制
java -cp target/dependency/*.jar webapp.runner.launch.Main target/*.war --enable-naming
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42364354

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档