我正在將我的應用程序升級到JBoss 7.1.1,現在將使用RestEasy。我遇到了RestEasy工作的問題。我收到錯誤HTTP狀態404 - 無法找到相對的資源。我相信這意味着它無法找到正確的端點。我懷疑是有一些問題掃描和註冊服務。但我可能是錯的。注:我沒有使用MavenJBoss 7 RestEasy ...服務沒有被註冊?
這裏是我的web.xml是涉及RestEasy的部分:
<context-param>
<param-name>resteasy.servlet.mapping.prefix</param-name>
<param-value>/rest</param-value>
</context-param>
<listener>
<listener-class>
org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap
</listener-class>
</listener>
<servlet>
<servlet-name>Resteasy</servlet-name>
<servlet-class>
org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Resteasy</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
這裏是我使用的樣本資源:
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
@Path("/hello")
public class HelloResource {
@POST
@Produces("text/plain")
public String helloResource() {
return "Hello!";
}
}
的我已經嘗試過的網址是:http://localhost:8080/[project-name]/rest/hello
我認爲這就是我所用的所有通話。如果需要更多信息來回答我的問題,請不要猶豫,問。在此先感謝您的幫助!
P.S. - WAR中的文件需要如何構造?
[更新的web.xml]
<context-param>
<param-name>resteasy.servlet.mapping.prefix</param-name>
<param-value>/rest</param-value>
</context-param>
<context-param>
<param-name>resteasy.resources</param-name>
<param-value>com.elderscan.test.RestEasyExample</param-value>
</context-param>
<servlet>
<servlet-name>resteasy-servlet</servlet-name>
<servlet-class>
org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher
</servlet-class>
<init-param>
<param-name>javax.ws.rs.Application</param-name>
<param-value>com.elderscan.test.MyApplication</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>resteasy-servlet</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
所以這讓我成功地做出RestEasyExample一個電話,但我不能讓另一其他休息服務,這顯然我需要做的電話。此外,這種將所有服務添加到xml的解決方案並不理想,因此另一種方式將是首選。
我要一些更新添加到我原來的職位,因爲我已經做了一些改動web.xml中,但我以前有過你在那裏提供的代碼片段,我會得到一個警告聲明,說resteasy.scan被忽略了(我認爲它在JBoss 7中是默認的)。然後它沒有部署。 [稍後添加] - 當我在新的web.xml中嘗試這個時,我部署得很好,但我得到的http狀態爲500,它給我錯誤java.lang.RuntimeException:無法找到類的公共構造函數org.jboss.resteasy.core.AsynchronousDispatche,這是部署失敗的原因。 –