簡體   English   中英

缺少依賴項JBoss AS 7.1.1

[英]Missing dependency JBoss AS 7.1.1

我知道關於此錯誤的話題很多,但是我仍然遇到一些麻煩。

我實際上是在嘗試在JBoss 7.1.1上部署戰爭,但是不幸的是,我一次又一次地收到此錯誤:

JBAS014775:    New missing/unsatisfied dependencies:
  service jboss.naming.context.java.module.myapplication.myapplication.env.jdbc_app (missing) dependents: [service jboss.naming.context.java.module.myapplication.myapplication.env.jdbc.PKBNM01]

這是在standalone.xml中定義我的DS的方式(我已經很好地連接到我的數據庫):

<datasource jta="false" jndi-name="java:/jdbc/jdbc_app" pool-name="jdbc_app" enabled="true" use-ccm="false">
    <connection-url>jdbc:oracle:thin:@localhost:1521:xe</connection-url>
    <driver-class>oracle.jdbc.OracleDriver</driver-class>
    <driver>ojdbc6.jar</driver>
    <security>
        <user-name>ADMIN</user-name>
        <password>PASSWORD</password>
    </security>
    <validation>
        <validate-on-match>false</validate-on-match>
        <background-validation>false</background-validation>
    </validation>
    <statement>
        <share-prepared-statements>false</share-prepared-statements>
    </statement>
</datasource>

這是jboss-web.xml:

<jboss-web>
       <resource-ref>
           <res-ref-name>jdbc/PKBNM01</res-ref-name>
           <jndi-name>jdbc_app</jndi-name>
       </resource-ref>
       <context-root>myApplication</context-root>
 </jboss-web>

這是我的web.xml:

<resource-ref>
    <res-ref-name>jdbc/PKBNM01</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
</resource-ref>

如果有人可以向我解釋我做錯了什么,甚至只是給我一個線索,那將是非常受歡迎的...

很難給出一個明確的答案,但是我可以觀察一下。

1)我從來不需要在jboss-web.xml或web.xml中進行任何配置來使數據源可用於JBoss中的應用程序模塊。 standalone.xml中的數據源聲明就足夠了

2)官方文檔指出您應該創建驅動程序模塊; 我建議您遵循。 https://community.jboss.org/wiki/DataSourceConfigurationInAS7

3)這是我的數據源的樣子(MySQL數據庫示例):

<datasource jndi-name="java:jboss/datasources/MyDS" pool-name="MyDS" enabled="true" use-java-context="true">
  <connection-url>jdbc:mysql://localhost:3306/somedatabase?useUnicode=true&amp;characterEncoding=UTF-8</connection-url>
  <driver>mysql</driver>
  <security>
    <user-name>someuser</user-name>
    <password>somepass</password>
  </security>
</datasource>
<drivers>
  <driver name="mysql" module="com.mysql"/>
</drivers>

基本上,我只是復制並改編了默認情況下standalone.xml中的“ ExampleDS”。

為了完成,JPA persistence.xml可能看起來像這樣; 我從中刪除了一些垃圾,使其達到了目的:

<persistence ... version="2.0">  
   <persistence-unit name="MyPU">  
      <provider>org.hibernate.ejb.HibernatePersistence</provider>
      <jta-data-source>java:jboss/datasources/MyDS</jta-data-source>
      ...
   </persistence-unit>  
</persistence>

因此,僅是standalone.xml中定義的數據源的JNDI名稱。

希望這些觀察中的一項可以幫助您更進一步。

更改此行java:jboss/jdbc/而不是java:jboss/datasources

<default-bindings context-service="java:jboss/ee/concurrency/context/default" datasource="java:jboss/jdbc/OracleDS" managed-executor-service="java:jboss/ee/concurrency/executor/default" managed-scheduled-executor-service="java:jboss/ee/concurrency/scheduler/default" managed-thread-factory="java:jboss/ee/concurrency/factory/default"/>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM