2010-04-25 5 views
1

Axis2를 사용하여 Tomcat에 배포 할 웹 서비스를 작성 중입니다. 웹 서비스와 MySQL 데이터베이스간에 데이터를 유지하기 위해 Hibernate3을 사용하고 있습니다.Axis2가 Hibernate 구성 파일을 찾지 못함

IDE를 통해 응용 프로그램을 실행할 때 Axis2를 통해 노출되는 메서드는 의도 한대로 작동하지만 Tomcat에 .aar를 배포하면 hibernate.cfg.xml을 찾을 수 없다는 SOAP 오류가 발생합니다.

그러나 .aar 안에는 모든 구성 파일과 모든 매핑 파일이 포함되어 있습니다.

해결 방법이 결정되었습니다. Netbeans 빌드/클래스 폴더의 결과 파일을 axis2/WEB-INF/class 폴더에 배치하면 응용 프로그램이 예상대로 작동합니다.

내 질문에 내 응용 프로그램을 배포하는 더 좋은 방법은 Axis2가 build/class 폴더의 내용을 수동으로 복사하지 않고 배포 된 .aar를 통해 구성 및 매핑 파일을 가져올 수 있도록하는 것입니다. axis2/WEB-INF/class 폴더?

답변

1

.aar 아카이브에는 /META-INF/services.xml 파일이 있어야합니다. 해당 파일을 편집하고 서비스에 대한 복합에 ServiceTCCL 매개 변수를 설정 :

<parameter name="ServiceTCCL">composite</parameter> 

그런 다음 .aar 아카이브에 같은 META-INF 디렉토리에있는 hibernate.cfg.xml을 넣어. 이것은 Hibernate가 클래스 패스로부터로드 할 수 있도록 설정 파일을 사용 가능하게 할 것이다.

+0

컨테이너 와이드 (jboss) jndi 컨텍스트가 손실 된 것 같습니다. 내 InitialContext.lookup ("java : comp/UserTransaction") 은 null을 반환합니다. 컨테이너 레벨 컨텍스트를 다시 얻는 방법은 무엇입니까? –

관련 문제