您的位置:首页技术文章
文章详情页

JAX-RS,GlassFish,Eclipse。简单的Web服务不起作用

浏览:37日期:2024-05-03 11:14:35
如何解决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和GlassFish4.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 objectreturn '<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-restEclipse项目的名称和GlassFish管理页面建议的根路径。

标签: web
相关文章: