Je suis en train de faire un "exécutable" fichier war (java -jar myWarFile.war
) que démarre une Jetée serveur web qui héberge l'application contenue dans le fichier WAR je l'ai exécuté.
J'ai trouvé une page qui décrit comment faire ce que je suis à la recherche de:
Cependant, à la suite des conseils sur la façon dont je pense que je suis censé faire un exécutable jar (la guerre) ne fonctionne pas.
J'ai une tâche Ant la création d'un fichier WAR avec un manifeste qui ressemble à:
Manifest-Version: 1.0 Ant-Version: Apache Ant 1.7.1 Created-By: 1.5.0_18-b02 (Sun Microsystems Inc.) Main-Class: Start
Le contenu du fichier WAR de ressembler à:
> Start.class
> jsp
> build.jsp
> META-INF
> MANIFEST.MF
> WEB-INF
> lib
> jetty-6.1.22.jar
> jetty-util.6.1.22.jar
Lorsque j'essaie d'exécuter le fichier WAR, l'erreur est:
Exception in thread "main" java.lang.NoClassDefFoundError: org/mortbay/jetty/Handler
Caused by: java.lang.ClassNotFoundException: org.mortbay.jetty.Handler
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
Could not find the main class: Start. Program will exit.
Il semble y avoir deux erreurs: l'une où il paraît que les fichiers JAR ne peut pas être trouvé, et où la Start
classe ne peut pas être trouvé.
Pour résoudre le premier, je l'ai mis de la Jetée de fichiers JAR dans la base de la GUERRE de fichier et essayé de nouveau -- même erreur. J'ai aussi essayé d'ajouter l' WEB-INF/lib/<specific-JAR-files>
de la Class-Path
attribut du manifeste. Qui n'a pas fonctionné non plus.
Quelqu'un aurait-il aucune indication quant à ce que je suis en train de faire bon/mauvais et comment je peux obtenir ce fichier exécutable fichier WAR et en cours d'exécution?