Upgrade JAX-RS 1.1 JAX-RS 2.0 Hilfe brauchen web.xml Bereitstellung
Ich arbeite an einem Projekt, um ein upgrade von meinem bestehenden web-Applikation entwickelt, die in JAX-RS 1.12 und läuft im tomcat 7. Jetzt bin ich ein "Upgrade" zu JAX-RS2.0. Während der tomcat-server-Start-meine Ressourcen sind nicht immer geladen ?
Unten sind die details.
Hinzugefügt unten Gläser für JAX-RS 2.0
jersey-client-2.0-m07-1
jersey-common-2.0-m07-1
jersey-container-servlet-2.0-m07-1
jersey-container-servlet-core-2.0-m07-1
jersey-server-2.0-m07-1
javax.ws.rs-api-2.0-m10
osgi-resource-locator-1.0.1
javax.Spritzen-2.1.28
javax.Spritzen-1
hk2-utils-2.1.28
hk2-locator-2.1.28
hk2-api-2.1.28
Guave-13.0
cglib-2.1.28
asm-alle-neu verpackt-2.1.28
In Web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
id="WebApp_ID" version="2.5">
<display-name>ConfigLiteJersey2</display-name>
<!-- Jersey Servlet to Support JAXRS Services -->
<servlet>
<servlet-name>ConfigLiteServices</servlet-name>
<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>javax.ws.rs.core.Application</param-name>
<param-value>com.cisco.config.resource</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>ConfigLiteServices</servlet-name>
<url-pattern>/config/*</url-pattern>
</servlet-mapping>
Meine Ressource-Datei
@Path("/configset")
public class ConfigSetResource {
@POST
@Path("/id{configsetid: (/[^/]+?)?}")
@Consumes({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
@Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
public ConfigSetResponse getConfigSet(@PathParam("configsetid") String sConfigSetId) throws Exception {
//Code
}
}
Versuch den Zugriff auf meine Ressourcen-API durch die URL unten
IP-Adresse:8080/ConfigLiteJersey2/config/configset/id
Erste HTTP-status 404 not found.
Sieht aus wie ich bin nicht zu geben richtige servletclass mapping in web.xml. Bitte teilen Sie Ihre Gedanken auf diese
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie möchten, Jersey, Scannen Sie Ihr Paket für die Ressourcen, ändern Sie Ihr param-name:
Ich bin mit Jersey 2.15, und unten ist die funktionierende Konfiguration:
Tolle Sache, die ich erfuhr, war, können wir register-provider Klasse wie Globalen Exception-handler. daher
com.le.exceptions
enthalten, bei meinem provider-Klasse, die implementiertExceptionMapper
zur Verfügung gestellt von Jersey.Andere Sache, die Wir brauchen zu erstellen eine Unterklasse
org.glassfish.jersey.server.ResourceConfig
und registrieren es als unserejax-rs
Anwendung.Wenn Sie mit der Servlet-version 3.0 würde ich vorschlagen, nach dem Vorbild in den jersey-Handbuch hier: https://jersey.java.net/documentation/latest/deployment.html#deployment.servlet.3.descriptor
Erstellen Sie eine Klasse, die javax.ws.rs.core.Anwendung sagen, org.foo.rest.ConfigLiteApplication. Dann stellen Sie Ihre web.xml wie folgt (übernommen aus der jersey-Seite etwas passend zu Ihrem Beispiel):
Sollte diese Arbeit auf die beiden JAX-RS 1.1 und JAX-RS 2.0 und neutral sein sollte, um die jersey-version, wie Sie nie brauchen, um eine jersey-Klassen. Die ConfigLiteApplication Klasse laden soll, die Ressourcen, die Sie einschließen möchten, zum Beispiel adaptiert von http://tomee.apache.org/examples-trunk/rest-example-with-application/README.html:
Einer modernen IDE werden wahrscheinlich in der Lage, zu verwalten, diese Klasse für Sie.
Auch, wenn ich du wäre würde ich vorsichtig sein, zu überprüfen, in diesem regulären Ausdruck entsprechen, wenn Sie in der Hoffnung, mit /id
Ich würde aufteilen dieser in mehrere Funktionen oder sonst arbeiten, um zu versuchen und vermeiden Sie diese Art von regex. Zum Beispiel
Nach langer Google-Suche, Konfigurierte ich mir auf diese Weise, und es funktionierte perfekt
bauen.gradle sollte so etwas wie dieses
ApplicationConfig.java die Datei sollte so etwas wie dieses
Ihre web.xml die Datei sollte so etwas wie dieses
Dies meine Probleme löst..Danke