使用Oracle数据源进行Wildfly部署

时间:2017-05-20 14:56:12

标签: oracle deployment datasource wildfly

我正在尝试为一个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

我在哪里做错了?

谢谢。

2 个答案:

答案 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>解决了问题