求解一个对java ee 发送saop 请求,不使用任何saop 引擎和框架?我也研究了一下。但是目前还没有搞出来,请教大牛指点一二。我研究的一个列子:http://yunchow.iteye.com/blog/741673。继续尝试中。。在线等待指点!
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(); } } }
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。