【问题标题】:Wildfly Deployment with Oracle Datasource使用 Oracle 数据源进行 Wildfly 部署
【发布时间】: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


【解决方案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>
-->

【讨论】:

    【解决方案2】:

    通过将&lt;resource-ref&gt; 替换为&lt;resource-env-ref&gt; 解决了

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-09-03
      • 1970-01-01
      • 2016-03-15
      • 2019-08-08
      • 2021-03-11
      • 2018-08-06
      • 2017-04-07
      • 2017-12-18
      相关资源
      最近更新 更多