我正在尝试用Resteasy实现一个RESTFULL服务。当我试图在Tomcat Server7.0中运行时,iam出现异常。请在下面找到详细信息。
package com.naresh.resteasy;
import javax.ws.rs.GET;
import javax.ws.rs.Produces;
import javax.ws.rs.Consumes;
import javax.ws.rs.Path;
@Path("/HelloResteasy")
@Produces("text/plain")
@Consumes("text/plain")
public class HelloService {
@GET
@Path("/response")
public String printResponse(){
return "Hello";
}
}
package com.naresh.resteasy;
import java.util.HashSet;
import java.util.Set;
import javax.ws.rs.ApplicationPath;
import javax.ws.rs.core.Application;
-------------------------
@ApplicationPath("/service")
public class HelloApplication extends Application {
private Set<Object> singletons = new HashSet<Object>();
public HelloApplication() {
singletons.add(new HelloService());
}
@Override
public Set<Object> getSingletons() {
return singletons;
}
}
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
<display-name>RestEasyHello</display-name>
<servlet>
<servlet-name>resteasy-servlet</servlet-name>
<servlet-class>
org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher</servlet-class>
<init-param>
<param-name>javax.ws.rs.Application</param-name>
<param-value>com.naresh.resteasy.HelloApplication</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>resteasy-servlet</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
</web-app>
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-jaxrs</artifactId>
<version>3.0.13.Final</version>
</dependency>
<!-- Below dependency is for JAXB integration -->
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-jaxb-provider</artifactId>
<version>3.0.13.Final</version>
</dependency>
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-servlet-initializer</artifactId>
<version>3.0.16.Final</version>
</dependency>
@path
注释的值是区分大小写的字符串。在您的服务代码中,HelloService
用@path(“/helloresteasy”)
注释,但是您的请求路径是http://localhost:8080/resteasyhello/service/helloresteasy/response/
@ApplicationPath定义部署中所有JAX-RS服务的相对基URL路径。因此,在您的代码中,所有JAX-RS RESTful服务在执行时都应该以/services
路径作为前缀。即http://localhost:8080/service/helloresteasy/response/
什么是resteasy?RESTEasy和JAX-RS有什么区别?和之间有什么区别?
问题内容: 我真的很困惑。我已经尝试过使用tomcat的Jax-rs并使用所有能够使用调用我的服务的注释。因此,没有Jax- rs,我可以简单地拥有一个servlet并调用我的服务。同样,正如我尝试过的那样,有jax-rs和jersey(我研究了的实现)以及web.xml中的以下内容。 然后,我在GET上具有与JAX-RS相同的注释,可以使用正确的URL调用我的服务。 我的问题是,为什么球衣使用s
我试图在JBoss AS 7.1下部署一个简单的web应用程序,该应用程序与Resteasy捆绑在一起。根据文档,只需要(至少)一个空的、一个带有注释的和其他类的的类 下面是我所遵循的文档: https://docs.jboss.org/author/display/as7/jax-rs+reference+guide https://docs.jboss.org/author/display/a
有人知道出了什么问题吗?
然而,有一个名为resteasy.scan的配置开关,对其进行了描述: “自动扫描WEB-INF/lib jar和WEB-INF/classes目录,查找@provider和JAX-RS资源类(@path、@get、@post等)并注册它们” ...所以,如果我想自动扫描我的资源,而不需要在web.xml中列出它们,或者必须手动将它们的类添加到扩展Application的类中的单例列表中...我应
问题内容: 我已经读过我可以创建一个实现,将抛出的应用程序异常映射到对象。 我创建了一个简单的示例,如果在保留对象时电话长度大于20个字符,则会引发异常。我期望将异常映射到HTTP 400(错误请求)响应;但是,我收到HTTP 500(内部服务器错误),但有以下异常: 我想念什么?任何意见是极大的赞赏。 异常映射器: 异常类: 实体类: 服务: 问题答案: InvalidDataException