2012-05-15 184 views
1

我將Jersey資源類捆綁在一個更大的WAR中,作爲JAR文件,它現在位於Websphere Application Server上的WEB-INF/lib文件夾下。我有正確的web.xml條目(WEB-INF/web.xml),但仍然在服務器上,掃描似乎無法查找捆綁爲JAR的Resource類。我正在查看幾個線程,建議不要將Resources作爲JAR包裝,而是在/ WEB-INF/classes下單獨加載類。Jersey資源.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)


回答

0

在一間JAR中的類VS在WEB-INF/classes中沒有什麼區別。在web.xml中你的軟件包名稱是錯誤的,你的web.xml中的其他內容配置不正確,或者你的資源類沒有正確註釋(或者可能有一些WebSphere devilry正在工作 - 我從來沒有使用它,但我聽說過它真的很奇怪的類路徑問題)。如果您顯示資源類,完整的web.xml以及更多關於錯誤的日誌,有人可能會指出發生了什麼問題。

+0

如何在WEB-INF/lib下使用Resource類的JAR? – Noosphere

+0

這就是我說的時候沒有區別的意思。 WEB-INF/lib中的JAR內部的類在類路徑上,就像在WEB-INF/classes中的類一樣。任何從一個地方加載類的東西都會從另一個地方加載類。 –

+1

問題是,如果我刪除WEB-INF/classes下的Resource .class文件,它工作正常。但不幸的是,在WEB-INF/lib下的JAR包中的.class失敗。如在中,掃描不能查找JAR內的資源類。我有一個類的根的@Path註釋。是否有任何其他註釋或配置需要指定,以使其知道在JAR中。我很抱歉,這讓我圍繞着圈子 – Noosphere