2013-07-15 2 views
0

이것은 다소 이상한 질문 일 수 있지만이 방법을 수행하는 방법을 잘 모르겠습니다. 기본적으로 두 maven 프로젝트간에 연결 코드를 공유하고 있습니다. 하나는 Maven 웹 애플리케이션이고 다른 하나는 일반 Maven 프로젝트이다.Java SE 프로젝트에서 InitialContext 데이터베이스 정보를 사용하는 방법

데이터베이스 연결 컨텍스트를 설정하려면 Maven 웹 응용 프로그램에서 META_INF/context.xml을 사용하고 있습니다. 물론

Context envCtx = (Context) new InitialContext().lookup("java:comp/env"); 
dbPool = (DataSource) envCtx.lookup("jdbc/MyAppUCP"); 

NamingException가 슬로우됩니다 :

그러나, 일반 Maven 프로젝트는 코드가 데이터 소스가 실행 얻을 수 있도록하는 경우,이 파일을 사용하지 않습니다. 데이터베이스 연결을 일반 Maven Java 애플리케이션과 함께 가져 오는이 방법을 어떻게 재사용 할 수 있습니까? META_INF/디렉토리를 프로젝트에 복사 할 수 없습니다.

+0

jdbc 리소스를 표시하십시오. 이름을 정확하게 지정하지 않았을 수 있습니다. –

+0

Maven 웹 애플리케이션에서 잘 작동합니다. 그것은 문제가되지 않습니다. 문제는 일반 maven 프로젝트에서 envCtx.lookup ("jdbc/MyAppUCP")을 사용할 수 있기를 원합니다. –

답변

1

기본 생성자가있는 InitialContext는 관리 환경 (j2EE 컨테이너)에서만 작동합니다. Java SE 프로세스에서 JNDI를 조회해야하는 경우, 오버로드 된 생성자에 대한 매개 변수로 특성 오브젝트를 전달해야합니다.

각 app/webserver에는 속성 개체에서 설정해야하는 자체 속성 집합이 있습니다. 응용 프로그램 서버 설명서 (http://docs.oracle.com/javase/jndi/tutorial/beyond/env/source.html)를 참조하십시오.

외부 프로세스의 JNDI 항목을 조회 할 때 보안 제약이 있습니다.

관련 문제