Rest 如何检查JBoss部署程序是否正常工作
我试图让resteasy在JBoss AS6 Final(SEAM 2应用程序)上运行,但我似乎无法让最基本的示例运行,据我所知,resteasy应该已经准备就绪,我已经尝试了以下示例,但URL只会导致404错误,没有响应Rest 如何检查JBoss部署程序是否正常工作,rest,jboss,seam,resteasy,jboss6.x,Rest,Jboss,Seam,Resteasy,Jboss6.x,我试图让resteasy在JBoss AS6 Final(SEAM 2应用程序)上运行,但我似乎无法让最基本的示例运行,据我所知,resteasy应该已经准备就绪,我已经尝试了以下示例,但URL只会导致404错误,没有响应 package uk.co.rest.test; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.core.Application; public class Library exte
package uk.co.rest.test;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.core.Application;
public class Library extends Application {
@GET
@Path("/books")
public String getBooks() {
System.out.println("Check");
return "done";
}
}
将以下内容添加到my web.xml
<context-param>
<param-name>resteasy.servlet.mapping.prefix</param-name>
<param-value>/rest</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>uk.co.rest.test.Library</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>resteasy-servlet</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
resteasy.servlet.mapping.prefix
/休息
RESTEasyServlet
org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher
javax.ws.rs.Application
uk.co.rest.test.Library
RESTEasyServlet
/休息/*
我觉得与JBoss捆绑在一起的resteasy.deployer没有完成它的工作,但我不知道如何调试它
任何帮助都将是伟大的我拔出我的头发在这一个 您似乎误解了
javax.ws.rs.Application
的作用。您的库
类不必扩展javax.ws.rs.Application
来公开getBooks()
-方法
创建一个扩展javax.ws.rs.Application
的类。重写getSingleton()
-方法并返回一组实例,其中包含要公开的方法:
public class MyApplication extends javax.ws.rs.Application {
@Override public Set<Object> getSingletons(){
return Collections.<Object>singleton(new Library());
}
}
公共类MyApplication扩展了javax.ws.rs.Application{
@重写公共集GetSingleton(){
返回Collections.singleton(新库());
}
}
在
web.xml
中,更改javax.ws.rs.Application
init参数,使其指向MyApplication
类。必须配置RESTEasy才能作为服务公开。您可以直接执行,也可以通过Seam的资源servlet执行
要直接使用RESTEasy,我发现最简单的方法是将其配置为Servlet过滤器。除了将过滤器添加到您的web.xml
(如中所述)之外,没有什么可做的了
但是,当使用Seam时,这是不必要的,因为Seam能够非常简单地通过其资源servlet部署RESTEasy服务(如中所述)。首先声明RESTEasy的应用程序组件,如下所示:
<resteasy:application resource-path-prefix="/rest" />
然后,您可以通过以下方式访问RESTEasy服务:
http://localhost:8080/yourapp/seam/resource/rest/library/1
采用接缝方式的优点主要是易于使用。您确实需要包含一个额外的jar:
jboss seam resteasy.jar
好的,谢谢您提供的信息,我已经完全实现了您所说的内容,并在下面进行了检查,但是该方法仍然没有被调用,我想问题是,首先jboss没有注册JAX-RS服务
http://localhost:8080/yourapp/seam/resource/rest/library/1