Ich erhalte die folgende Ausnahme, wenn ich versuche, einen RESTful-Webdienst von HelloWorld zu erreichen, der mit Jersey und Maven auf Apache Tomcat implementiert wurde.com.sun.jersey.api.container.ContainerException: Die ResourceConfig-Instanz enthält keine Stammressourcenklassen
URL: http://localhost:8080/TestRest/rest/hello/abcd
com.sun.jersey.api.container.ContainerException: Die ResourceConfig Instanz enthält keine Klassen Ressource root.
Ich schaute auf verschiedene Quellen im Internet, sie sagen, die Ausnahme tritt auf, weil keine Klasse in der Paketstruktur in web.xml gegeben, aber ich habe sichergestellt, dass sie alle korrekt sind.
Jede Hilfe diesbezüglich wird sehr geschätzt.
Im Folgenden finden Sie den Code von pom.xml
<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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>my.test.rest</groupId>
<artifactId>TestRest</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>TestRest Maven Webapp</name>
<url>http://maven.apache.org</url>
<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>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-server</artifactId>
<version>1.8</version>
</dependency>
</dependencies>
<build>
<finalName>TestRest</finalName>
</build>
</project>
Dies ist die einfache Helloworld ist.
package com.rest;
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 HelloWorldService {
@GET
@Path("/{param}")
public Response getMsg(@PathParam("param") String msg) {
String output = "Hello, " + msg;
return Response.status(200).entity(output).build();
}
}
Und schließlich die web.xml
<web-app id="WebApp_ID" version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<display-name>Restful Web Application</display-name>
<servlet>
<servlet-name>HelloServlet</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>com.rest</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>HelloServlet</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
</web-app>
Ich hoffe, dass die Verzeichnisstruktur von mir auch richtig ist, mich bitte zu korrigieren, wenn dies nicht der Fall.
Danke, dass ich den Fehler zeigen ... Wirklich schätzen! –