Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java “我怎样才能解决问题?”;无效的内容类型:text/html。这是一条错误消息而不是SOAP响应吗?”;_Java_Xml_Web Services_Soap - Fatal编程技术网

Java “我怎样才能解决问题?”;无效的内容类型:text/html。这是一条错误消息而不是SOAP响应吗?”;

Java “我怎样才能解决问题?”;无效的内容类型:text/html。这是一条错误消息而不是SOAP响应吗?”;,java,xml,web-services,soap,Java,Xml,Web Services,Soap,我必须创建一个soap请求,它在创建后会给我一些错误 com.sun.xml.internal.messaging.saaj.SOAPExceptionImpl: Invalid Content-Type:text/html. Is this an error message instead of a SOAP response? at com.sun.xml.internal.messaging.saaj.soap.MessageImpl.identifyContentType(Unknown

我必须创建一个soap请求,它在创建后会给我一些错误

com.sun.xml.internal.messaging.saaj.SOAPExceptionImpl: Invalid Content-Type:text/html. Is this an error message instead of a SOAP response?
at com.sun.xml.internal.messaging.saaj.soap.MessageImpl.identifyContentType(Unknown Source)
at com.sun.xml.internal.messaging.saaj.soap.MessageFactoryImpl.createMessage(Unknown Source)
at com.sun.xml.internal.messaging.saaj.client.p2p.HttpSOAPConnection.post(Unknown Source)
at com.sun.xml.internal.messaging.saaj.client.p2p.HttpSOAPConnection.call(Unknown Source)
at packageH.SoapCall.main(SoapCall.java:41)
代码如下:

    public static void main(String[] args){

    try {
        String xml="<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:bcc=\"http://www.huawei.com/bme/cbsinterface/bccustomizedservices\" xmlns:cbs=\"http://www.huawei.com/bme/cbsinterface/cbscommon\" xmlns:bcc1=\"http://www.huawei.com/bme/cbsinterface/bccommon\"><soapenv:Header/><soapenv:Body><bcc:QueryBalFuRequestMsg><RequestHeader><cbs:Version>1</cbs:Version><cbs:BusinessCode>GetAllBalances</cbs:BusinessCode><cbs:MessageSeq>896879678676778968</cbs:MessageSeq><cbs:AccessSecurity><cbs:LoginSystemCode>102</cbs:LoginSystemCode><cbs:Password>O2+SSm/iwzGMtKK7LP0WUi7UqvfMgB/bCebuArha6VM=&amp;lt;</cbs:Password></cbs:AccessSecurity></RequestHeader><QueryBalFuRequest><bcc:QueryObj><bcc:SubAccessCode><bcc1:PrimaryIdentity>550022002</bcc1:PrimaryIdentity></bcc:SubAccessCode></bcc:QueryObj><bcc:QueryTarget>0</bcc:QueryTarget></QueryBalFuRequest></bcc:QueryBalFuRequestMsg></soapenv:Body></soapenv:Envelope>";
        SOAPConnectionFactory soapConnectionFactory = SOAPConnectionFactory.newInstance();
        SOAPConnection soapConnection = soapConnectionFactory.createConnection();
        String serverURI = "http://localhost:8088/";
        String serverURI1="http://www.huawei.com/bme/cbsinterface/";
        MessageFactory messageFactory = MessageFactory.newInstance();
        SOAPMessage soapMessage =getSoapMessageFromString(xml);
        MimeHeaders headers = soapMessage.getMimeHeaders();
        headers.addHeader("SOAPAction", serverURI1  + "bccustomizedservices");
        headers.addHeader("SOAPAction", serverURI1  + "cbscommon");
        headers.addHeader("SOAPAction", serverURI1  + "bccommon");
        soapMessage.saveChanges();
        System.out.print("Request SOAP Message = ");
        soapMessage.writeTo(System.out);
        System.out.println();
        SOAPMessage soapResponse = soapConnection.call(soapMessage, serverURI);
        System.out.print("Request SOAP Message = ");
        soapMessage.writeTo(System.out);
        System.out.println("");
        TransformerFactory transformerFactory = TransformerFactory.newInstance();
        Transformer transformer = transformerFactory.newTransformer();
        Source sourceContent = soapResponse.getSOAPPart().getContent();
        System.out.print("\nResponse SOAP Message = ");
        StreamResult result = new StreamResult(System.out);
        transformer.transform(sourceContent, result);
        soapConnection.close();
    } catch (UnsupportedOperationException | SOAPException | IOException | TransformerException e) {
        e.printStackTrace();
    }

}

private static SOAPMessage getSoapMessageFromString(String xml) throws SOAPException, IOException {
    MessageFactory factory = MessageFactory.newInstance();
    SOAPMessage message = factory.createMessage(new MimeHeaders(), new ByteArrayInputStream(xml.getBytes(Charset.forName("UTF-8"))));
    return message;
}
publicstaticvoidmain(字符串[]args){
试一试{
字符串xml=“1Getallbalances8968796778968102O2+SSm/iwzGMtKK7LP0WUi7UqvfMgB/bCebuArha6VM=<;5500220020”;
SOAPConnectionFactory SOAPConnectionFactory=SOAPConnectionFactory.newInstance();
SOAPConnection-SOAPConnection=soapConnectionFactory.createConnection();
字符串serverURI=”http://localhost:8088/";
字符串serverURI1=”http://www.huawei.com/bme/cbsinterface/";
MessageFactory MessageFactory=MessageFactory.newInstance();
SOAPMessage SOAPMessage=getSoapMessageFromString(xml);
MimeHeaders=soapMessage.getMimeHeaders();
headers.addHeader(“SOAPAction”,serverURI1+“bccustomizedservices”);
headers.addHeader(“SOAPAction”,serverURI1+“CBSComon”);
headers.addHeader(“SOAPAction”,serverURI1+“bccommon”);
soapMessage.saveChanges();
System.out.print(“请求SOAP消息=”);
soapMessage.writeTo(System.out);
System.out.println();
SOAPMessage soapResponse=soapConnection.call(SOAPMessage,serverURI);
System.out.print(“请求SOAP消息=”);
soapMessage.writeTo(System.out);
System.out.println(“”);
TransformerFactory TransformerFactory=TransformerFactory.newInstance();
Transformer Transformer=transformerFactory.newTransformer();
sourceContent=soapResponse.getSOAPPart().getContent();
System.out.print(“\n响应SOAP消息=”);
StreamResult结果=新的StreamResult(System.out);
transformer.transform(源内容、结果);
soapConnection.close();
}捕获(不支持操作异常| SOAPException | IOException | TransformerException e){
e、 printStackTrace();
}
}
私有静态SOAPMessage getSoapMessageFromString(字符串xml)引发SOAPException,IOException{
MessageFactory=MessageFactory.newInstance();
SOAPMessage message=factory.createMessage(new-MimeHeaders(),new-ByteArrayInputStream(xml.getBytes(Charset.forName(“UTF-8”)));
返回消息;
}

您需要找出响应实际包含的内容。正如异常消息所提示的,响应可能是一个错误页面。它可能会告诉您发送的SOAP请求有什么问题。。。遗憾的是,这不是来自请求的响应,因为它一直持续到SOAPMessage soapResponse=soapConnection.call(SOAPMessage,serverURI);我想你误解了我的评论。我理解你的回答,答案不是错误页面,因为有一些信息,如果出现错误,应该返回“没有答案”。问题是在发送消息之前,因为我已经检查过了,服务器端没有进行任何调用。。。(SOAP)服务器端没有收到呼叫的原因可能是呼叫正在转到其他地方。。。另外一个地方用HTML说“我不懂”。您是否确实看到了异常所抱怨的内容,或者这只是您的猜测?