Rest 如何检查JBoss部署程序是否正常工作

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

我试图让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 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