webservice调用问题。如下:
使用HttpURLConnection发送soap协议格式的xml调用webservice:
调用如下:
URL addressURL = new URL( "webservice地址");
HttpURLConnection conn = (HttpURLConnection) addressURL .openConnection();
conn.setDoOutput(true);
conn.setDoInput(true);
conn.setReadTimeout(6000);
conn.setRequestMethod("POST");
conn.setRequestProperty("Content-Length", Integer.toString(message.length()));
conn.setRequestProperty("Content-type", "text/xml; charset=" + CHARSET);
conn.setRequestProperty("SOAPAction", "命名空间" + "操作名称");
OutputStream reqOs = new BufferedOutputStream( conn.getOutputStream());
reqOs.write(message.getBytes(CHARSET));
reqOs.flush();
InputStream resIs = new BufferedInputStream(conn.getInputStream());
Web Service服务器
它主要做下面这些事:
-->监听网络端口(监听服务端口)
--> 接收客户端请求(接收SOAP请求)
--> 解析客户端请求(解析SOAP消息,将SOAP消息转换为数据对象)
--> 调用业务逻辑 (调用Web Service实现类的特定操作,参数是由SOAP消息 转换而来的数据对象)
--> 生成响应 (将返回值转换为SOAP消息)
--> 返回响应 (返回SOAP响应)
上面的服务器的每一步具体是怎么实现的,服务器上是在什么地方实现的?最好能给个服务器和客户端的例子
------解决方案--------------------你可以去看看关于Web Service的框架
CXF ,AXIS2 这些
------解决方案--------------------现在一般不这样写了。。。这种方式也比较落后。。
CXF 的话,很快很方便,代码少。。建议去学CXF 集成 spring
------解决方案--------------------LZ在网上找下例子看下
------解决方案--------------------其实本质上还是一个web请求的过程,只不过请求和返回的数据是xml格式(也就是soap报文)罢了