当前位置: 首页 > 知识库问答 >
问题:

JAX-RS与TOMCAT 7的RESTEASY的异常

诸新霁
2023-03-14

我正在尝试用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>

共有1个答案

谢阳成
2023-03-14

@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