何处放置-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视图来查看数据源的实际部署位置。
部署数据源的能力不是使它在JBoss 5和AS7重写之间的功能,而仅仅是可部署的jms目的地。您需要配置服务器以定义数据源,然后部署您的应用程序
该文档声明此功能已在AS 7.1中重新激活:https://docs.jboss.org/author/display/AS71/DataSource+configuration?_sscc=t – fhossfel
在这两个地方使用“java:jboss/datasources/DvdRental4”没有解决它,已经尝试过。这是什么JNDI视图,我如何使用它? – New2HTML
图形方式也为我工作,导航到管理控制台和去: 运行 - >独立服务器 - >子系统 - > JNDI视图 - >查看 – fhossfel
我无法找到它在任何地方,无论是在数据源或其他地方。 。 – New2HTML