Web services JBoss7上的RESTful服务没有响应

Web services JBoss7上的RESTful服务没有响应,web-services,rest,jboss,ejb,resteasy,Web Services,Rest,Jboss,Ejb,Resteasy,我得到了一些应用程序,其中我尝试公开一些RESTful Web服务。 不幸的是我被卡住了。项目构建和部署很好,但我无法使用GET请求访问我的服务 我的战争看起来很像: 战争 我得到了空的web.xml: 服务级别: 导入javax.ejb.Stateless; 导入javax.ws.rs.GET; 导入javax.ws.rs.Path; 导入javax.ws.rs.PathParam; 导入javax.ws.rs.products; 导入javax.ws.rs.core.MediaType; 导

我得到了一些应用程序,其中我尝试公开一些RESTful Web服务。 不幸的是我被卡住了。项目构建和部署很好,但我无法使用GET请求访问我的服务

我的战争看起来很像: 战争

我得到了空的web.xml:

服务级别: 导入javax.ejb.Stateless; 导入javax.ws.rs.GET; 导入javax.ws.rs.Path; 导入javax.ws.rs.PathParam; 导入javax.ws.rs.products; 导入javax.ws.rs.core.MediaType; 导入javax.ws.rs.core.Response

@Path("/test")
@Stateless
public class RestTest {

    @GET
    @Produces(MediaType.APPLICATION_JSON)
    @Path("/status")
    public Response getStatus() {
        return Response.ok("{\"status\":\"Service is running...\"}").build();
    }

    @GET
    @Produces(MediaType.APPLICATION_JSON)
    @Path("/status/{param}")
    public Response getStatusParam(@PathParam("param") String param) {
        return Response.ok("{\"status\":\"Service is running...\"," +
                "\"param\":\"" + param + "\"}").build();
    }
}
我试图通过以下方式访问我的服务:http://localhost:8080/rest/test/status 但我得到了404。如果我尝试http://localhost:8080/rest 我正在获取index.html,因此应该正确部署我的war。部署时也没有错误

我试图删除@Stateless注释并在MyApplication.getClasses方法中返回我的类,但没有帮助。Bean肯定是可见的,因为Jboss记录我的it绑定

我还从war中删除了所有jax-rs和restesy JAR,以确保我使用的是Jboss提供的正确jax-rs和restesy JAR

我应该做些什么来运行我的服务

@编辑


如果我像那样部署战争,它就会起作用。如果war包含在ear中,我应该如何公开它?

我运行您描述的示例,并且服务正在运行,我收到{status:service is running…}

为了确保您的服务被正确部署,您在运行Jboss时是否在日志文件中看到了这样的内容


[org.jboss.resteasy.spi.ResteasyDeployment]MSC服务线程1-8部署javax.ws.rs.core.Application:MyApplication

我知道这个问题有点错,但我仍然想发布答案。也许这对身体有帮助

为了让它工作,我不得不在web.xml中添加几行代码。这是这个片段:

<module id="war">
    <web>
        <web-uri>war-1.0.war</web-uri>
        <context-root>/rest</context-root>
    </web>
</module>

然后我不得不打电话给我的服务人员http://localhost:8080/rest/rest/test/status 路径,所以我还编辑了我的应用程序类,将注释@ApplicationPath/rest更改为@ApplicationPath/,然后一切正常,服务在下面可用http://localhost:8080/rest/test/status 路径。

我的坏消息。如果我部署的只是战争,它会起作用。你知道如果战争在耳边,我该怎么做才能让它起作用吗?我应该在application.xml中添加一些内容吗?
import javax.ws.rs.ApplicationPath;
import javax.ws.rs.core.Application;

@ApplicationPath("/rest")
public class MyApplication extends Application {

}
@Path("/test")
@Stateless
public class RestTest {

    @GET
    @Produces(MediaType.APPLICATION_JSON)
    @Path("/status")
    public Response getStatus() {
        return Response.ok("{\"status\":\"Service is running...\"}").build();
    }

    @GET
    @Produces(MediaType.APPLICATION_JSON)
    @Path("/status/{param}")
    public Response getStatusParam(@PathParam("param") String param) {
        return Response.ok("{\"status\":\"Service is running...\"," +
                "\"param\":\"" + param + "\"}").build();
    }
}
<module id="war">
    <web>
        <web-uri>war-1.0.war</web-uri>
        <context-root>/rest</context-root>
    </web>
</module>