在Tomcat 7中访问Jersey应用程序时出现404

我是Web开发的新手,我正在努力使用jersey创建一个简单的rest Web服务,该球衣打包为独立的war文件,并部署在tomcat 7上。

我已按照教程进行操作,以创建简单的HelloWorld Restful Web服务。我使用intelij来创建war文件(war文件和它的分解版本)并将它们部署在tomcat \webapps文件夹中。

启动tomcat时,我无法访问URL(http://localhost:8080/rest/hello)-获取404。

查看tomcat的日志,除了下面的几行,我找不到任何异常或错误:

INFO: Scanning for root resource and provider classes in the packages:

sample

εαΘ 30, 2013 11:24:38 PM com.sun.jersey.api.core.ScanningResourceConfig logClasses

INFO: Root resource classes found:

class sample.Hello

εαΘ 30, 2013 11:24:38 PM com.sun.jersey.api.core.ScanningResourceConfig init

INFO: No provider classes found.

我进行了很多搜索,并尝试遵循所有针对此错误的解决方案,但没有任何效果。

由于我的新生,我感到自己缺少一些非常基本的东西。有什么想法要搜索吗?我想念什么?这是一个简单的hello world应用程序,我非常狂喜,感到沮丧…

package sample;

import javax.ws.rs.GET;

import javax.ws.rs.Path;

import javax.ws.rs.Produces;

import javax.ws.rs.core.MediaType;

@Path("hello")

public class Hello {

// This method is called if TEXT_PLAIN is requested

@GET

@Produces(MediaType.TEXT_PLAIN)

public String sayHelloInPlainText() {

return "Hello world!";

}

// This method is called if HTML is requested

@GET

@Produces(MediaType.TEXT_HTML)

public String sayHelloInHtml() {

return "<html> " + "<title>" + "Hello world!" + "</title>"

+ "<body><h1>" + "Hello world!" + "</body></h1>" + "</html> ";

}

}

 <?xml version="1.0" encoding="UTF-8"?>

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee"

xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"

xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"

id="WebApp_ID" version="3.0">

<display-name>rest</display-name>

<servlet>

<servlet-name>Jersey REST Service</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>sample</param-value>

</init-param>

<load-on-startup>1</load-on-startup>

</servlet>

<servlet-mapping>

<servlet-name>Jersey REST Service</servlet-name>

<url-pattern>/*</url-pattern>

</servlet-mapping>

</web-app>

回答:

类似于 以下SO问题:“未找到提供程序类:运行JerseyREST示例应用程序时 ”。

消息“未找到提供程序类”很好,无需担心。为了使URL

http://localhost:8080/rest/hello正常工作,需要调用WAR文件rest.war。然后rest成为上下文根。您在项目注释中定义的所有路径都_相对于上下文root_ 。

以上是 在Tomcat 7中访问Jersey应用程序时出现404 的全部内容, 来源链接: utcz.com/qa/405095.html

回到顶部