2017-07-28 6 views
0

Je veux tenter l'essaim sauvage. J'ai créé un projet avec la fraction Jax-rs et une simple ressource mondiale hello. Je l'ai couru mais j'ai 404 non trouvé.Wildfly-swarm: impossible d'accéder à la ressource jax-rs (404 pas trouvé)

Voici mon pom.xml

<?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>org.aca.studies</groupId> 
<artifactId>swarm</artifactId> 
<version>1.0</version> 

<properties> 
    <version.wildfly-swarm>2017.7.0</version.wildfly-swarm> 
</properties> 

<build> 
    <plugins> 
     <plugin> 
      <groupId>org.wildfly.swarm</groupId> 
      <artifactId>wildfly-swarm-plugin</artifactId> 
      <version>${version.wildfly-swarm}</version> 
      <executions> 
       <execution> 
        <goals> 
         <goal>package</goal> 
        </goals> 
       </execution> 
       <execution> 
        <id>start</id> 
       </execution> 
       <execution> 
        <id>stop</id> 
       </execution> 
      </executions> 
     </plugin> 
    </plugins> 
</build> 

<dependencies> 
    <dependency> 
     <groupId>org.wildfly.swarm</groupId> 
     <artifactId>jaxrs</artifactId> 
     <version>${version.wildfly-swarm}</version> 
    </dependency> 
</dependencies> 

Et voici ma ressource JAX-RS

package org.aca.studies; 

import javax.ws.rs.GET; 
import javax.ws.rs.Path; 
import javax.ws.rs.Produces; 

@Path("/app") 
public class Resource { 

    @GET 
    @Path("/greet") 
    @Produces("text/html") 
    public String greet() { 
    return System.currentTimeMillis() + ""; 
    } 
} 

Comme vous pouvez le voir, il est très simple. Peut-être qu'il me manque quelque chose. Je n'ai pas ajouté de classe annotée @ApplicationPath car, selon la documentation (https://wildfly-swarm.gitbooks.io/wildfly-swarm-users-guide/content/common/jax-rs.html), cette fraction en ajoute une par défaut. Une autre chose que je pris des exemples sur GitHub (https://github.com/wildfly-swarm/wildfly-swarm-examples/tree/master/jaxrs/jaxrs) était que:

Depuis des applications wildfly Swarm ont tendance à soutenir un déploiement par exécutable, il ajoute automatiquement un jboss-web.xml au déploiement si elle n » t existe déjà. Ceci est utilisé pour lier le déploiement à la racine du serveur Web, au lieu d'utiliser le nom propre de .war comme contexte d'application.

Voilà pourquoi je suis en train d'accéder à mes ressources de http://localhost:8080/app/greet

+0

Comment débutez-vous votre service? – Seelenvirtuose

+0

mvn nettoyer wildfly-swarm: exécuter – Armando

Répondre

2

À partir de votre pom Je pense que le problème est que vous n'avez pas <packaging>war</packaging> présent ce qui signifie un fichier JAR est créé à la place.

Si vous changez l'empaquetage de Maven en WAR alors cela devrait être bon

+0

Cela a fonctionné, merci, @ Ken. J'ai aussi dû ajouter le plugin maven war car l'empaquetage échouait en raison de l'absence du fichier web.xml. – Armando