2012-05-15 3 views
1

저널 리소스 클래스가 JAR 파일로 큰 WAR 내에 묶여 있습니다. JAR 파일은 현재 Websphere Application Server의 WEB-INF/lib 폴더 아래에 있습니다. 나는 정확한 web.xml 항목 (WEB-INF/web.xml)을 가지고 있지만 여전히 서버에는 스캔이 JAR로 번들 된 Resource 클래스를 조회 할 수없는 것으로 보입니다. 나는 약간의 스레드를보고 있었고, JAR로 자원을 번들하지 않고 대신/WEB-INF/classes 아래에 클래스를 별도로로드하는 것이 좋습니다.Jersey Resource .class 로딩

<servlet-name>Jersey REST Service</servlet-name> 
<servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class> 
<init-param> 
     <param-name>com.sun.jersey.config.property.packages</param-name> 
     <param-value>blah.blah.blah</param-value> 
</init-param> 
</servlet> 

com.sun.jersey.api.container.ContainerException 다음 ResourceConfig 인스턴스 (모든 루트 자원 classes..at의 com.sun.jersey.server.impl.application.WebApplicationImpl.processRootResources 포함되어 있지 않습니다 WebApplicationImpl.java:1064)


답변

2

특정 버전의 WebSphere와 관련된 다양한 저지 문제에 대한 Rohit의 블로그 게시물에 설명 된 문제점이 있습니다. 도움이 될만한 것이 있으면 알려주십시오.

http://wasdynacache.blogspot.com/2011/08/jax-rs-implementations-in-websphere.html

+1

이 문제는 WAS 6.1 및 사용중인 Jersey JAR에만 적용됩니다. WEB-INF/lib를 검색하기 위해 자체 스캐너를 작성해야했습니다. – Noosphere

0

가 WEB-INF가/클래스에 대 항아리에 클래스를 갖는 것은 차이가 없습니다. 귀하의 패키지 이름이 web.xml에서 잘못되었거나, web.xml의 다른 항목이 잘못 구성되었거나, 자원 클래스에 올바르게 주석이 달려 있지 않습니다 (또는 일부 WebSphere Devilry가 작동 중일 수 있습니다 - 나는 그것을 사용하지 못했지만, 정말 이상한 클래스 경로 문제에 대해 들었습니다.) 오류 주변의 리소스 클래스, 전체 web.xml 및 기타 로그를 표시하면 누군가가 잘못되었다는 것을 지적 할 수 있습니다.

+0

방법 WEB-INF/lib 디렉토리 아래에 자원 클래스와 JAR있는에 관하여? – Noosphere

+0

그것이 내가 아무런 차이가 없다고 말했을 때 의미하는 바입니다. WEB-INF/lib에있는 JAR 내부의 클래스는 WEB-INF/클래스에있는 클래스와 동일한 클래스 경로에 있습니다. 한 곳에서 클래스를로드하는 것은 다른 클래스에서도 클래스를로드합니다. –

+1

문제는, 내가 WEB-INF/classes 아래에 Resource .class 파일을 놓으면 잘 작동한다는 것입니다. 그러나 유감스럽게도 WEB-INF/lib 아래의 JAR 번들 내의 동일한 .class가 실패합니다. 에서와 같이, 스캔은 JAR 내에서 Resource 클래스를 검색 할 수 없습니다. 클래스의 루트에 대한 @Path 주석이 있습니다. JAR에 있음을 알리도록 지정해야하는 다른 주석 또는 구성이 있습니까? 죄송합니다. 이것은 나를 원으로 만들 것입니다. – Noosphere