【问题标题】:Jersey with tomcat giving 404 error带有tomcat的泽西岛给出404错误
【发布时间】:2013-02-01 10:33:04
【问题描述】:

我正在使用带有 tomacat 6 和 eclipse Juno 的 Jersey。

我的文件名是 HelloWorldService :

package com.mkyong.rest;

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.core.Response;

@Path("/hello")
public class HelloWorldService {

@GET
@Path("/{param}")
public Response getMsg(@PathParam("param") String msg) {

    String output = "Jersey say : " + msg;

    return Response.status(200).entity(output).build();

  }

}

Web.xml:

<web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee  http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

<display-name>Restful Web Application</display-name>

<servlet>
    <servlet-name>jersey-serlvet</servlet-name>
    <servlet-class>
                 com.sun.jersey.spi.container.servlet.ServletContainer
            </servlet-class>
    <init-param>
         <param-name>com.sun.jersey.config.property.packages</param-name>
         <param-value>com.mkyong.rest</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>jersey-serlvet</servlet-name>
    <url-pattern>/rest/*</url-pattern>
</servlet-mapping>

当我使用 Apache 作为服务器运行我的项目时,它会转到这个 url:

http://localhost:8080/Test/WEB-INF/classes/com/mkyong/rest/HelloWorldService.java

我收到 404 错误。

我也尝试了 version="3.0",但没有成功。 请帮帮我。

【问题讨论】:

    标签: java eclipse tomcat jersey


    【解决方案1】:

    你应该给你的网址如下;

    http://localhost:8080/<your-war-name>/rest/hello/<your-param>
    

    【讨论】:

    • 感谢您的回答。我创建了war文件并将其粘贴到apache文件夹中,然后使用您提供的url格式擦它并运行。但我想知道为什么它不在 Eclipse 浏览器中运行?我在 Eclipse 浏览器中输入我在 Firefox 中使用的 url,但它显示无法启动应用程序。如果可以的话,请我也这样做。谢谢。
    • 我有同样的问题。我的 Jersey 有时无法在 J2EE 预览服务器上运行。但是在服务器中工作。任何人都可以提供线索为什么会这样吗?
    【解决方案2】:

    你的例子的地址是:

    http://localhost:8080/Test/rest/hello/stranger
    

    这将输出:

    Jersey say : stranger
    

    附:我猜您的 WAR 名称是 Test.war,因为您的部署路径是 localhost:8080/Test

    【讨论】:

    • 为什么人们发布重复的答案?
    猜你喜欢
    • 1970-01-01
    • 2019-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-12
    • 1970-01-01
    • 1970-01-01
    • 2016-01-27
    相关资源
    最近更新 更多