2010-03-12 10 views
0

Je dois me connecter avec https url, envoyer mon schéma de demande et j'obtiendrai une réponse xml du service Web.Appelez le service Web à partir de https et parse répondu à des données xml en Java

Pour https connexion url J'utilise:

URL myurl = new URL(httpsURL); 
       HttpsURLConnection con = (HttpsURLConnection)myurl.openConnection(); 
       con.setDoOutput(true); 
       con.setDoInput(true); 
       con.setUseCaches(false); 
    con.setRequestProperty("Content-type","text/xml"); 

Donc, à partir du code ci-dessus, je reçois répondu XML du serveur. Maintenant, ma question est de savoir lequel serait le meilleur analyseur pour moi d'analyser les données xml répondu à mon objet Java Simple.

J'ai gogglé beaucoup sur cela, et obtenir diverses solutions, mais je ai confondre pour choisir un approprié.

si quelqu'un a suggéré avec quelques exemples échantillon, alors s'il vous plaît fournir ..

Merci à l'avance ...

EDIT: Au-dessus https réponse n'est pas un savon

Répondre

1

Si cela est un service SOAP alors vous devriez utiliser une API client SOAP à la place de Spring-WS ou JAX-WS.

+0

Merci pour la réponse Mike, mais c'est un simple xml pas un savon. – Nirmal

0

Nous utilisons la bibliothèque Metro pour cela, ce qui nécessite Java 1.5 et est inclus dans Java 6.

Vous obtenez alors un arbre DOM pour le résultat, qui peut ensuite être facilement post-traitement.

Nous avons utilisé IntelliJ IDEA pour convertir le fichier WSDL en source Java en utilisant Metro.

0

Je suggère d'avoir un regard à Castor (http://www.castor.org/xml-mapping.html) - c'est un moyen extrêmement simple à la carte XML à POJO. Il génère les classes Java en fonction de votre schéma XML (dans votre cas, le fichier WSDL).

Lorsque vous avez terminé l'analyse de la réponse est aussi simple que:

StringReader sr = new StringReader(inMessageString); 
YourSoapResponse response = (YourSoapResponse)Unmarshaller.unmarshal(YourSoapResponse.class, sr); 

Castor est relativement rapide (une fois qu'il est réchauffé) mais si votre réponse XML sont « énormes » vous pourriez avoir besoin de reconsidérer et de l'utilisation Stax (http://stax.codehaus.org/Home) par exemple.