2017-05-08 34 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

相關問題