Java 未解决的编译问题

Java 未解决的编译问题,java,soap,compilation,Java,Soap,Compilation,我使用java中的Web服务客户端调用soap Web服务,我添加了如下代码,但在 请帮我做这件事 我们必须使用任何jars文件进行此操作 import java.io.ByteArrayOutputStream; import java.io.IOException; import javax.xml.namespace.QName; import javax.xml.soap.MessageFactory; import javax.xml.soap.SOAPBody; import ja

我使用java中的Web服务客户端调用soap Web服务,我添加了如下代码,但在

请帮我做这件事

我们必须使用任何jars文件进行此操作

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());
    }

}
import java.io.ByteArrayOutputStream;
导入java.io.IOException;
导入javax.xml.namespace.QName;
导入javax.xml.soap.MessageFactory;
导入javax.xml.soap.SOAPBody;
导入javax.xml.soap.SOAPBodyElement;
导入javax.xml.soap.SOAPConnection;
导入javax.xml.soap.SOAPConnectionFactory;
导入javax.xml.soap.SOAPElement;
导入javax.xml.soap.SOAPEnvelope;
导入javax.xml.soap.SOAPException;
导入javax.xml.soap.SOAPHeader;
导入javax.xml.soap.SOAPMessage;
公共类SOAPClient{
私有静态最终字符串终结点=”http://localhost/SOAPService/MySoapService";
公共静态void main(字符串[]args)引发SOAPException{
SOAPMessage message=MessageFactory.newInstance().createMessage();
SOAPHeader=message.getSOAPHeader();
header.detachNode();
SOAPEnvelope信封=message.getSOAPPart().getEnvelope();
setAttribute(“名称空间”、“名称空间URL”);
SOAPBody=message.getSOAPBody();
QName bodyName=新的QName(“getResponse”);
SOAPBodyElement bodyElement=body.addBodyElement(bodyName);
SOAPElement符号=bodyElement.addChildElement(“名称”);
symbol.addTextNode(“Harry Joy”);
SOAPConnection=SOAPConnectionFactory.newInstance().createConnection();
SOAPMessage response=connection.call(消息,端点);
connection.close();
SOAPBody responseBody=response.getSOAPBody();
SOAPBodyElement responseElement=(SOAPBodyElement)ResponseBy.getChildElements().next();
SOAPElement returnElement=(SOAPElement)responseElement.getChildElements().next();
if(responseBy.getFault()!=null){
System.out.println(returnElement.getValue()+“”+responseBy.getFault().getFaultString());
}否则{
System.out.println(returnElement.getValue());
}
试一试{
System.out.println(getXmlFromSOAPMessage(message));
System.out.println(getXmlFromSOAPMessage(response));
}捕获(IOE异常){
e、 printStackTrace();
}
}
私有静态字符串getXmlFromSOAPMessage(SOAPMessage msg)
抛出SOAPException,IOException{
ByteArrayOutputStream byteArrayOS=新建ByteArrayOutputStream();
msg.writeTo(byteArrayOS);
返回新字符串(byteArrayOS.toByteArray());
}
}

您不能将XML标记放在Java文件中,您必须删除它,它们不是Java语言

我为您删除了,请尝试以下操作:

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());
    }

}

不是Java代码。你为什么要把它放在那里?这个问题似乎离题了,因为它没有显示出对正在解决的问题的最低理解。我得到的异常是com.sun.xml.internal.messaging.saaj.SOAPExceptionImpl:无效内容类型:text/html。这是一条错误消息而不是SOAP响应吗?