肥皂邮件信封格式

时间:2018-06-29 08:38:11

标签: java soap soapexception

我正在使用JAva HttpsURLConnection发送Soap信封消息。看到下面的我的Soap信封有效载荷:

OutputStream out = con.getOutputStream();
      Writer wout = new OutputStreamWriter(out);

      wout.write("<?xml version='1.0' encoding='UTF-8'?>\r\n");  
      wout.write("<S:Envelope xmlns:S= ");
      wout.write(
        "'http://schemas.xmlsoap.org/soap/envelope/'>\r\n"
      );
      wout.write("<S:Body><ns2:getAccessibleDBs xmlns:ns2=");
      wout.write(
        "'http://webservice.namespace.com/'>\r\n"); 
      wout.write("  </ns2:getAccessibleDBs>\r\n");
       wout.write("  </S:Body>\r\n"); 
      wout.write("</S:Envelope>\r\n"); 

      wout.flush();
      wout.close();

但是服务器消息如下:

  

com.sun.xml.ws.transport.http.HttpAdapter E不支持的内容类型:application / x-www-form-urlencoded支持的内容是:[text / xml]   com.sun.xml.ws.server.UnsupportedMediaException:不支持的内容类型:application / x-www-form-urlencoded支持的对象是:[text / xml]

可以,请您深入了解如何格式化消息Paylod以避免服务器错误。

此致

1 个答案:

答案 0 :(得分:0)

你有两个硬汉,

  1. 您没有为服务器设置正确的HTTP标头Content-Type="text/xml"
  2. 您的XML不正确。如下所示,没有不必要的换行符\r\n等,名称空间应以double quote开头,而不是单引号。

    <xml version="1.0" encoding="UTF-8"?> <S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"> <S:Body><ns2:getAccessibleDBs xmlns:ns2="http://webservice.namespace.com/"> </ns2:getAccessibleDBs></S:Body></S:Envelope>

如果您进行了以上两个更改,它应该可以工作。