我试图在我的机器上运行一个简单的“ 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管理页面建议的根路径。
您的代码似乎还可以,因此问题很可能是您尚未定义服务的基本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
你好,我曾与JAX-WS合作开发基于SOAP的网络服务。现在我想使用REST,因为正如我从这里学习的那样,REST比SOAP有优势。 但从不同的文章中,我知道我们也可以从JAX-WS创建RESTful Web服务。但是大多数人说我们应该使用JAX-RS而不是JAX-WS。 我的问题是JAX-WS RESTful webservice和JAX-RS(泽西)之间有什么区别。JAX-RS相对于JAX-W
我尝试构建一个带有Rest服务和EJB注入的Java EE7应用程序。我创建了一个多模块maven项目,并将其部署在Glassfish 4上。我最后一个EAR包含一个带有EJB的JAR,例如,带有我的Rest服务定义: 当我部署我的应用程序时,我看到下面的日志似乎还可以。即使我想知道它为什么定义“java:global”JNDI,因为默认情况下@Stateless EJB是@local: 编辑1:
我试图在JBoss AS 7.1下部署一个简单的web应用程序,该应用程序与Resteasy捆绑在一起。根据文档,只需要(至少)一个空的、一个带有注释的和其他类的的类 下面是我所遵循的文档: https://docs.jboss.org/author/display/as7/jax-rs+reference+guide https://docs.jboss.org/author/display/a
问题内容: 我用两个资源创建了一个简单的REST服务。第一个资源很好用,只返回MediaType.TEXT_PLAIN。 对于第二个资源,我想尝试将POJO映射到Java并遵循以下示例: https://github.com/jersey/jersey/tree/2.3.1/examples/json- moxy/src/main/java/org/glassfish/jersey/example
我用两个资源创建了一个简单的REST服务。第一个资源工作得很好,只返回MediaType。纯文本。 对于第二个资源,我想尝试将POJO映射到Java,并遵循以下示例: https://github.com/jersey/jersey/tree/2.3.1/examples/json-moxy/src/main/java/org/glassfish/jersey/examples/jsonmoxy
问题内容: 我正在尝试向一些Web服务调用中添加一些响应标头。我使用CXF 2.1.2和JAX- RS编写了Web服务。我需要返回一个对象,我还想向Response添加一些标头。 在不返回javax.ws.rs.core.Response对象的情况下 ,如何在响应中添加标头并仍然返回javabean? 问题答案: 您可以通过Web服务中的@Context注释注入对实际HttpServletResp