2012-09-21 83 views
0

我正在使用一個WAR項目來開發Web應用程序。它使用JPA,並有一個數據源,我需要配置運行在JBOSS 7。該數據庫是OracleJboss 7 - Oracle數據源不起作用

我得到這個錯誤:使用JBoss的數據源

JBAS014775: New missing/unsatisfied dependencies: 
     service jboss.naming.context.java.jboss.resources.jboss.jdbc.batchAdminDB 

我跟着指示。所以,我有以下配置:

{JBOSS_HOME} /modules/com/oracle/ojdbc6/main/module.xml:

<?xml version="1.0" encoding="UTF-8"?> 
<module xmlns="urn:jboss:module:1.1" name="com.oracle.ojdbc6"> 
    <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> 

ojdbc6.jar存在和名稱是否正確。

standalone.xml

<datasources> 

       <datasource jndi-name="java:jboss/jdbc/batchAdminDB" pool-name="batchAdminDB" enabled="true" use-java-context="true"> 
        <connection-url>jdbc:oracle:thin:@HOST:PORT/xe</connection-url> 
        <driver>oracle</driver> 
        <security> 
         <user-name>USER</user-name> 
         <password>PASSW</password> 
        </security> 
       </datasource> 
       <drivers> 
        <driver name="oracle" module="com.oracle.ojdbc6"> 
         <driver-class>oracle.jdbc.driver.OracleDriver</driver-class> 
         <xa-datasource-class>oracle.jdbc.xa.client.OracleXADataSource</xa-datasource-class> 
        </driver> 
       </drivers> 
      </datasources> 

在應用程序: META-INF/的persistence.xml:

<persistence-unit name="batchAdminEM" transaction-type="JTA"> 
    <jta-data-source>java:jboss/jdbc/batchAdminDB</jta-data-source> 

    <class>...</class> 
...</persistence-unit> 

Jboss時開始(不應用程序)也能讀到(綁定)數據源。我嘗試部署應用程序時出現錯誤,但無法運行。

更多堆棧跟蹤,以幫助:

15:57:46,888 INFO [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-1) JBAS010400: Bound data source [java:jboss/jdbc/batchAdminDB] 
... 
15:57:52,356 INFO [org.hibernate.ejb.Ejb3Configuration] (MSC service thread 1-2) HHH000204: Processing PersistenceUnitInfo [ 
    name: batchAdminEM 
    ...] 
15:57:53,649 ERROR [org.jboss.as] (MSC service thread 1-1) JBAS015875: JBoss AS 7.1.1.Final "Brontes" started (with errors) in 13255ms - Started 325 of 568 services (165 services failed or missing dependencies, 76 services are passive or on-demand) 
15:57:53,861 INFO [org.jboss.as.server] (DeploymentScanner-threads - 2) JBAS015870: Deploy of deployment "BatchAdmin.war" was rolled back with failure message {"JBAS014771: Services with missing/unavailable dependencies" => ["jboss.naming.context.java.module.BatchAdmin.BatchAdmin.env.jboss.jdbc.batchAdminDBjboss.naming.context.java.jboss.resources.jboss.jdbc.batchAdminDBMissing[jboss.naming.context.java.module.BatchAdmin.BatchAdmin.env.jboss.jdbc.batchAdminDBjboss.naming.context.java.jboss.resources.jboss.jdbc.batchAdminDB]"]} 
JBAS014775: New missing/unsatisfied dependencies: 
     service jboss.naming.context.java.jboss.resources.jboss.jdbc.batchAdminDB (missing) dependents: [service jboss.naming.context.java.module.BatchAdmin.BatchAdmin.env.jboss.jdbc.batchAdminDB] 

15:57:53,934 ERROR [org.jboss.as.server.deployment.scanner] (DeploymentScanner-threads - 1) {"JBAS014653: Composite operation failed and was rolled back. Steps that failed:" => {"Operation step-2" => {"JBAS014771: Services with missing/unavailable dependencies" => ["jboss.naming.context.java.module.BatchAdmin.BatchAdmin.env.jboss.jdbc.batchAdminDBjboss.naming.context.java.jboss.resources.jboss.jdbc.batchAdminDBMissing[jboss.naming.context.java.module.BatchAdmin.BatchAdmin.env.jboss.jdbc.batchAdminDBjboss.naming.context.java.jboss.resources.jboss.jdbc.batchAdminDB]"]}}} 
+0

我見過http://stackoverflow.com/questions/9481510/deploying-ejb-over-jboss-7-1,HTTP://堆棧溢出。com/questions/10102826 /無法定義-oracle-datasource-on-jboss-as-7等,但沒有一個然後爲我工作 –

回答

0

後很長一段時間,我發現是什麼問題。

的web.xml包含已使用過,在Tomcat的結構。

<resource-ref> 
    <description>DB Connection</description> 
    <res-ref-name>jboss/jdbc/batchAdminDB</res-ref-name> 
    <res-type>javax.sql.DataSource</res-type> 
    <res-auth>Container</res-auth> 
</resource-ref> 

這種配置令人困惑的Jboss。這不再是必要的。

解決方案:
只是評論或刪除該部分(resource-ref)。

一個有用的鏈接(葡萄牙):
http://www.guj.com.br/java/256103-resolvido-seam-3--hibernate-4--jbossas7-erro-de-datasource

0

你使用了錯誤的連接URL格式。隨着xe的SID,您必須使用:

jdbc:oracle:thin:@HOST:PORT:xe 

jdbc:oracle:thin:@//HOST:PORT/xe 

檢查here以獲取更多信息。

ADD

你也必須改變一條線在module.xml文件中這樣說:

<module xmlns="urn:jboss:module:1.0" name="com.oracle.ojdbc6"> 
+0

嗨Reza。我已經按照你的說法改變了它,但錯誤仍然一樣。 –

+0

嗨@Reicardo,我想我前一陣子有同樣的問題,這是因爲我的module.xml文件中有一些額外的不需要的空間。我最終最終從一個工作模塊複製了一個文件,然後仔細地更改了內容,以免添加任何額外的空間。另外,我認爲正確的Driver類名稱必須是「oracle.jdbc.OracleDriver」。試試這兩個,看看接下來會發生什麼。 – RGO

+0

感謝您幫助@Reza。我重新檢查了每個配置文件中的字符串。他們都還好。我也改變了oracle驅動類。問題仍然存在 –