首页 文章

使用Oracle Datasource进行Wildfly部署

提问于
浏览
1

我正在尝试为一个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 . “test11_R_Copy.war”.INSTALL:org.jboss . 服务jboss.deployment.unit中的msc.service.StartException . “test11_R_Copy.war”.INSTALL:WFLYSRV0153:无法在org.jboss.as.server.deployment.DeploymentUnitPhaseService.start处理部署“test11_R_Copy.war”的阶段INSTALL( DeploymentUnitPhaseService.java:154)org.jboss.msc.service.ServiceControllerImpl $ StartTask.startService(ServiceControllerImpl.java:1948)at org.jboss.msc.service.ServiceControllerImpl $ StartTask.run(ServiceControllerImpl.java:1881)at java .util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)at java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:617)at java.lang.Thread.run(Thread.java:745) by:java.lang.IllegalArgumentException:WFLYEE0047:java中不兼容的冲突绑定:/ OracleDS source:lookup(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)at 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:操作(“部署”)失败 - 地址:([(“deployment”=>“test11_R_Copy . war“)] - 失败描述:{”WFLYCTL0080:失败的服务“=> {”jboss.deployment.unit . \“test11_R_Copy.war \” . INSTALL“=>”org.jboss.msc.service.StartException in service jboss.deployment.unit . \“test11_R_Copy.war \” . 安装:WFLYSRV0153:无法处理部署INSTALL部署\“test11_R_Copy.war \”>引起:java.lang.IllegalArgumentException:WFLYEE0047:java上的冲突绑定不兼容: / OracleDS source:lookup(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 .

我哪里做错了?

谢谢 .

2 回答

  • 1

    web.xml 中注释 resource-ref 元素,一切正常 .

    <!-- <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> -->

  • 0

    它通过 <resource-env-ref> 替换 <resource-ref> 解决了

相关问题