开发者社区> 问答> 正文

单纯的javaee 发送saop请求,求sample 400 请求报错

求解一个对java ee 发送saop 请求,不使用任何saop 引擎和框架?我也研究了一下。但是目前还没有搞出来,请教大牛指点一二。我研究的一个列子:http://yunchow.iteye.com/blog/741673。继续尝试中。。在线等待指点!

展开
收起
kun坤 2020-05-29 11:01:00 540 0
1 条回答
写回答
取消 提交回答
  • JDK已经提供了创建和构建 SOAP 消息的 API,简单方便发送 SOAP 消息,具体请参考API即可: http://www.ostools.net/uploads/apidocs/jdk-zh/javax/xml/soap/package-summary.html###### JAX-WS可以用吧,JDK6以上就可以,为啥不使用任何引擎?
    关键难点是XML的生成和解析上,没啥难点了 ######因为这个老板的要求,还有就是我只有saop 发送消息格式,没有得到wsdl?

    ###### 感谢zfc827,以为测试比较困难,有得还不能用。我做了一个sample.可以使用。分享给大家。

    import java.io.ByteArrayInputStream;
    import java.io.IOException;
    import java.net.URL;
    
    import javax.xml.soap.MessageFactory;
    import javax.xml.soap.MimeHeaders;
    import javax.xml.soap.SOAPConnection;
    import javax.xml.soap.SOAPConnectionFactory;
    import javax.xml.soap.SOAPException;
    import javax.xml.soap.SOAPMessage;
    
    
    public class SendMessageJDK {
      public static void main(String[] args){
    String soapReuqest="<?xml version=\"1.0\" encoding=\"UTF-8\"?>";
        soapReuqest+="<soap:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">";
        soapReuqest+="<soap:Body>";
        soapReuqest+="<getRegionCountry xmlns=\"http://WebXml.com.cn/\" />";
        soapReuqest+="</soap:Body></soap:Envelope>";
          try {
            MessageFactory mf = MessageFactory.newInstance();
            SOAPConnection con = SOAPConnectionFactory.newInstance().createConnection();
            MimeHeaders mineHeaders=new MimeHeaders();
            mineHeaders.addHeader("Host", "webservice.webxml.com.cn");
            mineHeaders.addHeader("Content-Type", "text/xml;charset=utf-8");
            mineHeaders.addHeader("SOAPAction","http://WebXml.com.cn/getRegionCountry");
            SOAPMessage reqMessage = mf.createMessage(mineHeaders, new ByteArrayInputStream(soapReuqest.getBytes()));
            //SOAPPart soappart = reqMessage.getSOAPPart();
    
            System.out.println("\n Soap Request:\n");
            reqMessage.writeTo(System.out);
            System.out.println();
    
            URL endpoint = new URL("http://webservice.webxml.com.cn/WebServices/WeatherWS.asmx");
            SOAPMessage response = con.call(reqMessage, endpoint);
    
            // Print response
            System.out.println("\n Soap Response:\n");
            response.writeTo(System.out);
            } catch (SOAPException e) {
            e.printStackTrace();
            } catch (IOException e) {
            e.printStackTrace();
            }
      }
    }
    2020-05-29 14:29:47
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载