2017-08-28 1 views
0

Ich habe versucht sehr einfach erholsam Tutorial mit javax.ws und ich habe Probleme mit maven Abhängigkeit. web.xml-Datei als comming unter:erholsam mit Maven hat 404 nicht gefunden Fehler

<?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"> 
<servlet> 
    <servlet-name>jersey-servlet</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>service</param-value> 
    </init-param> 
    <load-on-startup>1</load-on-startup> 
</servlet> 
<servlet-mapping> 
    <servlet-name>jersey-servlet</servlet-name> 
    <url-pattern>/*</url-pattern> 
</servlet-mapping> 
</web-app> 

und Maven Abhängigkeit wie folgt aus:

<?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>groupId</groupId> 
<artifactId>untitled40</artifactId> 
<version>1.0-SNAPSHOT</version> 
<dependencies> 
    <dependency> 
     <groupId>javax.ws.rs</groupId> 
     <artifactId>javax.ws.rs-api</artifactId> 
     <version>2.0</version> 
    </dependency> 
    <dependency> 
     <groupId>com.sun.jersey</groupId> 
     <artifactId>jersey-server</artifactId> 
     <version>1.2</version> 
    </dependency> 
</dependencies> 
</project> 

und Klasse:

package service; 

import javax.ws.rs.*; 
@Path("hesab") 
public class App { 

@Path("textc") 
@GET 
@Produces("text/plain") 
public String recit(){ 
    return "got it"; 
} 
} 

und das Problem ist, wenn ich JAR-Dateien in hinzufügen lib Ordner in WEB-INF es funktioniert und eine Verbindung zu meinem Dienst, aber wenn ich versuche, Maven-Abhängigkeit hinzufügen und lib-Ordner löschen, es funktioniert nicht! Könnten Sie mir bitte sagen, was das Problem ist?

+0

Ihr Beispiel pom.xml erstellt eine JAR-Datei - keine WAR-Datei. Sie müssen ein ' Krieg' Element hinzufügen. –

+0

wo sollte ich diese verpackung hinzufügen? in POM? – bigelite

+0

Ja, in der Regel zwischen ' untitled40' und ' 1.0-SNAPSHOT' –

Antwort

0

Ich hatte das gleiche Problem.

Ihre javax Abhängigkeit für dieses

<dependency> 
    <groupId>org.glassfish.jersey.core</groupId> 
    <artifactId>jersey-server</artifactId> 
    <version>2.6</version> 
</dependency> 
<dependency> 
    <groupId>org.glassfish.jersey.containers</groupId> 
    <artifactId>jersey-container-servlet</artifactId> 
    <version>2.6</version> 
</dependency> 
<dependency> 
    <groupId>com.fasterxml.jackson.jaxrs</groupId> 
    <artifactId>jackson-jaxrs-json-provider</artifactId> 
    <version>2.4.1</version> 
</dependency> 

ein ändern und diese Klasse

package ***.services; 

import java.util.HashSet; 
import java.util.Set; 

import javax.ws.rs.ApplicationPath; 
import javax.ws.rs.core.Application; 

import ***UsuarioResource; 

/** 
* The Class PortalAppConfiguration. 
*/ 
@ApplicationPath("api") 
public class ApiConfiguration extends Application { 

    @Override 
     public Set<Class<?>> getClasses() 
     { 
      final Set<Class<?>> classes = new HashSet<>(); 
      classes.add(UsuarioResource.class);//your resource 

      return classes; 
     } 

} 

lassen Sie Ihre web.xml wie diese, weil in dieser neuen Implementierung erstellen, ist es nicht

verwendet wird
<?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"> 

</web-app> 
+0

und wie kann ich diesen Service anrufen? Was ist eine URL? – bigelite

+0

in diesem Fall: localhost: 8080/api/[hier kam der Pfad in Ihrer Ressource] –

Verwandte Themen