2017-11-01 11 views
-3

こんにちは私は大学のチュートリアルに続いて、Javaでjettyを使用しています。チュートリアルにもかかわらず、私はそれを実行することはできません。Java HTTPエラー404 - Jetty

エラー enter image description here

以下の私のコード パッケージcom.mycompany.jerseytutorialです。

import javax.ws.rs.GET; 
import javax.ws.rs.Path; 
import javax.ws.rs.PathParam; 
import javax.ws.rs.core.Response; 

@Path("/hello") 
public class Tester { 

@GET 
@Path("/{param}") 
public Response sayHelloWorld(@PathParam("param") String message) { 
    String output = "Hello " + message + "!"; 
    return Response.status(200).entity(output).build(); 
} 
} 

のpom.xml

<?xml version="1.0" encoding="UTF-8"?> 
<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/xsd/maven-4.0.0.xsd"> 
<modelVersion>4.0.0</modelVersion> 

<groupId>com.mycompany</groupId> 
<artifactId>JerseyTutorial</artifactId> 
<version>1.0-SNAPSHOT</version> 
<packaging>war</packaging> 

<name>JerseyTutorial</name> 

<properties> 
    <endorsed.dir>${project.build.directory}/endorsed</endorsed.dir> 
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
</properties> 

<dependencies> 
    <dependency> 
     <groupId>javax</groupId> 
     <artifactId>javaee-web-api</artifactId> 
     <version>7.0</version> 
     <scope>provided</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.glassfish.jersey.containers</groupId> 
     <artifactId>jersey-container-servlet</artifactId> 
     <version>2.0</version> 
    </dependency> 

</dependencies> 

<build> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <version>3.1</version> 
      <configuration> 
       <source>1.7</source> 
       <target>1.7</target> 
       <compilerArguments> 
        <endorseddirs>${endorsed.dir}</endorseddirs> 
       </compilerArguments> 
      </configuration> 
     </plugin> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-war-plugin</artifactId> 
      <version>2.3</version> 
      <configuration> 
       <failOnMissingWebXml>false</failOnMissingWebXml> 
      </configuration> 
     </plugin> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-dependency-plugin</artifactId> 
      <version>2.6</version> 
      <executions> 
       <execution> 
        <phase>validate</phase> 
        <goals> 
         <goal>copy</goal> 
        </goals> 
        <configuration> 
         <outputDirectory>${endorsed.dir}</outputDirectory> 
         <silent>true</silent> 
         <artifactItems> 
          <artifactItem> 
           <groupId>javax</groupId> 
           <artifactId>javaee-endorsed-api</artifactId> 
           <version>7.0</version> 
           <type>jar</type> 
          </artifactItem> 
         </artifactItems> 
        </configuration> 
       </execution> 
      </executions> 
     </plugin> 
     <plugin> 
      <groupId>org.eclipse.jetty</groupId> 
      <artifactId>jetty-maven-plugin</artifactId> 
      <version>9.2.4.v20141103</version> 
      <configuration> 
       <httpConnector> 


       </httpConnector> 
       <scanIntervalSeconds>3</scanIntervalSeconds> 
       <webAppConfig> 
       <!-- defaultsDescriptor> 
       ,→ src/test/resources/jetty-maven-plugin-webdefault.xml 
       ,→ </defaultsDescriptor--> 
       </webAppConfig> 
      </configuration> 
     </plugin> 
    </plugins> 
</build> 

WEB.XML

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

<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" 
    version="3.1"> 
    <session-config> 
     <session-timeout> 
      30 
     </session-timeout> 
    </session-config> 

<servlet> 
    <servlet-name>rest</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.mycompany.jerseyexample</param-value> 
    </init-param> 
</servlet> 
<servlet-mapping> 
    <servlet-name>rest</servlet-name> 
    <url-pattern>/api/*</url-pattern> 
</servlet-mapping> 
</web-app> 

それと間違っているものを任意のアイデア。私は正しいURLパスを入力しています。私は503エラーを解決した後、私はこの404エラーを後で得たので、私は現時点でかなり困惑しています。

+0

入力する完全なURLを投稿できますか? – RLD

+0

http:// localhost:8080/api/hello/jack – jackjs

+0

URLをlocalhost:8080/JerseyTutorial/api/hello/jackに変更して確認します。 – RLD

答えて

1

ジャージーはスキャニングパッケージcom.mycompany.jerseyexampleで、レセレットはパッケージcom.mycompany.jerseytutorialで実装されています。クラスを移動したり、jersey.config.server.provider.packages paramを編集することができます。

関連する問題