2010-10-24 7 views
1

J'utilise l'axe 1.2 pour mon client de savon. Je dois écrire un test unitaire qui prend une réponse à un message de savon et l'analyser en objets java générés par l'axe. Je ne pouvais pas trouver un moyen de le faire. Quelqu'un peut-il m'aider à ce sujet?analyser du savon xml en utilisant l'axe 1.2

Merci,

+0

Axe * 1.2 *? Wow, c'est sérieux old-school. – skaffman

+0

oui, ne peut pas vraiment changer cette API, il va briser le code hérité. –

Répondre

0

J'ai finalement trouvé un moyen de le faire. Vous pouvez le faire en créant un faux soap-engine qui retourne le xml que vous voulez. Alors l'axe fera tout l'analyse et passera par toute la logique comme si elle l'avait obtenue d'une source http. Voici un exemple:

public class SimulatorHandler extends BasicHandler 
{ 


    /** 
    * System property to that hold soap response message in xml. 
    */ 
    private static final String responseMsg = "soapResponse"; 

    /** 
    * @return the responseMsg 
    */ 
    public static String getResponseMsgSystemProperty() 
    { 
     return responseMsg; 
    } 

    public void invoke(MessageContext context) throws AxisFault 
    { 

       // i haven't figure out a way to do a setter on this msg 
       // so I have to get it from system properties 
     String msg = System.getProperty(responseMsg); 
     ByteArrayInputStream is = new ByteArrayInputStream(msg.getBytes()); 
     Message response = new Message(is); 
     response.setMessageType(Message.RESPONSE); 
     context.setResponseMessage(response); 
    } 
} 
Questions connexes