【发布时间】:2017-05-20 14:56:11
【问题描述】:
我正在尝试为 JSF-EJB 项目部署 Wildfly 10。
我的 oracle.jdeveloper.db.connection.jar 在 eclipse(4.4.0) 的库中定义并放置了 ojdbc6。 jar 在以下路径 C:\wildfly\wildfly-10.0.0.Final\modules\system\layers\base\com\oracle\main 和 module.xml.
我已经成功测试了来自localhost:9990/console的数据源
以下是我的 web.xml 参考:
<resource-ref>
<description>DB Connection</description>
<res-ref-name>java:/OracleDS</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
<res-sharing-scope>Shareable</res-sharing-scope>
</resource-ref>
我在 standalone.xml
中使用以下数据源 <datasources>
<datasource jndi-name="java:/OracleDS" pool-name="OracleDS" enabled="true" use-java-context="true">
<connection-url>jdbc:oracle:thin:@localhost:1521:xe</connection-url>
<driver>oracle</driver>
<pool>
<min-pool-size>1</min-pool-size>
<max-pool-size>5</max-pool-size>
<prefill>true</prefill>
</pool>
<security>
<user-name>Example</user-name>
<password>XXX</password>
</security>
</datasource>
<drivers>
<driver name="oracle" module="com.oracle">
<driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
</driver>
</drivers>
</datasources>
我在 module.xml 中使用以下行:
<module xmlns="urn:jboss:module:1.3" name="com.oracle">
<resources>
<resource-root path="ojdbc6.jar"/>
</resources>
<dependencies>
<module name="javax.api"/>
<module name="javax.transaction.api"/>
<module name="javax.servlet.api" optional="true"/>
</dependencies>
</module>
在部署期间,我收到以下 2 个错误。两者都与数据源相关:
17:20:19,404 错误 [org.jboss.msc.service.fail](MSC 服务线程 1-1) MSC000001:启动服务失败 jboss.deployment.unit."test11_R_Copy.war".INSTALL: 服务中的 org.jboss.msc.service.StartException jboss.deployment.unit."test11_R_Copy.war".INSTALL: WFLYSRV0153: 失败 处理部署“test11_R_Copy.war”的安装阶段 org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:154) 在 org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1948) 在 org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1881) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 在 java.lang.Thread.run(Thread.java:745) 原因: java.lang.IllegalArgumentException:WFLYEE0047:不兼容 java:/OracleDS 源中的冲突绑定:查找 (java:comp/DefaultDataSource) 在 org.jboss.as.ee.component.deployers.ModuleJndiBindingProcessor.addJndiBinding(ModuleJndiBindingProcessor.java:238) 在 org.jboss.as.ee.component.deployers.ModuleJndiBindingProcessor.deploy(ModuleJndiBindingProcessor.java:107) 在 org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:147) ... 5 更多
以下错误也涉及数据源。
17:20:19,419 错误 [org.jboss.as.controller.management-operation] (DeploymentScanner-threads - 2)WFLYCTL0013:操作(“部署”) 失败 - 地址:([("deployment" => "test11_R_Copy.war")]) - 失败 描述: { "WFLYCTL0080: 失败的服务" => {"jboss.deployment.unit.\"test11_R_Copy.war\".INSTALL" => “服务中的 org.jboss.msc.service.StartException jboss.deployment.unit.\"test11_R_Copy.war\".INSTALL: WFLYSRV0153: 未能处理部署“test11_R_Copy.war”的阶段安装 > 原因:java.lang.IllegalArgumentException:WFLYEE0047:java:/OracleDS 源的不兼容冲突绑定:查找 (java:comp/DefaultDataSource)"}, “WFLYCTL0180:缺少/不可用依赖项的服务”=> [ "jboss.deployment.unit.\"test11_R_Copy.war\".batch.environment 丢失 [jboss.deployment.unit.\"test11_R_Copy.war\".beanmanager]", "jboss.deployment.unit.\"test11_R_Copy.war\".weld.weldClassIntrospector 缺少 [jboss.deployment.unit.\"test11_R_Copy.war\".beanmanager]"
我没有使用 persistence.xml。
我哪里做错了?
谢谢。
【问题讨论】:
-
我不是命名专家,但也许可以尝试从您的 web.xml 中删除引用。通过配置方式,部署应该已经可以看到它。
-
@James 谢谢。这就是问题所在,我更改了它起作用的 xml 标记。我将发布解决方案。
标签: oracle deployment datasource wildfly