何处放置-ds.xml?

何处放置-ds.xml?

问题描述:

我在使用jboss doc推荐的-ds.xml文件将数据源添加到我的瘫痪服务器时遇到问题。我有一个的persistence.xml Maven项目:何处放置-ds.xml?

<?xml version="1.0" encoding="UTF-8"?> 
<persistence version="2.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_2_0.xsd"> 

    <persistence-unit name="primary"> 
     <jta-data-source>java:jboss/datasources/DvdRental4</jta-data-source> 
     <properties> 
     <property name="hibernate.hbm2ddl.auto" value="create-drop" /> 
     <property name="hibernate.show_sql" value="true" /> 
     </properties> 
    </persistence-unit> 
</persistence> 

,并在项目的根一个Postgres-ds.xml文件:

<?xml version="1.0" encoding="UTF-8"?> 
<datasources> 
    <local-tx-datasource> 
     <jndi-name>DvdRental4</jndi-name> 
     <connection-url>jdbc:postgresql://localhost:5432/dvdrental4</connection-url> 
     <driver>postgresql-9.4.1208</driver> 
     <user-name>postgres</user-name> 
     <password>1234</password> 
     <metadata> 
      <type-mapping>PostgreSQL</type-mapping> 
     </metadata> 
    </local-tx-datasource> 
</datasources> 

当运行mvn package和部署.war,我得到一个DvdRental4丢失的错误。所以我想我需要把postgres-ds.xml放在某个特定的地方,但是在哪里?或者,也许这些XML文件是错误的?如果需要,我也可以提供pom.xml。我已经创建了数据库dvdrental4,所以这不应该是一个问题。

我也在某处读过你必须将-ds.xml文件放在deploy文件夹中,我只有一个wildfly/standalone/deployments文件夹,并将它放在那里没有工作。

编辑: Wildfly提供了以下错误:

ERROR [org.jboss.as.controller.management-operation] (DeploymentScanner-threads - 2) WFLYCTL0013: Operation ("full-replace-deployment") failed - address: ([]) - failure description: { 
    "WFLYCTL0412: Required services that are not installed:" => ["jboss.naming.context.java.jboss.datasources.DvdRental4"], 
    "WFLYCTL0180: Services with missing/unavailable dependencies" => [ 
     "jboss.persistenceunit.\"dvdrental-gruppe-4.war#primary\".__FIRST_PHASE__ is missing [jboss.naming.context.java.jboss.datasources.DvdRental4]", 
     "jboss.persistenceunit.\"dvdrental-gruppe-4.war#primary\" is missing [jboss.naming.context.java.jboss.datasources.DvdRental4]" 
    ] 
} 

我想我只是将* -ds.xml文件放在项目的/ src/main/webapp/WEB-INF中来解决它我的maven项目,至少没有错误说没有找到数据源。我也改变了Postgres的-ds.xml中位:

<?xml version="1.0" encoding="UTF-8"?> 
<datasources> 
    <datasource jndi-name="java:jboss/datasources/DvdRental4" pool-name="DvdRental4" 
     enabled="true" use-java-context="true"> 
     <connection-url>jdbc:postgresql://localhost:5432/dvdrental4</connection-url> 
     <driver>postgresql-9.4.1208.jar</driver> 
     <security> 
      <user-name>postgres</user-name> 
      <password>1234</password> 
     </security> 
    </datasource> 
</datasources> 

注:我部署的驱动程序作为一个.jar,所以这就是为什么我可以作为一个.jar直接指定司机,我想。

您的数据源指定的JNDI名称是 “DvdRental4”。但是持久化上下文指定了“java:jboss/datasources/DvdRental4”。我不确定这是否正确。在两个地方尝试“java:jboss/datasources/DvdRental4”或者(甚至更好)使用Boss JNDI视图来查看数据源的实际部署位置。

+0

在这两个地方使用“java:jboss/datasources/DvdRental4”没有解决它,已经尝试过。这是什么JNDI视图,我如何使用它? – New2HTML

+0

图形方式也为我工作,导航到管理控制台和去: 运行 - >独立服务器 - >子系统 - > JNDI视图 - >查看 – fhossfel

+0

我无法找到它在任何地方,无论是在数据源或其他地方。 。 – New2HTML

部署数据源的能力不是使它在JBoss 5和AS7重写之间的功能,而仅仅是可部署的jms目的地。您需要配置服务器以定义数据源,然后部署您的应用程序

+0

该文档声明此功能已在AS 7.1中重新激活:https://docs.jboss.org/author/display/AS71/DataSource+configuration?_sscc=t – fhossfel