2017-11-01 4 views
-3

Hallo Ich bin ein College-Tutorial mit Jetty in Java folgen. Ich kann es nicht ausführen, obwohl ich dem Tutorial folge.Java HTTP Error 404 - Jetty

Fehler enter image description here

Die unten ist mein Code Paket 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> 

Irgendwelche Ideen, was mit ihm nicht stimmt. Ich tippe den richtigen URL-Pfad ein. Ich habe einen 503 Fehler behoben, dann habe ich diesen 404 Fehler hinterher, also bin ich im Moment ziemlich ratlos.

+0

Können Sie die vollständige von Ihnen eingegebene URL posten? – RLD

+0

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

+0

Ändern Sie die URL zu localhost: 8080/JerseyTutorial/api/hello/jack und überprüfen Sie. – RLD

Antwort

1

Jersey ist Scan-Paket com.mycompany.jerseyexample und Ihr Restlet ist in Paket com.mycompany.jerseytutorial implementiert. So können Sie Ihre Klasse verschieben oder bearbeiten jersey.config.server.provider.packages param.