2016-12-29 1 views

Répondre

0

Copiez tous vos fichiers statiques dans src/main/webapp et vous ajoutez principale méthode de l'appel staticContenet comme suit

public static void main(String... args) throws Exception { 
    Swarm container = new Swarm(); 
    JAXRSArchive jaxrsDeployment = ShrinkWrap.create(JAXRSArchive.class); 
    jaxrsDeployment.addAsLibrary(container.createDefaultDeployment()); 
    jaxrsDeployment.addAllDependencies(); 
    jaxrsDeployment.staticContent(); 
    container.start(); 
    container.deploy(jaxrsDeployment); 
+0

J'ai fait la même chose, mais ça ne marche pas pour moi. Peut-être que je manque quelque chose? – Nikita

+0

vous pouvez vérifier le contenu du pot/guerre et voir si elles ajoutent correctement – ravthiru

+0

C'est un problème. Ils ne. – Nikita

0

Pouvez-vous expliquer pourquoi vous avez besoin d'un principal personnalisé()?

L'option préférée est de ne pas utiliser de main() principale personnalisée, ou si vous devez avoir un main() principal personnalisé pour ne pas personnaliser le déploiement.

Vous pouvez simplement appeler Swarm.deploy() et il crée un déploiement par défaut, si votre projet est la guerre de type, fonctionne très bien

+0

J'aime l'approche basée sur Java. Et cette personnalisation du déploiement est utilisée dans la plupart des exemples d'essaims de mouches sauvages (par exemple, pour ajouter de la fantaisie). Pour moi, ça ressemble à une meilleure approche, mais ce n'est pas bien documenté. – Nikita

+0

La plupart des exemples et de la documentation personnalisent le déploiement, ce ne sera donc pas beaucoup plus facile. – Nikita

+0

Si vous avez vraiment besoin d'un main() principal parce que vous avez besoin de personnaliser le WAR, utilisez Swarm.createDefaultDeployment() pour obtenir une archive équivalente à l'empaquetage WAR Maven plutôt que de tout construire à partir de rien – Ken

0

Cette question est dépassée. Mais je poste cette solution pour ceux qui rencontrent le même problème. Le problème peut se produire si vous utilisez JAX-RS sans spécifier @ApplicationPath.

Par défaut, JAX-RS écoute la racine / de votre application et remplace le mappage standard.

Dans ce cas, vous devez ajouter la configuration comme ceci:

import javax.ws.rs.ApplicationPath; 
import javax.ws.rs.core.Application; 

@ApplicationPath("/api") 
public class JaxRSConfiguration extends Application { 
} 

Ce préfixera tous vos points d'extrémité avec JAX-RS/api et vous permettent de travailler avec le contenu statique.