Zunächst einmal bin ich neu in dieser Umgebung. Ich habe Java vorher entwickelt, aber nicht für einen Anwendungsserver. Ich habe noch nie zuvor mit JBoss oder WildFly gearbeitet.Einfache REST API mit WildFly 8
Ich konnte den WildFly-Server einrichten und ausführen und unter 127.0.0.1:9990
darauf zugreifen. Wenn ich meine .war
-Datei bereitstellen, reagiert der Server nicht und ich kann nicht auf die URLs zugreifen.
Der WildFly-Server gibt an, dass meine Bereitstellung erfolgreich war und aktiv ist, dann versuche ich auf 127.0.0.1:8080/RECAPP-API/rest/message/test
zuzugreifen, und ich bekomme 404 (Seite nicht gefunden Fehler).
ich Maven bin mit, so zuerst, mein 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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.test.recapp.rest</groupId>
<artifactId>RECAPP-API</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-jaxrs</artifactId>
<version>3.0.6.Final</version>
</dependency>
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-jackson-provider</artifactId>
<version>3.0.6.Final</version>
</dependency>
</dependencies>
</project>
Mein JSONService.java
:
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.Response;
@Path("/message")
public class JSONService {
@GET
@Path("/{param}")
@Produces("application/json")
public Response printMessage(@PathParam("param") String msg) {
String result = "Restful example: " + msg;
return Response.status(200).entity(result).build();
}
}
Und schließlich meine 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"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
id="WebApp_ID" version="3.0">
<display-name>RECAPP-API</display-name>
<context-param>
<param-name>resteasy.scan</param-name>
<param-value>true</param-value>
</context-param>
<context-param>
<param-name>resteasy.servlet.mapping.prefix</param-name>
<param-value>/rest</param-value>
</context-param>
<listener>
<listener-class>org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap</listener-class>
</listener>
<servlet>
<servlet-name>resteasy-servlet</servlet-name>
<servlet-class>org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>resteasy-servlet</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
</web-app>
Vielen Dank für Ihre Hilfe .
Die erste Rest-Anwendung könnte ein wenig verwirrend am Anfang sein. Es scheint, dass Sie den JaxRsActivator vermissen. Sie benötigen dies, um einen gültigen Kontext für die Anwendung zu erstellen. '@ApplicationPath ("/rest ") öffentliche Klasse JaxRsActivator erweitert Anwendung { /* Klassenbereich absichtlich leer gelassen */ } Auch das TicketMonster-Lernprogramm können Sie sich ansehen: http://www.jboss.org/ jdf/examples/ticket-monster/tutorial/Einführung/ – Goot
Schade, dass das Tutorial nicht eine einzige Erwähnung gibt, was Sie versuchen zu erklären, obwohl; Es hängt von der Code-Generierung ab und erklärt nicht wirklich viel über die Grundlagen. – Gimby
@Goot - warum macht WildFly das? Ich kenne ältere Versionen von JBoss, Sie müssen nur web.xml konfigurieren. Auf meiner Maschine hat das nicht funktioniert, also ging ich mit dem, was Sie gesagt haben, zu tun und es hat funktioniert. –