2016-10-18 1 views
0

J'ai déployé l'application contenant un client Axis2 [1.7.3] sur Websphere App Server. Mais il lance java.lang.InstantiationError: org.apache.axis2.databinding.ADBDataSource lorsque le client Axis2 tente de demander une ressource au point de terminaison du service Web distant. La cause est d'une ligne de code de classe Java généré - la ligne de retour:Le client AXIS2 ne fonctionne pas dans Websphere

public org.apache.axiom.om.OMElement getOMElement(
     final javax.xml.namespace.QName parentQName, 
     final org.apache.axiom.om.OMFactory factory) 
     throws org.apache.axis2.databinding.ADBException { 
     return factory.createOMElement(new org.apache.axis2.databinding.ADBDataSource(
       this, MY_QNAME)); 
} 

factory.createOMElement est d'axiome-api-1.2.19.jar.

Une partie de mon pom.xml:

 <dependency> 
      <groupId>org.apache.axis2</groupId> 
      <artifactId>axis2-kernel</artifactId> 
      <version>1.7.3</version> 
      <exclusions> 
       <exclusion> 
        <groupId>javax.servlet</groupId> 
        <artifactId>servlet-api</artifactId> 
       </exclusion> 
      </exclusions> 
     </dependency> 
     <dependency> 
      <groupId>org.apache.axis2</groupId> 
      <artifactId>axis2-adb</artifactId> 
      <version>1.7.3</version> 
      <exclusions> 
       <exclusion> 
        <groupId>org.apache.ws.commons.axiom</groupId> 
        <artifactId>axiom-dom</artifactId> 
       </exclusion> 
      </exclusions> 
     </dependency> 
     <dependency> 
      <groupId>org.apache.axis2</groupId> 
      <artifactId>axis2-transport-http</artifactId> 
      <version>1.7.3</version> 
     </dependency> 
     <dependency> 
      <groupId>org.apache.axis2</groupId> 
      <artifactId>axis2-transport-local</artifactId> 
      <version>1.7.3</version> 
     </dependency> 
     <dependency> 
      <groupId>org.apache.axis2</groupId> 
      <artifactId>axis2-xmlbeans</artifactId> 
      <version>1.7.3</version> 
     </dependency> 
     <dependency> 
      <groupId>org.apache.axis2</groupId> 
      <artifactId>axis2-jaxws</artifactId> 
      <version>1.7.3</version> 
      <exclusions> 
       <exclusion> 
        <groupId>org.apache.ws.commons.axiom</groupId> 
        <artifactId>axiom-dom</artifactId> 
       </exclusion> 
       <exclusion> 
        <groupId>org.apache.axis2</groupId> 
        <artifactId>axis2-saaj</artifactId> 
       </exclusion> 
      </exclusions> 
     </dependency> 

Il peut fonctionner dans Tomcat 7, mais pas Websphere! Donc, je suppose qu'une partie de la bibliothèque Websphere a un problème. Est-ce que quelqu'un a de l'expérience à ce sujet?

+0

Quelle version de WebSphere Application Server Utilises-tu? Avez-vous vu la version https://www.ibm.com/developerworks/community/forums/html/topic?id=77777777-0000-0000-0000-000014885208#77777777-0000-0000-0000-000014885349 –

+0

Websphere est 7.0.0.39 – John

Répondre

0

Axis2 1.6.1 est compatible avec WebSphere 7.x à 8

  • Tout d'abord, trouver axis2 1.6.1 et l'extrait. Ensuite, ouvrez les archives.

Open archive 7-Zip or WinZip

  • Mise à jour du axis2.xml avec l'attribut suivant de false à true

enter image description here

  • Mise à jour le fichier dans le axis2_1_6_2 \ WEB-INF \ conf dossier

  • Accédez à Websphere Admin Console.

  • Supprime l'application et le répertoire old-axis2. - Non requis pour la première installation.

  • Installer le fichier war mis à jour axis2_1_6_2.war (** Axis2.xml mis à jour doit être dans le fichier war), ne pas démarrer.

  • Pour terminer l'installation et naviguer dans les applications d'entreprise, cliquez sur axis2_1_6_2.war.

  • Cliquez sur le chargement des classes et la détection de mise à jour, sélectionnez classes chargées avec chargeur de classe locale premier (parent dernier) et cliquez sur Appliquer

  • Sauvegarde dans la configuration maître.

  • Dans Applications d'entreprise, cliquez sur gérer les modules.

  • Cliquez sur la Dans la liste Nom du module Hyperlink Apache-Axis2

  • vers le bas Classe Loader Commande -> Sélectionnez les classes chargées avec chargeur de classe locale premier (parent en premier) et cliquez sur Appliquer

  • Enregistrer directement à maîtriser la configuration et cliquez sur OK Encore une fois, enregistrez directement à la configuration maître

  • Sélectionnez le fichier de guerre et cliquez sur Démarrer, l'application a commencé avec succès un message doit être affiché

Liens

Username : admin

Password : axis2