Also ich baue eine kleine Pause API mit Java mit Jersey 2.23.2. Ich bin auf ein Problem gestoßen, jedoch kann ich das Servlet in der Datei web.xml nicht richtig angeben. Dies ist, wie meine Dateien wie folgt aussehen:Migrated zu Jersey 2.x und jetzt bekomme ich Servlet Container Ausnahme
pom.xml
<dependencies>
<dependency>
<groupId>org.glassfish.jersey.core</groupId>
<artifactId>jersey-client</artifactId>
<version>2.23.2</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-servlet-core</artifactId>
<version>2.23.2</version>
<scope>provided</scope>
</dependency>
</dependencies>
web.xml
...
<servlet>
<servlet-name>WebService</servlet-name>
<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>jersey.config.server.provider.packages</param-name>
<param-value>api-mashup-api.API</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>WebService</servlet-name>
<url-pattern>/api/*</url-pattern>
</servlet-mapping>
</web-app>
API.java
package api;
@Path("/v1")
public class API {
private Controller controller;
public API(){
controller = new Controller();
}
@GET
@Produces(MediaType.TEXT_HTML)
public String print1() {
return "Please specify what resource you need.";
}
/**
* Prints to the screen if we are in /v1/foo
*
* @return
*/
@GET
@Path("/foobar")
@Produces(MediaType.TEXT_HTML)
public String print2() {
return "Please specify what resource you need.";
}
}
Mein Projekt Ordnerstruktur sieht wie folgt aus:
api-mashup-api/Java Resources/src/api/API.java
I verwendet Jersey 1.x vor und dann wanderte ich auf 2.x und jetzt bin ich nicht sicher, was in den params des Servlets in Web zu stellen. XML. Wenn ich versuche, die API.java auf meinem Tomcatbediener zu laufen bekomme ich die folgende Ausnahme:
SEVERE: Servlet [WebService] in web application [/api-mashup-api] threw load() exception
java.lang.ClassNotFoundException: org.glassfish.jersey.servlet.ServletContainer
ich meine index.html fein obwohl nur erreichen kann, so dass der Server funktioniert, aber nicht der API-Teil. Ich bin mir nicht sicher, was ich hier machen soll. Offensichtlich stimmt etwas mit dem Servletteil nicht.
EDIT-Dinge, die ich habe versucht:
Added API.java an die param-valye in der web.xml
Sah Basic full configuration for Jersey on Tomcat in eclipse und die Lösung implementiert. Jetzt, wenn die API ausgeführt wird, wird der Server nicht abstürzen, aber ich kann zum Beispiel keine Ressource mit http://localhost:8080/api-mashup-api/v1 finden.
- Entfernt das Bereichs-Tag aus der Abhängigkeit des Glassfish-Servlet-Containers.
Können Sie api param-value> versuchen? Fügen Sie auch den Fall API.java hinzu, der nicht funktioniert. –
Veeram
versuchten beide, sie gaben mir das gleiche Ergebnis. – dikaJoe
Sorry, ich meine, fügen Sie die API.java Klasse zum Beitrag hinzu. – Veeram