OpenJPA의 경우 persistence.xml에서 사용자 이름과 비밀번호를 지정하지 않고 jta_datasource에서 JNDI 연결을 어떻게 지정합니까? jndi에 대한 persistence.xml 파일에 사용자 이름과 암호가 지정되어 있지 않으면 오류가 발생합니다.OpenJpa 및 JNDI
5
A
답변
1
큰 질문; 이것은 OpenJPA 문서에서 다루지 않습니다. "openjpa.ConnectionFactoryName"속성에 대한 특수 "java : comp/env/..."구문을 사용하여 OpenJPA에 JNDI에서 연결 매개 변수를 검색하도록 요청해야합니다. 예를 들어, 당신의 persistence.xml은 다음과 비슷한 모습이 될 것
<?xml version="1.0"?>
<persistence>
<persistence-unit name="openjpa">
<provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>
<class>tutorial.Animal</class>
<class>tutorial.Dog</class>
<class>tutorial.Rabbit</class>
<class>tutorial.Snake</class>
<properties>
<property name="openjpa.ConnectionFactoryName" value="java:comp/env/jdbc/myjndi"/>
<property name="openjpa.Log" value="DefaultLevel=WARN, Tool=INFO"/>
</properties>
</persistence-unit>
</persistence>
이 컨테이너에서 "myjndi"라는 JNDI 자원을 요청합니다.
<?xml version='1.0' encoding='UTF-8'?>
<Context>
<Resource name="jdbc/myjndi"
auth="Container"
scope="Shareable"
type="javax.sql.DataSource"
maxActive="100"
maxIdle="30"
maxWait="10000"
removeAbandoned="true"
username="username"
password="password"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/DBNAME?characterEncoding=UTF-8"
/>
</Context>
변경 데이터베이스에 필요한 위의 JNDI 매개 변수 : Tomcat을 사용하는 경우 다음과 같은 형태의 context.xml에있을 것입니다.
1
persistence.xml에서 jta-data-source
요소를 사용해보십시오. 코드를 통해
<jta-data-source>java:comp/env/jdbc/FooBarDataSourceJNDI</jta-data-source>
0
구성 나를 위해 일한 :
Map<String, String> conf = new HashMap<>();
conf.put("javax.persistence.jtaDataSource", "java:comp/env/jdbc/myjndi");
return getEntityManagerFactory().createEntityManager(conf);
내가 아직 적절한 위치에 persistence.xml
을 배치하고 있지 않다 생각합니다.
+0
의 철자가 잘못되었습니다. '
관련 문제
- 1. OpenJPA 및 Derby ManyToOne 문제 업데이트 후 OpenJPA 1.2에서 2.2
- 2. servicemix 4.3.0 및 jndi
- 3. JNDI
- 4. 는 OpenJPA
- 5. 는 OpenJPA
- 6. jboss4.2.3 및 ejb3에서 jndi 바인딩
- 7. OpenJPA 스키마 구성
- 8. openJPA 날짜 형식
- 9. OpenJPA + MySQL 문제
- 10. 자동 업데이트 OpenJPA 테이블
- 11. Java SE에서 openJPA
- 12. WebSphere에서 slf4j로 OpenJPA 로깅
- 13. OpenJPA 감사 기능
- 14. JNDI DataSource Bean을 JEE로 변환하십시오. jndi-lookup
- 15. OpenJPA 캐시 vs ehcache 플러그인
- 16. JNDI ClassCastException
- 17. JNDI InvalidNameException
- 18. JNDI 이름이
- 19. OpenJPA 시작시 테이블 생성 비활성화
- 20. 여러 키가있는 레코드 검색. OPENJPA
- 21. JNDI 및 Spring 구성 - jee : 조회
- 22. Java EE CDI의 @Specializes 및 JNDI
- 23. LDAP, JNDI 및 초기 컨텍스트 관계
- 24. JEE6 글로벌 JNDI 이름 및 Maven 배포
- 25. JDBC 및 JNDI REALM 인증이있는 레거시 애플리케이션
- 26. OSGi 번들 간의 OpenJPA 지속성
- 27. Openjpa 엔티티에서 Enum을 어떻게 사용해야합니까?
- 28. openjpa 기존 열 호환되지 않음
- 29. openJPA 단일 열의 직접적인 관계
- 30. OpenJPA - 쿼리 전에 플러시하지 않습니다.
감사합니다. 불행히도이 문제가 해결되지 않았습니다. ibm websphere에서 openjpa를 사용하고 있습니다. jndiname은 A/B입니다. 는 JDBC 드라이버 또는 데이터 소스 : 내가 얻을 다음과 같은 예외 : "완/ENV/A/B 자바"속성 이름 = "openjpa.ConnectionFactoryName"값 => 지금 을 사용하고 있습니다 클래스 이름은 ConnectionDriverName 특성에 지정해야합니다. –
ConnectionDriverName 속성을 지정하면 username과 password에 대한 예외가 발생하고 –