Symptôme :
Lorsque plusieurs services sont affichés à partir de CA IdentityMinder, Axis2 génère une classe de stubs étendue enfreignant la règle de compilation de machine virtuelle Java et renvoie l'erreur suivante :
error: code too large for try statement
Solution
Lorsque cette erreur de compilation est renvoyée, procédez comme suit pour la corriger :
<répertoire_exemples>\wsdl2java\src\tew6\wsdl
Axis2 génère la classe de stubs au format suivant :
<nom_service>Stub.java
Remarque : Récupérez le nom du service à partir du code WSDL.
public org.apache.xmlbeans.Xmlobject fromOM (
org.apache.axiom.om.OMElement param,
java.lang.Class type,
java.util.Map extraNamespaces) throws
org.apache.axis2.AxisFault {
try {
.......
.......
.......
}catch (java.lang.Exception e) {
throw org.apache.axis2.AxisFault.makeFault(e);
}
return null;
}
public org.apache.xmlbeans.Xmlobject fromOM (
org.apache.axiom.om.OMElement param,
java.lang.Class type,
java.util.Map extraNamespaces) throws
org.apache.axis2.AxisFault {
try {
.......
.......
.......
}catch (java.lang.Exception e) {
throw org.apache.axis2.AxisFault.makeFault(e);
}
//Appeler la nouvelle méthode
renvoie la valeur suivante : fromOMExtended(param, type, extraNamespaces);
}
<emplacement_répertoire_exemples> ant -Dnowsdlgen=true
La compilation ne renvoie aucune erreur.
|
Copyright © 2013 CA.
Tous droits réservés.
|
|