2017-05-08 59 views
0

我是JAX-RS的新手,并且创建了Maven项目,但是当我尝试调用我的服务时,我得到在TomcatJAX-RS Jersey Maven HTTP状态404原始服务器没有找到目标资源的当前表示

HTTP状态404以下服务器状态:原始服务器没有找到目标资源当前 表示或不愿意披露存在一个 。

的pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>com.lymedo.rest</groupId> 
    <artifactId>RestService</artifactId> 
    <packaging>war</packaging> 
    <version>0.0.1-SNAPSHOT</version> 
    <name>RestService Maven Webapp</name> 
    <url>http://maven.apache.org</url> 
    <dependencies> 
     <!-- https://mvnrepository.com/artifact/org.glassfish.jersey.core/jersey-server --> 
     <dependency> 
      <groupId>org.glassfish.jersey.core</groupId> 
      <artifactId>jersey-server</artifactId> 
      <version>2.26-b03</version> 
     </dependency> 
     <!-- https://mvnrepository.com/artifact/org.sonatype.aether/aether-api --> 
     <dependency> 
      <groupId>org.sonatype.aether</groupId> 
      <artifactId>aether-api</artifactId> 
      <version>1.7</version> 
     </dependency> 
     <dependency> 
      <groupId>org.sonatype.aether</groupId> 
      <artifactId>aether-impl</artifactId> 
      <version>1.7</version> 
     </dependency> 
     <dependency> 
      <groupId>commons-io</groupId> 
      <artifactId>commons-io</artifactId> 
      <version>2.4</version> 
     </dependency> 
     <!-- https://mvnrepository.com/artifact/com.google.code.findbugs/jsr305 --> 
     <dependency> 
      <groupId>com.google.code.findbugs</groupId> 
      <artifactId>jsr305</artifactId> 
      <version>2.0.1</version> 
     </dependency> 
     <dependency> 
      <groupId>org.apache.maven</groupId> 
      <artifactId>maven-aether-provider</artifactId> 
      <version>3.0</version> 
     </dependency> 
     <dependency> 
      <groupId>org.apache.maven</groupId> 
      <artifactId>maven-artifact</artifactId> 
      <version>3.0</version> 
     </dependency> 
     <dependency> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <version>3.5.1</version> 
      <type>maven-plugin</type> 
     </dependency> 
    </dependencies> 
    <build> 
     <plugins> 
      <plugin> 
       <artifactId>maven-jar-plugin</artifactId> 
       <version>2.4</version> 
      </plugin> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <version>3.5.1</version> 
       <configuration> 
        <source>1.8</source> 
        <target>1.8</target> 
       </configuration> 
      </plugin> 
     </plugins> 
     <finalName>RestService</finalName> 
    </build> 
</project> 

的web.xml

<!DOCTYPE web-app PUBLIC 
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" 
"http://java.sun.com/dtd/web-app_2_3.dtd" > 
<web-app> 

    <display-name>Archetype Created Web Application</display-name> 

    <servlet> 
     <servlet-name>jersey-serlvet</servlet-name> 
     <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class> 
     <init-param> 
      <param-name>jersey.config.server.provider.packages</param-name> 
      <param-value>com.lymedo</param-value> 
     </init-param> 
    </servlet> 
    <servlet-mapping> 
     <servlet-name>jersey-serlvet</servlet-name> 
     <url-pattern>/rest/*</url-pattern> 
    </servlet-mapping> 
</web-app> 

服务

package com.lymedo; 

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

@Path("/service") 
public class Service { 

    @GET 
    @Path("/hello") 
    @Produces(MediaType.TEXT_PLAIN) 
    public String sayHello(){ 

     return "Hello!"; 

    } 

} 

Project Structure

我正在使用邮递员测试以下URL的服务: http://localhost:8080/RestService/rest/service/hello

所以我假设这是一个映射问题,并且Tomcat找不到声明该服务的类?

我希望这是明显的东西。任何帮助将不胜感激。谢谢

回答

0

您需要的不仅仅是jersey-server。您需要的主要是

<dependency> 
    <groupId>org.glassfish.jersey.containers</groupId> 
    <artifactId>jersey-container-servlet</artifactId> 
    <version>${jersey2.version}</version> 
</dependency> 
+0

谢谢! :)我以为我有服务器核心的所有依赖......显然不是!我想下一次更详细的文档阅读。 – Lymedo

相关问题