2017-10-15 6 views
1

jboss doc에서 권장하는 -ds.xml 파일을 사용하여 Wildfly 서버에 데이터 소스를 추가하는 데 문제가 있습니다.어디서 -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> 

프로젝트의 루트에서 포스트 그레스-ds.xml : 나는 받는다는 A를 persistence.xml을 가진 프로젝트가 mvn package을 실행하고 .war를 배포 할 때

<?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> 

을, 나는 얻을 DvdRental4가없는 오류입니다. 그래서 내가 어딘가에 postgres-ds.xml 어딘가에 배치해야한다고 생각하지만, 어디서? 아니면 XML 파일이 잘못되었을 수도 있습니다. 필요한 경우 pom.xml도 제공 할 수 있습니다. 데이터베이스 dvdrental4를 이미 만들었으므로 문제가되지 않습니다.

또한 배포 용 폴더에 -ds.xml 파일을 넣어야하는 곳을 읽었습니다. wildfly/standalone/deployments 폴더 만 있고 거기에 넣어두면 작동하지 않습니다.

편집 : 당신은 당신의 데이터 소스에 지정된

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]" 
    ] 
} 

답변

0

프로젝트의/src/main/webapp/WEB-INF에 * -ds.xml 파일을 넣는 것으로 해결했다고 생각합니다. 내 maven 프로젝트, 적어도 거기에 아무런 오류가 데이터 소스를 찾을 수 없다는 말은하지 않습니다.

<?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> 

참고 : 나는 또한 포스트 그레스-ds.xml를 조금 변경 난의 .jar로 드라이버를 배치, 나는의 .jar로 직접 드라이버를 지정할 수 있습니다 이유는 그래서, 나는 생각한다.

0

JNDI 이름이 "DvdRental4"입니다 : 은 제이보스는 다음과 같은 오류를 제공합니다. 하지만 지속성 컨텍스트는 "java : jboss/datasources/DvdRental4"를 지정합니다. 그게 옳은지 나는 확신하지 못한다. 두 위치 모두에서 "java : jboss/datasources/DvdRental4"를 시도하거나 Boss JNDI보기를 사용하여 데이터 소스가 실제로 배치 된 위치를 확인하십시오.

+0

두 곳에서 "java : jboss/datasources/DvdRental4"를 사용하여 해결하지 못했지만 이미 시도했습니다. 이 JNDI 뷰는 무엇이며 어떻게 사용합니까? – New2HTML

+0

그래픽 방식으로 관리 콘솔로 이동하여 다음을 수행했습니다. 런타임 -> 독립 실행 형 서버 -> 서브 시스템 -> JNDI보기 ->보기 – fhossfel

+0

데이터 소스 나 그 밖의 곳에서는 어디에도 찾을 수 없습니다. – New2HTML

-1

데이터 소스를 배포하는 기능은 JBoss 5와 AS7 재 작성 사이에 그것을 구현하는 기능이 아니며 배포 가능한 jms 대상 만 만들었습니다. 응용 프로그램을 배포하기 전에 데이터 소스를 정의하기 위해 서버를 구성해야합니다.

+0

doc은이 기능이 AS 7.1에서 다시 활성화되었음을 나타냅니다. https://docs.jboss.org/author/display/AS71/DataSource+configuration?_sscc=t – fhossfel