Je suis assez nouveau à JWS.
J'ai une application Web (plusieurs services Web) que je souhaite déployer à l'aide de tomcat 6.0.20 sur un système Linux. p>
Tout va bien si je Générez un fichier .war avec toutes les bibliothèques d'occasion à l'intérieur et mettez-la dans le répertoire WebApps, mais je souhaite que ces pots partagés et que le fichier .war lui-même est trop grand. P>
J'ai d'abord essayé l'intuitif Way - J'ai créé un lien (Web-Inf / Lib) dans le répertoire contenant les pots, mais étrangement, il échoue à déployer (il démarre si le répertoire n'est pas un lien): p>
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)
3 Réponses :
Avez-vous essayé de mettre les fichiers de jar partagés dans $ catalina_home / lib ? Il dit que ". Normalement, les classes d'applications ne doivent pas être placées ici" mais on dirait que vous voudriez réellement dans votre cas. P>
Le $ catalina_home / partagé / lib semble être parti en 6.0 (c'était là dans 5,5). P>
Eh bien, cela semble fonctionner - je ne l'ai même pas essayé auparavant, car il était marqué comme obsolète dans certains tutoriels.
Il a été remplacé par partagé.loader code> propriété dans
/conf/catalina.properties code>. Vous pouvez spécifier n'importe quel chemin de système de fichiers de disque local dans votre ensemble.
dans Tomcat 6, le contenu de Cependant, j'aimerais savoir ce que les pots que vous essayez de y installer exactement, car le cas de JAX-WS (ou Metro) est "spécial". En outre, quel JDK utilisez-vous? P>
$ catalina_home / lib code> sera mis à la disposition du chargeur de classe " commun em>" (voir
partagé / lib code> Tomcat 5.5 n'avait pas longtemps existé. P>
$ catalina_home / lib code>. Mais WebServices-Api.jar et JSR173_API.JAR devraient aller dans
$ catalina_home / endossé code>. En fait, c'est ce que le script
métro-on-tomcat.xml code> fourni dans la distribution du métro (et je recommanderais de l'imiter). P>
Nous utilisons le métro, Hibernate, MySQL, JNI pour des fonctions natives Linux et quelques-uns de nos bocaux internes, et le JDK est de 1,6.17.
Pour ajouter un peu plus de détails à ce sujet. p>
chargeur de classe partagée em> p>
Les ressources partagées sont partagées sur toutes les applications Web et non utilisées par Tomcat Classes internes.Si Tomcat 6 nécessite une bibliothèque partagée. AJUST $ CATALINA_HOME / CONF / CATALINA.PROPERTIÉS ET SET SABLED.LOADER = $ {catalina.home} / partagé / lib / *. JAR P>
les bibliothèques approuvées em> p>
Pour mettre à jour la plate-forme Java et incorporer une nouvelle version d'une bibliothèque donnée, incluse dans la distribution standard, on peut ajouter la bibliothèque à / lib / endossé ou définir la propriété du système Java.dirs.dirs si Tomcat 6 nécessite une Bibliothèque approuvée. Plusieurs stratégies peuvent être utilisées pour incorporer la bibliothèque approuvée requise P>
Si Catalina_Home est différent de catalina_base, le fichier à modifier est $ catalina_base / conf / CONF / CATALINA.PROPERTES. Pour obtenir un comportement comme Tomcat 5.5, définissez Shared.Loader = $ {catalina.base} / partagée / classes, $ {catalina.bas e} / partagé / lib / *. JAR.