créer un jar exécutable à l'aide de maven et de la jetée
Je veux commencer mon application à l'aide de la jetée, j'ai donc ajouté la dépendance mentionnés ci-dessous. et lorsque j'exécute la méthode main de la Jetée démarre correctement.(Je suis en train de travailler sur un struts2+spring3+ hibernate, maven projet, je suis en mesure de déployer dans tomcat trop)
Maintenant, je veux créer un jar exécutable à partir d'une guerre d'emballage pom. J'ai donc ajouté maven-assembly-plugin à mon pompon. (J'ai essayé avec maven pot de plug-in, mais il n'était pas ajouter les dépendances)
Sources
plugins
<build>
<plugins>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>2.3</version>
<configuration>
<archive>
<manifest>
<mainClass>com.dca.engine.StartDCA</mainClass>
</manifest>
</archive>
<packagingExcludes>WEB-INF/lib/jetty*.jar,WEB-INF/lib/org.apache.taglibs.standard.glassfish*.jar,WEB-INF/lib/org.apache.jasper.glassfish*.jar,WEB-INF/lib/org.eclipse.jdt.core*.jar,WEB-INF/lib/javax.servlet.jsp*.jar,WEB-INF/lib/javax.el*.jar</packagingExcludes>
<escapeString>\</escapeString>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.4</version>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<archive>
<manifest>
<mainClass>com.dca.engine.StartDCA</mainClass>
</manifest>
</archive>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.java</include>
<include>**/*.xml</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
</build>
Intégré Jetée
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-server</artifactId>
<version>8.1.10.v20130312</version>
</dependency>
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-webapp</artifactId>
<version>8.1.10.v20130312</version>
<!-- <scope>provided</scope> -->
</dependency>
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-jsp</artifactId>
<version>8.1.10.v20130312</version>
<!-- <scope>provided</scope> -->
</dependency>
principale méthode
Server server = new Server(8080);
System.setProperty("is_DCA", "YES");
WebAppContext webAppContext = new WebAppContext();
webAppContext.setResourceBase("/home/myfolder/workspace/app/dca/src/main/webapp");
webAppContext.setDescriptor("/home/myfolder/workspace/app/dca/src/main/webapp/WEB-INF/web.xml");
webAppContext.setContextPath("/app");
server.setHandler(webAppContext);
server.start();
server.join();
Démarrage de l'application
Je lance le créé pot avec java -jar /home/myfolder/workspace/app/dca/target/app-dca-1.0-jar-with-dependencies.jar
jetée commence par exception.
INFO 10-12 15:03:01,609 - jetty-8.y.z-SNAPSHOT
INFO 10-12 15:03:01,776 - Initializing Spring root WebApplicationContext
INFO 10-12 15:03:01,776 - Root WebApplicationContext: initialization started
INFO 10-12 15:03:01,843 - Refreshing Root WebApplicationContext: startup date [Tue Dec 10 15:03:01 IST 2013]; root of context hierarchy
INFO 10-12 15:03:01,885 - Loading XML bean definitions from class path resource [applicationContext-dca.xml]
ERROR 10-12 15:03:05,725 - Context initialization failed
org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: Unable to locate Spring NamespaceHandler for XML schema namespace [http://www.springframework.org/schema/util]
Offending resource: class path resource [applicationContext-dca.xml]
at org.springframework.beans.factory.parsing.FailFastProblemReporter.error(FailFastProblemReporter.java:68)
at org.springframework.beans.factory.parsing.ReaderContext.error(ReaderContext.java:85)
at org.springframework.beans.factory.parsing.ReaderContext.error(ReaderContext.java:80)
at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.error(BeanDefinitionParserDelegate.java:316)
at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1420)
at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1413)
at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:184)
at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.doRegisterBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:140)
at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.registerBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:111)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.registerBeanDefinitions(XmlBeanDefinitionReader.java:493)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:390)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:334)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:302)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:174)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:209)
Est-il possible que je peux commencer jetée à l'aide de la guerre a créé. Il a des pots dans /WEB-INF/lib/dossier, toutes les propriétés de fichiers et les fichiers xml sont dans /WEB-INF/lib/et j'ai essayé de lancer la guerre
java-jar /home/mondossier/espace de travail/app/dca/cible/app-dca-1.0.la guerre
mais il n'a pas été en mesure de localiser la classe principale.
travaillé lors de la création de l'exécutable guerre vérifier sumit de réponse
Je commençais à l'exception comme dans cette question. quand j'ai remplacé la jetée de la version de 7.6.7.v20120910 il a travaillé
je ne sais pas pourquoi il n'a pas travaillé avec ponton 8.1.10.v20130312
comment donner un chemin relatif ? supposons que mon pot est dans /home/myfolder/app-dca-1.0.jar .
OriginalL'auteur jos | 2013-12-10
Vous devez vous connecter pour publier un commentaire.
Prendre un coup d'oeil à http://uguptablog.blogspot.com/2012/09/embedded-jetty-executable-war-with.html
Le code est
espère que ça aide.
Je suis l'exception suivante quand j'ai essayé votre code
org.apache.jasper.JasperException: /common/taglibs.jsp(5,62) PWC6188: The absolute uri: http://java.sun.com/jsp/jstl/core cannot be resolved in either web.xml or the jar files deployed with this application at org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:92)
je ne sais pas pourquoi j'ai cette erreur est-il à cause d'un conflit pot? J'ai l'jstl-1.2.jar dans /WEB-INF/lib/ de la guerre .Et il y a un autre dossier créé /javax/servlet/jsp/jstl/ qui a de base,de l'esf,sql,tlv dossiers qu'il contient
Désolé, ce n'est pas mon blog. Mais vous pourriez avoir besoin d'un tld fichiers dans un web-inf/tld dossier
OriginalL'auteur Sumit
Au lieu de piratage du contenu d'un fichier WAR, comme le accepté de répondre à semble être en train de faire, vous pouvez créer un fichier JAR exécutable à l'aide de la maven-ombre-plugin. Cela présente les avantages suivants:
vous n'avez pas utiliser un fichier WAR, période. Vous devez d'abord comprendre comment fonctionner Jetée d'un répertoire décompressé structure (c'est une question distincte, vous aurez besoin de Google). Une fois que vous obtenir que le travail, l'exécution d'un fichier exécutable JAR tout fonctionne.
OriginalL'auteur Gili
Si vous n'êtes pas lié à l'utilisation de la Jetée, mais sont ouverts à l'utilisation de Tomcat au lieu de cela, le suivant sera parfait:
Cela va créer une uberjar appelé "standalone.jar" que vous pouvez ensuite exécuter simplement en appelant
cela va démarrer l'application sur http://localhost:8080/standalone
La sélection d'un port de l'autre est facile
Grâce à Tomasz Nurkiewicz de l'entrée de blog pour mettre en évidence cette http://www.nurkiewicz.com/2012/11/standalone-web-application-with.html
Juste fonctionne pour moi, mais l'url doit être localhost:8080/autonome depuis le configurer le chemin d'accès est /autonome
OriginalL'auteur JedA
La plus simple que je connaisse (mais jamais essayé) est le winstone-maven-plugin, comme Jenkins CI (ce qu'un meilleur exemple :D).
Il n'utilise pas de Jetée (même si j'aime cet outil :D), mais Winstone.
Plugin Maven Utilisation
Assez facile, n'est-ce pas ? 🙂
Il serait de générer un exécutable autonome - pot : app-dca-1.0-standalone.jar
Documentation
En effet, cette réponse est assez ancien concernant l'évolution de la technologie. Pour l'instant, je (et je le fais) utiliser spring-boot pour ce besoin.
OriginalL'auteur Jean-Rémy Revy