2013-04-25 73 views
0

由於幾個小時我試圖找到我在Java EE-Program中產生的一些錯誤。它使用HSQLDB數據源。當服務器(JBoss 7.1.1 final)啓動時,可以找到數據庫並正確創建所有需要的表。但在最後ob部署我得到以下錯誤:使用HSQL 2.2.9作爲數據源的JBoss 7.1部署錯誤

21:36:43,502 ERROR [org.jboss.as.server.deployment.scanner] (DeploymentScanner-threads - 2) {"JBAS014653: Composite operation failed and was rolled back. Steps that failed:" => {"Operation step-2" => {"JBAS014771: Services with missing/unavailable dependencies" => ["jboss.persistenceunit.\"BusinessLogic.jar#BusinessLogic\"jboss.naming.context.java.DefaultDSMissing[jboss.persistenceunit.\"BusinessLogic.jar#BusinessLogic\"jboss.naming.context.java.DefaultDS]"]}}} 

DefaultDS是我的數據源。除非從我的standalone.xml

<datasource jta="true" jndi-name="java:jboss/DefaultDS" pool-name="DefaultDS"  enabled="true" use-java-context="true" use-ccm="true"> 
    <connection-url>jdbc:hsqldb:${jboss.server.data.dir}${/}localDB</connection-url> 
    <driver>hsqldb</driver> 
    <security> 
     <user-name>sa</user-name> 
     <password></password> 
    </security> 
    <pool> 
     <prefill>false</prefill> 
     <use-strict-min>false</use-strict-min> 
     <flush-strategy>FailingConnectionOnly</flush-strategy> 
    </pool> 
    <security> 
     <user-name>sa</user-name> 
    </security> 
</datasource> 

我連接到使用JPA和我persistence.xml這個數據庫:

<?xml version="1.0" encoding="UTF-8"?> 
<persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"> 
<persistence-unit name="BusinessLogic"> 
    <!-- Durch "java:/DefaultDS" wird dem JBoss angewiesen, die integrierte HSQLDB, 
     die als "Default Datasource" eingebunden ist, für die Persistenz der 
     Applikation zu verwenden --> 
    <jta-data-source>java:/DefaultDS</jta-data-source> 
    <properties> 
     <property name="hibernate.dialect" value="org.hibernate.dialect.HSQLDialect"/> 
     <!--Die Eigenschaft "hibernate.hbm2ddl.auto" legt fest, wie mit bereits 
      bestehenden Tabellen verfahren werden soll. "create-drop" bedeutet, 
      dass alle Tabellen bei einem Deployment der Applikation gelöscht und 
      neu angelegt werden. Sobald sich an Ihrer Entity Beans nichts mehr 
      ändert, kann hier auch "update" gewählt werden, damit bleiben einmal 
      angelegte Daten erhalten. --> 
     <property name="hibernate.hbm2ddl.auto" value="create-drop"/> <!-- create-drop --> 
     <property name="hibernate.format_sql" value="false" /> 
     <property name="hibernate.show_sql" value="false" /> 
    </properties> 

</persistence-unit> 
</persistence> 

正如我所說的,在服務器JPA正確創建的所有表的開始,所以我想JDBC驅動程序沒問題,數據庫正在工作。

回答

0

試試這個

在你的persistence.xml嘗試改變

的java:/ DefaultDS的 到 的Java:JBoss的/ DefaultDS的

0

您正在使用兩種不同的JNDI名稱爲您的數據源中的獨立.xml和你的persistence.xml文件中。嘗試給出完全相同的名稱,例如java:/ jdbc/DefaultDS,然後重試。