我正在尝试为一个JSF-EJB项目部署Wildfly 10。
我在eclipse(4.4.0)的库中定义了 oracle.jdeveloper.db.connection.jar ,并放置了 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 ERROR [org.jboss.msc.service.fail](MSC服务主题) 1-1)MSC000001:无法启动服务 。jboss.deployment.unit&#34; test11_R_Copy.war&#34; .INSTALL: 服务中的org.jboss.msc.service.StartException jboss.deployment.unit。&#34; test11_R_Copy.war&#34; .INSTALL:WFLYSRV0153:失败 处理阶段INSTALL of deployment&#34; test11_R_Copy.war&#34;在 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 source:lookup (java:comp / DefaultDataSource) at 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个
以下ERROR也指数据源。
17:20:19,419 ERROR [org.jboss.as.controller.management-operation] (DeploymentScanner-threads - 2)WFLYCTL0013:操作(&#34;部署&#34;) 失败 - 地址:([(&#34;部署&#34; =&gt;&#34; test11_R_Copy.war&#34;)]) - 失败 说明:{ &#34; WFLYCTL0080:服务失败&#34; =&GT; {&#34; jboss.deployment.unit \&#34; test11_R_Copy.war \&#34; .INSTALL&#34; =&GT; &#34;服务中的org.jboss.msc.service.StartException jboss.deployment.unit。\&#34; test11_R_Copy.war \&#34; .INSTALL:WFLYSRV0153: 无法处理部署INSTALL部署\&#34; test11_R_Copy.war \&#34; 的 &GT;引起:java.lang.IllegalArgumentException:WFLYEE0047:java上的冲突绑定不兼容:/ OracleDS source:lookup (Java:COMP / DefaultDataSource)&#34;}, &#34; WFLYCTL0180:具有缺失/不可用依赖性的服务&#34; =&GT; [ &#34; jboss.deployment.unit。\&#34; test11_R_Copy.war \&#34; .batch.environment缺失[jboss.deployment.unit。\&#34; test11_R_Copy.war \&#34;。 beanmanager]&#34 ;, &#34; jboss.deployment.unit \&#34; test11_R_Copy.war \&#34; .weld.weldClassIntrospector 缺少[jboss.deployment.unit。\&#34; test11_R_Copy.war \&#34; .beanmanager]&#34;
我没有使用 persistence.xml 。
我在哪里做错了?
谢谢。
答案 0 :(得分:2)
评论resource-ref
中的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>
-->
答案 1 :(得分:0)
通过<resource-ref>
<resource-env-ref>
解决了问题