java如何打印webservice 发送的soap报文协议

Posted 劉先生

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java如何打印webservice 发送的soap报文协议相关的知识,希望对你有一定的参考价值。

都知道webservice 底层也是用http通信的 ,但是怎么把底部通信的报文打印出来也是我们调试接口时最方便最快捷的方式.

这些只适用于用工具生成的代理类.亲测java jdk生成的代理类好使.也称JAX-WS.


下面代码


import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;


public class Server {
ServerSocket ss;
Socket serverSocket;
InputStream inStream;
OutputStream outStream;


public Server() {
try {
System.out.println("====================Server==================");
ss = new ServerSocket(80);
serverSocket = ss.accept();
System.out
.println("--------------some guest connected----------------");
inStream = serverSocket.getInputStream();
outStream = serverSocket.getOutputStream();


} catch (Exception e) {
e.printStackTrace();
}
}


public void conn() {
new Thread() {
public void run() {
try {
InputStreamReader iReader = new InputStreamReader(inStream);
BufferedReader iBufferStream = new BufferedReader(iReader);
String line = null;
while ((line = iBufferStream.readLine()) != null) {
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}.start();
}


public static void main(String args[]) {
Server server = new Server();
server.conn();
}
}


上面代码是监听端口,比如你的webservice是发送到9001端口的,就要把80改成9001了.




其次是要改webservice wsdl 地址,先把wsdl下载下来.放到内部项目中.然后改代理类中的服务类地址.记得 有的webservice接口提供方说明 必须用域名,那时候 你就要改你的host配置了 ,配置个映射,如下图.
 

以上是关于java如何打印webservice 发送的soap报文协议的主要内容,如果未能解决你的问题,请参考以下文章

随便聊聊 SOA & SOAP & WebService 的一些东西,以及客户端开发的代码逻辑解析

WebService 问题集锦 - 接口数据同步出现延迟

WebService 问题集锦 - 接口数据同步出现延迟

webService与分布式与微服务与SOA的关系

webservice soap wsdl简介

java调用webservice接口实现发送短信??????