2017-01-10 110 views
0

我正在学习使用jax RS(球衣)实现的Restful webservices。我使用jersery快速入门web应用程序创建了一个示例maven项目。 代码:Baisc Restful Webservice项目404没有找到

的index.jsp

<html> 
<body> 
<h2>Jersey RESTful Web Application!</h2> 
<p><a href="webapi/myresource">Jersey resource</a> 
<p>Visit <a href="http://jersey.java.net">Project Jersey website</a> 
for more information on Jersey! 

MyResource.java

package org.restful.sumanth.RestfulSumanth; 

import javax.ws.rs.GET; 
import javax.ws.rs.Path; 
import javax.ws.rs.Produces; 
import javax.ws.rs.core.MediaType; 

/** 
* Root resource (exposed at "myresource" path) 
*/ 
@Path("myresource") 
public class MyResource { 

/** 
* Method handling HTTP GET requests. The returned object will be sent 
* to the client as "text/plain" media type. 
* 
* @return String that will be returned as a text/plain response. 
*/ 
@GET 
@Produces(MediaType.TEXT_PLAIN) 
public String getIt() { 
    return "Got it!"; 
} 
} 

WEB.XML

<?xml version="1.0" encoding="UTF-8"?> 
<!-- This web.xml file is not required when using Servlet 3.0 container, 
    see implementation details http://jersey.java.net/nonav/documentation /latest/jax-rs.html --> 
<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>Jersey Web Application</servlet-name> 
    <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class> 
    <init-param> 
     <param-name>jersey.config.server.provider.packages</param-name> 
     <param-value>org.restful.sumanth.RestfulSumanth</param-value> 
    </init-param> 
    <load-on-startup>1</load-on-startup> 
</servlet> 
<servlet-mapping> 
    <servlet-name>Jersey Web Application</servlet-name> 
    <url-pattern>/webapi/*</url-pattern> 
</servlet-mapping> 

当我运行该项目,我有输出:

Jersey RESTful Web Application! 

[Jersey resource][1] 

Visit [Project Jersey website][2] for more information on Jersey! 


    [1]: http://webapi/myresource 
    [2]: https://jersey.java.net/ 

当我点击泽西资源链接它给404,即使我有资源。有些人可以解释为什么myresource在找到请求时无法找到?

+0

你能添加你的Maven依赖关系? – dsncode

+0

[Tomcat上的Jersey REST服务404错误]的可能重复(http://stackoverflow.com/questions/29315062/404-error-with-jersey-rest-service-on-tomcat) –

回答

0

我已得到另一计算器后回答:404 error with Jersey REST Service on Tomcat

我已经取代了下面的依赖这使得它的工作:

<dependency> 
     <groupId>org.glassfish.jersey.containers</groupId> 
     <artifactId>jersey-container-servlet</artifactId> 
</dependency> 

<dependency> 
<groupId>org.glassfish.jersey.containers</groupId> 
<artifactId>jersey-container-servlet</artifactId> 
<version>2.17</version> 
</dependency>