2013-04-25 78 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,然后重试。