2017-05-03 9 views
0

내가 제이보스와 웹 스피어Wildfly와 Websphere에서 둘 다 JNDI 데이터 소스 이름이 작동합니까?

응용 전쟁 파일 모두로 배포 할 필요가있는 자바/스프링 웹 응용 프로그램은 JNDI 이름으로 데이터 소스를 사용했습니다

WebConfig.java에는 다음이 포함

 

    public DataSource dataSource() { 
     final JndiDataSourceLookup dsLookup = new JndiDataSourceLookup(); 
     dsLookup.setResourceRef(true); 
     DataSource dataSource = dsLookup.getDataSource("jdbc/myDS"); 

     return dataSource; 
    } 

... 그리고 JNDI 데이터 소스 이름 JDBC/MYDS이다 스피어에 완벽하게 실행합니다. 작업

WebConfig.java 변경 : '제이보스/자바'을 수행합니다

DataSource dataSource = dsLookup.getDataSource("java:/myDS"); 

JNDI 데이터 소스 이름이 작동 모두 '/ 자바'또는

하지만 제이보스 JNDI 이름으로 시작해야합니다 Wildfly 및 Websphere (다른 응용 프로그램 서버에있을 수도 있음)

답변

0

조회를 수행하기 위해 리소스 참조를 사용하는 경우 Liberty와 Wildfly에서 java : comp/env에 상대적입니다.

는 데이터 소스를 정의하는 방법은 두 가지가 있습니다. 하나는 javax.annotation.Resource 주석을 사용하고 있습니다. 이것은 유형, 메소드 또는 필드 정의에 사용될 수 있습니다.

또한 자원-ref 요소를 사용하여 web.xml 파일 또는 EJB-jar.xml의에서 그것을 할 수

: 당신이 다음 응용 프로그램 코드 res-auth 요소에 사용자 ID/비밀번호를 제공하는 경우

<resource-ref> 
    <description /> 

    <res-ref-name>myRef</res-ref-name> 
    <res-type>javax.sql.DataSource</res-type> 
    <res-auth>Container</res-auth> 
    <res-sharing-scope>Shareable</res-sharing-scope> 
</resource-ref> 

을 포함해야 함 Application

+0

예제를 제공 할 수 있습니까? – sgargel