Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
部署在JBoss7.1上的Restful服务总是返回404_Jboss_Jax Rs_Resteasy - Fatal编程技术网

部署在JBoss7.1上的Restful服务总是返回404

部署在JBoss7.1上的Restful服务总是返回404,jboss,jax-rs,resteasy,Jboss,Jax Rs,Resteasy,我在JBoss7.1上部署RESTful web应用程序(JAX-RS)时遇到问题 这是web.xml 赫德斯 放松 org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher 放松 /* javax.ws.rs.Application it.heod.ws.WSApplication org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap 而实现web服务的

我在JBoss7.1上部署RESTful web应用程序(JAX-RS)时遇到问题 这是web.xml


赫德斯
放松
org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher
放松
/*
javax.ws.rs.Application
it.heod.ws.WSApplication
org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap

而实现web服务的类是:

@Path(“/”)
公共类登录服务{
公共登录服务(){
}
@得到
@路径(“helloworld”)
@生成(MediaType.TEXT\u PLAIN)
公共响应helloWorld(){
Utils Utils=Utils.getInstance();
utils.logExecutingMethod();
ResponseBuilder ResponseBuilder=null;
响应=空;
responseBuilder=Response.ok();
实体(“你好,世界!”);
response=utils.completerensponse(responseBuilder);
返回(响应);
}
}
该类应用程序是:

公共类WSApplication扩展应用程序{
private Set singleton=new HashSet();
私有集>();
公共应用程序(){
add(newloginservice());
}
@凌驾

public SetJBoss AS 7.1为您提供了Java EE 6支持,因此您不需要使用RESTEasy提供的servlet dispatcher(仅当您部署在Tomcat或Jetty上时才需要)

然后,您可以从web.xml中删除内容,并以纯Java形式声明JAX-RS激活器,如下所示:

@ApplicationPath("/")
public class WSApplication extends Application {

private Set<Object> singletons = new HashSet<Object>();
private Set<Class<?>> empty = new HashSet<Class<?>>();
public WSApplication(){
     singletons.add(new LoginService());
}
@Override
public Set<Class<?>> getClasses() {
     return empty;
}
@Override
public Set<Object> getSingletons() {
     return singletons;
}
}
@ApplicationPath(“/”)
公共类WSApplication扩展了应用程序{
private Set singleton=new HashSet();
私有集>();
公共应用程序(){
add(newloginservice());
}
@凌驾

public Set我实际上不知道发生了什么,但是通过在一个新项目中复制和粘贴所有的类和web.xml并进行部署,它成功了。我想是Eclipse疯了。谢谢大家的回答。

你必须在helloworld后面加一个斜杠。我不知道,@xavier coulon。非常感谢
http://anotherhost:8080/HEODWS/helloworld
@ApplicationPath("/")
public class WSApplication extends Application {

private Set<Object> singletons = new HashSet<Object>();
private Set<Class<?>> empty = new HashSet<Class<?>>();
public WSApplication(){
     singletons.add(new LoginService());
}
@Override
public Set<Class<?>> getClasses() {
     return empty;
}
@Override
public Set<Object> getSingletons() {
     return singletons;
}
}