[英]JBoss 7 RestEasy…services not being registered?
我正在將我的應用程序升級到JBoss 7.1.1,現在將使用RestEasy。 我在讓RestEasy上班時遇到問題。 我收到錯誤HTTP狀態404-找不到相對的資源。 我相信這意味着它找不到正確的端點。 我懷疑掃描和注冊服務時會出現一些問題。 我可能是錯的。 注意:我沒有使用Maven
這是我的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 / [項目名稱] / rest / hello
我想這就是我正在使用的電話。 如果需要其他信息來回答我的問題,請隨時提出。 在此先感謝您的幫助!
PS-如何在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,但無法調用其他顯然需要做的其他REST服務。 此外,這種將我所有服務添加到xml的解決方案也不理想,因此將首選另一種方法。
最終解決了這個問題。 關鍵是將其包括到我已經擁有的服務中,其中每個單身人士都是休息服務:
public class MyApplication extends Application {
private Set<Object> singletons = new HashSet<Object>();
public MyApplication() {
singletons.add(new RestEasyExample());
singletons.add(new RestEasyExample2());
}
@Override
public Set<Class<?>> getClasses() {
// TODO Auto-generated method stub
return null;
}
@Override
public Set<Object> getSingletons() {
return singletons;
}
}
我認為您的懷疑是對的。嘗試將其添加到web.xml中
<context-param>
<param-name>resteasy.scan</param-name>
<param-value>true</param-value>
</context-param>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.