Question

J'essaie de déployer un service Web Axis2 sur un serveur d'applications OC4J 10.1.3.

J'utilisais auparavant l'axe 1.4 et venais de créer ma propre bibliothèque partagée avec tous les fichiers. Il y avait un problème avec la version 1.4 corrigée avec la version 1.5; je l'utilise maintenant, mais cela n'inclut pas toutes les bibliothèques. Cette fois-ci, j'ai déployé axis2.war sur le serveur OC4J et j'utilise la page d'administration axis2 pour tenter de déployer mon service Web.

Si je déploie un service Web via axis2, j'obtiendrai un java.lang.NoSuchMethodError: javax.jws.WebMethod.exclude () Z , mais je ne trouve pas la bibliothèque en conflit. Axis2 contient les nouvelles bibliothèques jax-ws, mais je pense que cela pose un problème sur le serveur d'applications OC4J. J'ai exclu xml.jar (car il a les anciennes bibliothèques JAXB 1.0) et cela résout le problème sur ma machine locale mais pas sur la boîte Linux.

J'ai d'abord essayé de modifier le plan de déploiement pour rechercher les dossiers locaux, ce qui me permet de déployer le service, mais lorsque j'essaie d'y accéder, ou du WSDL, un message d'erreur relatif à une exception de classe et à JXDocumentBuilderFactory (j n’avez pas l’erreur exacte en ce moment).

J'ai comparé les bibliothèques partagées sur la machine Linux avec celles de ma machine locale et j'ai utilisé les mêmes sur chacune d'elles (je n'ai toutefois pas vérifié les versions de chaque fichier jar). Si axis2 est déployé sur OC4J et que je déploie mon service sur axis2, est-ce que je n'hériterai pas des bibliothèques axis2 (jax-ws, etc.)?

Était-ce utile?

La solution

Essayez de supprimer la bibliothèque héritée en conflit en l'ajoutant à votre fichier orion-application.xml:

<orion-application>
  <imported-shared-libraries>
    <remove-inherited name="PUT_HERE_THE_NAME_OF_THE_LIBRARY"/>
  </imported-shared-libraries>
</orion-application>

Pour en savoir plus: Suppression et / ou Remplacement d'une bibliothèque partagée Oracle importée par défaut

Modifier:
J'ai effectué une recherche dans les bibliothèques partagées et j'ai trouvé que celui-ci n'existait pas. Jws-api.jar est chargé au démarrage et ne peut être supprimé facilement:

Remplacer les bibliothèques OC4J JAX-WS
OC4J prend en charge JAX-WS de manière préliminaire. Malheureusement, cela signifie que lors du démarrage OC4J, il charge les API JAX-WS obsolètes et leur implémentation par Oracle. Cela se produit avant même que les bibliothèques partagées n'agissent, à un stade très précoce du démarrage d'OC4J.
Les bibliothèques OC4J au démarrage sont configurées dans le fichier boot.xml du fichier jar d'amorçage $ ORACLE_HOME / j2ee / home / oc4j.jar. Pour vous en débarrasser:

1-Copiez le fichier jar dans $ {oracle.home} / webservices / lib / jaxws
. 2-Décompressez le fichier OC4J.jar
3-Locate META-INF / boot.xml
4-Remplacez le chemin dans cette ligne avec votre pot:

<code-source 
   path="${oracle.home}/webservices/lib/jws-api.jar" 
   if="java.specification.version == /1\.[5-6]/"
/>  

5-Reconditionner oc4j.jar (n'oubliez pas MANIFEST.MF - utilisez le fichier jar -m META-INF / MANIFEST.MF)

Article d'origine: Configuration OC4J pour les services Web

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top