2016-06-27 7 views
0

Ich habe einen Trikot-Webdienst erstellt und auf einem Tomcat-Anwendungsserver bereitgestellt. Ich habe die Kriegsdatei in Tomcat bereitgestellt, aber immer noch, wenn ich versuche, auf die Anwendung zuzugreifen, bekam ich einen Fehler, dass die angeforderten Daten nicht gefunden werden konnten (Der Standard Tomcat 404 Fehler). Dies ist meine web.xml-Datei.Java Jersey kann nicht resoruce finden

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

http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd“ id = "WebApp_ID" version = "2.5"> Jersey index.html

<servlet> 
    <servlet-name>Jersey REST Service</servlet-name> 
    <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class> 
    <init-param> 
     <param-name>com.sun.jersey.config.property.packages</param-name> 
     <param-value>sample.jsonStrip.resources</param-value> 
    </init-param> 
    <load-on-startup>1</load-on-startup> 
</servlet> 

<servlet-mapping> 
    <servlet-name>RestServlet</servlet-name> 
    <url-pattern>/rest/*</url-pattern> 
</servlet-mapping> 

Das ist mein pom.xml

http://maven.apache.org/xsd/maven-4.0.0.xsd "> 4.0.0 org.rares.urs Jersey 0.0.1-SNAPSHOT Zutaten

<repositories> 
    <repository> 
     <id>maven2-repository.java.net</id> 
     <name>Java.net Repository for Maven</name> 
     <url>http://download.java.net/maven/2/</url> 
     <layout>default</layout> 
    </repository> 
</repositories> 
<packaging>war</packaging> 

<build> 
    <finalName>JsonStrip</finalName> 

    <plugins> 
     <plugin> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <version>3.1</version> 
      <configuration> 
       <source>1.7</source> 
       <target>1.7</target> 
      </configuration> 
     </plugin> 

     <plugin> 
      <artifactId>maven-war-plugin</artifactId> 
      <version>2.4</version> 
      <configuration> 
       <warSourceDirectory>WebContent</warSourceDirectory> 
       <failOnMissingWebXml>false</failOnMissingWebXml> 
      </configuration> 
     </plugin> 

     <plugin> 
      <groupId>org.codehaus.mojo</groupId> 
      <artifactId>tomcat-maven-plugin</artifactId> 
      <configuration> 
       <url>http://127.0.0.1:8888/manager</url> 
       <server>mytomcat</server> 
       <path>/Jersey</path> 
      </configuration> 
     </plugin> 


     <plugin> 
      <groupId>org.apache.tomcat.maven</groupId> 
      <artifactId>tomcat8-maven-plugin</artifactId> 
      <version>2.2</version> 
      <configuration> 
       <url>http://127.0.0.1:8888/manager</url> 
       <server>TomcatServer</server> 
       <path>/Switch</path> 
      </configuration> 
     </plugin> 

    </plugins> 
</build> 

<dependencies> 
    <dependency> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-jar-plugin</artifactId> 
     <version>3.0.0</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-dependency-plugin</artifactId> 
     <version>2.9</version> 
    </dependency> 
    <dependency> 
     <groupId>javax.servlet</groupId> 
     <artifactId>servlet-api</artifactId> 
     <version>2.5</version> 
    </dependency> 
    <dependency> 
     <groupId>com.fasterxml.jackson.jaxrs</groupId> 
     <artifactId>jackson-jaxrs-json-provider</artifactId> 
     <version>2.7.0</version> 
    </dependency> 
    <dependency> 
     <groupId>javax.ws.rs</groupId> 
     <artifactId>javax.ws.rs-api</artifactId> 
     <version>2.0.1</version> 
     <scope>provided</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-war-plugin</artifactId> 
     <version>2.6</version> 
    </dependency> 
    <dependency> 
     <groupId>org.codehaus.jackson</groupId> 
     <artifactId>jackson-mapper-asl</artifactId> 
     <version>1.9.2</version> 
    </dependency> 
    <dependency> 
     <groupId>org.codehaus.jackson</groupId> 
     <artifactId>jackson-core-asl</artifactId> 
     <version>1.9.2</version> 
    </dependency> 
    <dependency> 
     <groupId>com.sun.jersey</groupId> 
     <artifactId>jersey-client</artifactId> 
     <version>1.8</version> 
    </dependency> 
    <dependency> 
     <groupId>org.glassfish.jersey.core</groupId> 
     <artifactId>jersey-common</artifactId> 
     <version>2.22.2</version> 
     <scope>test</scope> 
    </dependency> 
    <dependency> 
     <groupId>asm</groupId> 
     <artifactId>asm</artifactId> 
     <version>3.3.1</version> 
    </dependency> 
    <dependency> 
     <groupId>com.sun.jersey</groupId> 
     <artifactId>jersey-bundle</artifactId> 
     <version>1.19</version> 
    </dependency> 
    <dependency> 
     <groupId>org.json</groupId> 
     <artifactId>json</artifactId> 
     <version>20140107</version> 
    </dependency> 
    <dependency> 
     <groupId>com.sun.jersey</groupId> 
     <artifactId>jersey-server</artifactId> 
     <version>1.19</version> 
    </dependency> 
</dependencies> 

Beide der XML-Dateien sind in in Jersey Stammordner befindet. Ich habe einige Fälle gesehen, in denen sich wab.xml in WebContent/WEB-INF/web.xml befindet? Wo sollte ich es platzieren?

Danke!

+0

Das könnte viele Gründe haben. Was sagt das Protokoll beim Starten? Welche URL hast du getroffen? Mehrere Probleme in pom.xml. Web.xml muss in WEB-INF/web.xml platziert werden. – Stefan

+0

Ich habe eine web.xml, aber es wurde automatisch generiert, sollte ich den Inhalt durch den von mir erstellten ersetzen? Ich gehe zu http://127.0.0.1:8889/JsonStrip/rest/jersey, aber ich habe alle möglichen Kombinationen ausprobiert. Welche Fehler habe ich in pom? –

+0

Der '' in der web.xml muss an beiden Orten übereinstimmen. –

Antwort

0

Die <servlet-name> in der web.xml müssen an beiden Standorten

Im <servlet-mapping>, die <servlet-name> teilt dem Behälter, welche Servlet diese Zuordnung gelten soll, von der Suche nach einem <servlet> mit derselben <servlet-name> übereinstimmen. Im Moment hat Ihr Jersey-Servlet keine URL-Zuordnung, so dass keine Anfragen bearbeitet werden.

Ich habe einige Fälle gesehen, in denen sich wab.xml in WebContent/WEB-INF/web.xml befindet? Wo sollte ich es platzieren?

Dort. Ich habe Eclipse zwar schon lange nicht mehr benutzt, bin aber ziemlich sicher, dass der WebContent-Ordner kein "echter" Ordner ist. Es ist nur ein IDE-Anzeigeordner. Es sollte in der realen Verzeichnisstruktur src/main/webapp in einer Maven-Anwendung abbilden. Das ist, wo die web.xml sein sollte src/main/webapp/WEB-INF

+0

Ich habe den Namen in beiden Tags zu RestServlet ersetzt, jetzt sollte die App mit http://127.0.0.1:8889/Jersey/RestServlet/(and_the_path_to_a_class) starten? –

+0

Entweder das oder ersetzen Sie "Jersey" durch "JsonStrip". Hängt von Ihrer Eclipse Kontextkonfiguration ab –

+0

Vielen Dank! Vielleicht ist meine Ordnerstruktur falsch, ich bekomme immer den gleichen Fehler –