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

404错误JAXRS服务使用球衣和Tomcat

蒙才
2023-03-14

使用jersey编写JAXRS服务并部署在tomcat上。应用子类

@ApplicationPath("/rest")
public class RestApplication extends Application {

    public RestApplication() {
        // TODO Auto-generated constructor stub
        System.out.println("Inside RestApplication Constructor");
    }

    @Override
    public Set<Class<?>> getClasses() {
        // TODO Auto-generated method stub

        System.out.println("Get Class");
        Set<Class<?>> s=new HashSet<Class<?>>();
        s.add(SupportDataService.class);

        return s;
    }
}

资源类

@Path("/supportdata")
public class SupportDataService {


    public SupportDataService() {
        // TODO Auto-generated constructor stub
        System.out.println("Inside SupportDataService Constructor");
    }

    @Path("/support")
    @GET
    @Produces(MediaType.TEXT_XML)
    public String getSupportData(){

        String xmlSupport=null;

        xmlSupport="<SupportData><Support><key>path1</key><value>value1</value></Support><Support><key>path2</key><value>value2</value></Support></SupportData>";

        return xmlSupport;
    }
}

在 WEB-INF/lib 中添加了除 javax.servlet-api-3.0.1 之外的所有球衣罐子.jar并点击网址

http://localhost:8080/RestConfigurator/rest/supportdata/support

但是得到404错误。未将任何web.xml指定为子类应用程序

共有1个答案

扶高歌
2023-03-14

所以对于Tomcat 6,它是一个Servlet 2.5实现,我们需要一个web.xml来声明< code>ServletContainer。你可以在这里看到更多。基本上,如果您想保留您的< code>RestApplication类,那么< code>web.xml应该类似于

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 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_2_5.xsd">
    <servlet>
        <servlet-name>MyApplication</servlet-name>
        <servlet-class>
            org.glassfish.jersey.servlet.ServletContainer
        </servlet-class>
        <init-param>
            <param-name>javax.ws.rs.Application</param-name>
            <param-value>thepackge.of.RestApplication</param-value>
        </init-param>
    </servlet>

    <servlet-mapping>
        <servlet-name>MyApplication</servlet-name>
        <url-pattern>/rest/*</url-pattern>
    </servlet-mapping>
</web-app>

考虑到您已经添加了泽西JAX-RS 2.0 RI包中的所有jar(除了servlet api),这应该可以工作。我已经在Tomcat 6上使用Maven进行了测试,它工作正常。Maven只是从该捆绑包中提取了所有大部分jar。但是应用程序部署没有什么不同。

 类似资料:
  • 问题内容: 我们计划使用Spring 4.0.6版本制作一个新应用程序。我们使用可以返回“ XML”或“ JSON”的控制器。在上一个项目中,我们已经使用JAX-RS API成功地将Spring的Jersey支持REST支持,但是在阅读了前辈的几篇文章和建议后,他们说Spring提供了很好的REST支持。 如果我不使用JAX-RS和Jersey而使用Spring REST支持,则使我真正感到困惑的

  • 我使用的是Jersey 1.12,并且有一个endpoint可能接收也可能不接收来自我无法控制的客户端的格式错误的标头(例如)。显然,bla格式错误,因为规范要求参数也要有值,即 我可以按照这里、这里和这里的建议编写一个过滤器来解决这个问题,但我想知道是否有一种方法可以让Jersey在我对其值不感兴趣的情况下忽略所有格式错误的报头?

  • 大家好,我有一个问题,我不能在JBOSS 7.0.1服务器上部署restful服务,它看起来是已部署的,但问题是,当我在服务中通过post尝试它时,我得到404错误。。。。我不知道在这种情况下该怎么办,在同一台服务器上的其他web项目中,我没有遇到任何问题。 这是一个从SVN存储库导入的项目。 我发帖子的链接是http://localhost:8080/Project-战争/服务示例/测试 我有三

  • 我正在尝试通过jQuery POST将一些json数据发送到我本地机器中的jersey REST服务。 在我的服务器端,我有泽西方法来使用这个POST的JSON。 我正在请求中包装json数据。所以在服务器中,我可以在该包装类中获取请求中发送的所有数据。我的请求包装类是 问题pojo类 每当我从jquery发出如下请求时, 我在控制台中发现这个错误: 我可以通过从jQuery发送问题json并在方

  • 首先,问题是当我从rest servlet调用ejb时,ejb总是null。 我在jersey spring 3.0.5中开发了一个rest web服务。以及用于服务的EJB3.1。 我已经在耳朵里打包了war和jar,所以我的应用程序看起来像(我使用maven作为依赖): 我想知道如何从war文件中的类调用jar文件中的服务。据我记忆,这是通过JNDI,我需要公开ejb apis?我应该怎么做?

  • 我一直试图在tomcat上部署一个简单的Web服务,但我没有成功,它总是返回我404错误。 我使用了这个例子中的代码 http://www.mkyong.com/webservices/jax-ws/deploy-jax-ws-web-services-on-tomcat/ 但无法使用war,因为我在服务器中设置了上下文信息。xml 因此,我使用了与mkyong相同的代码,但在部署时遵循以下步骤: