Partagé pots de apache-tomcat 6.0.20
Je suis assez nouveau à JWS.
J'ai une application web ( plusieurs services web ) que je veux déployer à l'aide de tomcat 6.0.20 sur un système linux.
Tout est ok si je créer un .la guerre de fichier avec toutes les bibliothèques utilisées à l'intérieur et le mettre dans le répertoire webapps, mais je veux avoir ces pots partagés, et l' .la guerre du fichier lui-même est bien trop grande.
J'ai d'abord essayé la manière intuitive - j'ai créé un lien ( WEB-INF/lib ) dans le répertoire contenant les pots, mais étrangement, il ne parvient pas à déployer ( il démarre si le répertoire n'est pas un lien ):
SEVERE: Error configuring application listener of class com.sun.xml.ws.transport.http.servlet.WSServletContextListener
java.lang.ClassNotFoundException: com.sun.xml.ws.transport.http.servlet.WSServletContextListener
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1387)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3877)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4429)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:526)
at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:630)
at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:556)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:491)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1206)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:314)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:722)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
at org.apache.catalina.core.StandardService.start(StandardService.java:516)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
at org.apache.catalina.startup.Catalina.start(Catalina.java:583)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
Après que j'ai créé le $CATALINA_HOME/shared/lib, et déplacé les pots ( j'ai supprimé le dossier WEB-INF/lib ) et il affiche toujours la même erreur, il semble tomcat n'est pas à la recherche pour les pots de n'importe où ailleurs que sur le WEB-INF/lib du répertoire. Mais d'un autre côté - pourquoi la création d'un lien symbolique fera toute la différence?
Mon CATALINA_HOME et JRE_HOME vars semble être de droite.
OriginalL'auteur zbigh | 2010-01-20
Vous devez vous connecter pour publier un commentaire.
Avez-vous essayer de mettre la partagé des fichiers jar dans $CATALINA_HOME/lib? Il est dit que ". Normalement, les classes d'application ne doit PAS être placé ici" mais des sons comme vous voulez vraiment dans votre cas.
$CATALINA_HOME/shared/lib semble avoir disparu dans la version 6.0 (c'est là qu'en 5.5).
Il a été remplacé par
shared.loader
propriété dans/conf/catalina.properties
. Vous pouvez spécifier n'importe quel disque local chemin du système de fichier(s).OriginalL'auteur TofuBeer
Ajouter un peu plus de détail sur cette.
Partagé chargeur de Classe
Ressources communes sont partagées entre toutes les applications web et n'est pas utilisé par Tomcat classes internes.Si Tomcat 6 nécessite une bibliothèque partagée. Ajuster $CATALINA_HOME/conf/catalina.propriétés et définir partagé.chargeur=${catalina.home}/shared/lib/*.jar
Approuvé les bibliothèques
De mise à jour de la plate-forme java et d'intégrer une nouvelle version d'une bibliothèque donnée, inclus dans la distribution standard, on peut ajouter à la bibliothèque de /lib/approuvé ou de la définir à l'échelle du système de la propriété java.approuvé.dirs Si Tomcat 6, l'un a approuvé la bibliothèque. Plusieurs stratégies peuvent être utilisées pour intégrer le nécessaire a approuvé la bibliothèque
OriginalL'auteur Arnold Reuser
Dans Tomcat 6, le contenu de
$CATALINA_HOME/lib
sera mis à la disposition des "Commune" class loader (voir http://tomcat.apache.org/tomcat-6.0-doc/class-loader-howto.html). Leshared/lib
répertoire Tomcat 5.5 utilisé ne pas avoir de longues existent.Cependant, j'aimerais savoir ce que les bocaux que vous essayez d'y mettre exactement comme dans le cas de JAX-WS (ou Metro) est "spécial". Aussi, ce JDK utilisez-vous?
Mise à jour: Comme je l'ai dit, le cas du Métro est un peu spécial. Pour l'installer, copier webservices-rt.jar, webservices-tools.jar, webservices-extra.jar, webservices-extra-api.jar dans
$CATALINA_HOME/lib
. Mais webservices-api.jar et jsr173_api.jar devrait aller dans$CATALINA_HOME/endorsed
. En fait, c'est ce que lemetro-on-tomcat.xml
script ant fourni dans le métro de distribution (et je le recommande à imiter).OriginalL'auteur Pascal Thivent