如何解决JAX-RS,GlassFish,Eclipse简单的Web服务不起作用
您的代码似乎还可以,因此问题很可能是您尚未定义服务的基本URL。您需要告诉JAX- RS(Jersey是GlassFish的实现),它必须将哪个URL模式作为端点(基本URL)进行拦截。
实现此目的的一种方法是使用应用程序类,该类可以添加到项目中的任何程序包中(您也可以在web.xml文件中定义必要的内容,我不会介绍)。以下是代码:
import javax.ws.rs.ApplicationPath;
import javax.ws.rs.core.Application;
@ApplicationPath("your-base-url")
public class ApplicationConfig extends Application {
}
您可以使用@ApplicationPath批注定义基本URL。然后,您可以在以下位置访问服务http://127.0.0.1:8080/hello-
rest/your-base-url/hello
解决方法
我试图在我的机器上运行一个简单的“ Hello World” RESTful Web服务。我使用Eclipse Kepler和GlassFish
4.0。我能够部署该服务,并且可以在GlassFish的管理页面上看到该服务,但是当我尝试访问该服务时,出现以下错误:“ HTTP状态404-找不到”。
以下是简单服务的代码:
import javax.ws.rs.Consumes;
import javax.ws.rs.GET;
import javax.ws.rs.PUT;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.UriInfo;
@Path("hello")
public class HelloRest {
@SuppressWarnings("unused")
@Context
private UriInfo context;
/**
* Default constructor.
*/
public HelloRest() {
// TODO Auto-generated constructor stub
}
/**
* Retrieves representation of an instance of HelloRest
* @return an instance of String
*/
@GET
@Produces("application/xml")
public String getXml() {
// TODO return proper representation object
return "<greeting>Hello REST</greeting>";
}
/**
* PUT method for updating or creating an instance of HelloRest
* @param content representation for the resource
* @return an HTTP response with content of the updated or created resource.
*/
@PUT
@Consumes("application/xml")
public void putXml(String content) {
}
}
为了访问该服务,我尝试以下URL:,http://127.0.0.1:8080/hello-rest/hello
其中hello-
rest
Eclipse项目的名称和GlassFish管理页面建议的根路径。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。