2016-04-24 15 views
0

をヒットしようとしている私は私のポンポンが下に与えられている任意のweb.xmlの せずにサーブレット3.1を使用してジャージー2.xのサービスを作成していたとき、私は404 Not Foundエラーを取得しています:ジャージー2サービス

<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</groupId> 
    <artifactId>testex</artifactId> 
    <packaging>war</packaging> 
    <version>0.0.1-SNAPSHOT</version> 
    <name>testex Maven Webapp</name> 
    <url>http://maven.apache.org</url> 
    <dependencies> 
     <dependency> 
      <groupId>junit</groupId> 
      <artifactId>junit</artifactId> 
      <version>3.8.1</version> 
      <scope>test</scope> 
     </dependency> 
     <dependency> 
      <groupId>com.google.code.gson</groupId> 
      <artifactId>gson</artifactId> 
      <version>2.6.2</version> 
     </dependency> 
     <dependency> 
      <groupId>org.apache.logging.log4j</groupId> 
      <artifactId>log4j-api</artifactId> 
      <version>2.5</version> 
     </dependency> 
     <dependency> 
      <groupId>org.apache.logging.log4j</groupId> 
      <artifactId>log4j-core</artifactId> 
      <version>2.5</version> 
     </dependency> 
     <dependency> 
      <groupId>org.glassfish.jersey.core</groupId> 
      <artifactId>jersey-client</artifactId> 
      <version>2.22.2</version> 
     </dependency> 
     <dependency> 
      <groupId>org.glassfish.jersey.core</groupId> 
      <artifactId>jersey-server</artifactId> 
      <version>2.22.2</version> 
     </dependency> 
     <dependency> 
      <groupId>javax.servlet</groupId> 
      <artifactId>javax.servlet-api</artifactId> 
      <version>3.1.0</version> 
      <scope>provided</scope> 
     </dependency> 
     <dependency> 
      <groupId>org.apache.commons</groupId> 
      <artifactId>commons-lang3</artifactId> 
      <version>3.4</version> 
     </dependency> 
    </dependencies> 
    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-war-plugin</artifactId> 
       <version>2.6</version> 
       <configuration> 
        <failOnMissingWebXml>false</failOnMissingWebXml> 
       </configuration> 
      </plugin> 
      <plugin> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <version>3.1</version> 
       <configuration> 
        <source>1.8</source> 
        <target>1.8</target> 
       </configuration> 
      </plugin> 
     </plugins> 
     <finalName>testex</finalName> 
    </build> 
</project> 

package com.testex.service; 

import javax.ws.rs.ApplicationPath; 

import org.glassfish.jersey.server.ResourceConfig; 

@ApplicationPath("resources") 
public class TestexResourceConfig extends ResourceConfig { 
    public TestexResourceConfig() { 
     super(); 
     registerClasses(TestexService.class); 
    } 
} 

をそして、私のサービスは以下の通りである:私は@ApplicationPathリソースの設定は以下の通り使用してサービスを設定している

package com.testex.service; 

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

import com.testex.config.Config; 
import com.testex.config.ConfigLoader; 
import com.testex.provider.ProjectDetailsProvider; 
import com.testex.provider.VersionsProvider; 
import com.testex.provider.bean.Project; 
import com.google.gson.Gson; 

@Path("/rest") 
public class TestexService { 
    private final Config config; 

    public TestexService() { 
     super(); 
     config = ConfigLoader.getConfig(); 
    } 

    @GET 
    @Path("getDefaultProjectId") 
    @Produces(MediaType.APPLICATION_JSON) 
    public Response getDefaultProjectId() { 
     return Response.status(200).entity(new Gson().toJson(new Project(String.valueOf(config.getProjectId())))) 
       .build(); 
    } 

    @GET 
    @Path("getProjectDetails") 
    @Produces(MediaType.APPLICATION_JSON) 
    public Response getProjectDetails(@QueryParam("projectId") int projectId) { 
     return Response.status(200).entity(new Gson().toJson(new ProjectDetailsProvider().getProjectDetails(projectId))) 
       .build(); 
    } 

    @GET 
    @Path("getProjectVersionDetails") 
    @Produces(MediaType.APPLICATION_JSON) 
    public Response getProjectVersionDetails(@QueryParam("projectId") int projectId) { 
     return Response.status(200).entity(new Gson().toJson(new VersionsProvider().getVersionsForProject(projectId))) 
       .build(); 
    } 
} 

は、コンテキストルート "testex" 上のTomcat 8にそれを配備する上で、私は以下のURLヒット:

http://localhost:8080/testex/resources/rest/getDefaultProjectId 

をしかし、私は404 Not Foundエラーを取得します。助けてください。

答えて

0

さて、私はそれを理解しました。私がする必要があったのは、以下の依存関係を私のポンと追加して、今の魅力のようなすべての作品になりました。

<dependency> 
     <groupId>org.glassfish.jersey.containers</groupId> 
     <artifactId>jersey-container-servlet</artifactId> 
     <version>2.22.2</version> 
    </dependency> 
関連する問題