2014-04-21 3 views
0

J'utilise le client de service Web en Java pour appeler des services Web de savon, et je l'ai ajouté du code comme le suivant mais je reçois des erreurs dans les lieux de <span class="skimlinks-unlinked">problèmes de compilation non résolues

s'il vous plaît aidez-moi pour cette ..

Nous devons utiliser tous les fichiers de pots pour cette

import java.io.ByteArrayOutputStream; 
import java.io.IOException; 

import javax.xml.namespace.QName; 
import javax.xml.soap.MessageFactory; 
import javax.xml.soap.SOAPBody; 
import javax.xml.soap.SOAPBodyElement; 
import javax.xml.soap.SOAPConnection; 
import javax.xml.soap.SOAPConnectionFactory; 
import javax.xml.soap.SOAPElement; 
import javax.xml.soap.SOAPEnvelope; 
import javax.xml.soap.SOAPException; 
import javax.xml.soap.SOAPHeader; 
import javax.xml.soap.SOAPMessage; 

public class SOAPClient { 

    private static final String endpoint = "http://localhost/SOAPService/MySoapService"; 

    public static void main(String[] args) throws SOAPException { 
     SOAPMessage message = MessageFactory.newInstance().createMessage(); 
     SOAPHeader header = message.getSOAPHeader(); 
     header.detachNode(); 

     SOAPEnvelope envelope = message.getSOAPPart().getEnvelope(); 
     envelope.setAttribute("namespace","namespaceUrl"); 

     SOAPBody body = message.getSOAPBody(); 
     QName bodyName = new QName("getResponse"); 
     SOAPBodyElement bodyElement = body.addBodyElement(bodyName); 
     SOAPElement symbol = bodyElement.addChildElement("name"); 
     symbol.addTextNode("Harry Joy"); 

     SOAPConnection connection = SOAPConnectionFactory.newInstance().createConnection(); 
     SOAPMessage response = <span class="skimlinks-unlinked">connection.call(message</span>, endpoint); 
     <span class="skimlinks-unlinked">connection.close</span>(); 

     SOAPBody responseBody = response.getSOAPBody(); 
     SOAPBodyElement responseElement = (SOAPBodyElement)responseBody.getChildElements().next(); 
     SOAPElement returnElement = (SOAPElement)responseElement.getChildElements().next(); 
     if(responseBody.getFault()!=null){ 
      <span class="skimlinks-unlinked">System.out.println(returnElement.getValue</span>()+" "+responseBody.getFault().getFaultString()); 
     } else { 
      <span class="skimlinks-unlinked">System.out.println(returnElement.getValue</span>()); 
     } 

     try { 
      <span class="skimlinks-unlinked">System.out.println(getXmlFromSOAPMessage(message</span>)); 
      <span class="skimlinks-unlinked">System.out.println(getXmlFromSOAPMessage(response</span>)); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 

    } 

    private static String getXmlFromSOAPMessage(SOAPMessage msg) 
      throws SOAPException, IOException { 
     ByteArrayOutputStream byteArrayOS = new ByteArrayOutputStream(); 
     msg.writeTo(byteArrayOS); 
     return new String(byteArrayOS.toByteArray()); 
    } 

} 
+0

supprimer les balises xml. – Shriram

+3

'' n'est pas du code Java. Pourquoi l'avez-vous mis là? – immibis

+0

Cette question semble être hors-sujet car elle ne démontre pas une compréhension minimale du problème à résoudre. –

Répondre

0

Vous ne pouvez pas mettre des balises XML dans un fichier Java, vous devez l'enlever, ils ne sont pas langage Java.

j'ai enlevé pour vous, essayez ceci:

import java.io.ByteArrayOutputStream; 
import java.io.IOException; 

import javax.xml.namespace.QName; 
import javax.xml.soap.MessageFactory; 
import javax.xml.soap.SOAPBody; 
import javax.xml.soap.SOAPBodyElement; 
import javax.xml.soap.SOAPConnection; 
import javax.xml.soap.SOAPConnectionFactory; 
import javax.xml.soap.SOAPElement; 
import javax.xml.soap.SOAPEnvelope; 
import javax.xml.soap.SOAPException; 
import javax.xml.soap.SOAPHeader; 
import javax.xml.soap.SOAPMessage; 

public class SOAPClient { 

    private static final String endpoint = "http://localhost/SOAPService/MySoapService"; 

    public static void main(String[] args) throws SOAPException { 
     SOAPMessage message = MessageFactory.newInstance().createMessage(); 
     SOAPHeader header = message.getSOAPHeader(); 
     header.detachNode(); 

     SOAPEnvelope envelope = message.getSOAPPart().getEnvelope(); 
     envelope.setAttribute("namespace","namespaceUrl"); 

     SOAPBody body = message.getSOAPBody(); 
     QName bodyName = new QName("getResponse"); 
     SOAPBodyElement bodyElement = body.addBodyElement(bodyName); 
     SOAPElement symbol = bodyElement.addChildElement("name"); 
     symbol.addTextNode("Harry Joy"); 

     SOAPConnection connection = SOAPConnectionFactory.newInstance().createConnection(); 
     SOAPMessage response = connection.call(message, endpoint); 
     connection.close 

     SOAPBody responseBody = response.getSOAPBody(); 
     SOAPBodyElement responseElement = (SOAPBodyElement)responseBody.getChildElements().next(); 
     SOAPElement returnElement = (SOAPElement)responseElement.getChildElements().next(); 
     if(responseBody.getFault()!=null){ 
      System.out.println(returnElement.getValue()+" "+responseBody.getFault().getFaultString()); 
     } else { 
      System.out.println(returnElement.getValue()); 
     } 

     try { 
      System.out.println(getXmlFromSOAPMessage(message)); 
      System.out.println(getXmlFromSOAPMessage(response)); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 

    } 

    private static String getXmlFromSOAPMessage(SOAPMessage msg) 
      throws SOAPException, IOException { 
     ByteArrayOutputStream byteArrayOS = new ByteArrayOutputStream(); 
     msg.writeTo(byteArrayOS); 
     return new String(byteArrayOS.toByteArray()); 
    } 

} 
+0

Je reçois une exception comme celle-ci com.sun.xml.internal.messaging.saaj.SOAPExceptionImpl: Type de contenu non valide: text/html. Est-ce un message d'erreur au lieu d'une réponse SOAP? –

Questions connexes