这是我的Header元素封装的类public class AddSoapHeader extends AbstractSoapInterceptor {
public AddSoapHeader() {
super(Phase.WRITE);
}
public void handleMessage(SoapMessage message) throws Fault {
// SoapHeader部分待添加的节点
QName qName = new QName("AuthorizationSoapHeader");
Document doc = DOMUtils.createDocument();
// 验证用户名
Element id = doc.createElement("userName");
id.setTextContent("zhou");
// 验证密码
Element pwd = doc.createElement("password");
pwd.setTextContent("123456");
//验证密码
Element company = doc.createElement("company");
company.setTextContent("880");
Element root = doc.createElementNS("http://tempuri.org/","SoapHeaderMD");
root.appendChild(id);
root.appendChild(pwd);
root.appendChild(company);
// 创建SoapHeader内容
SoapHeader header = new SoapHeader(qName, root);
// 添加SoapHeader内容
List<Header> headers = message.getHeaders();
headers.add(header);
}
}
下面这个是我客户端 public static void main(String[] args) {
String service_url = "http://192.168.9.91:8012/BaanWebService/StdJournalVoucher.asmx?WSDL";
long st = (new Date()).getTime();
QName SERVICE_NAME = new QName("http://tempuri.org/", "StdJournalVoucher");
URL url = null;
try {
url = new URL(service_url);
} catch (MalformedURLException e) {
e.printStackTrace();
}
StdJournalVoucher service = new StdJournalVoucher(url,SERVICE_NAME);
StdJournalVoucherSoap lnService =(StdJournalVoucherSoap) service.getPort(StdJournalVoucherSoap.class);
String json = "[{ttyp:'F02',leac:'66020103',dim1:'880',dbcr:'1',amth:'10000.25',user:'55135'}]";
System.out.println(json);
Client client= ClientProxy.getClient(lnService);
client.getOutInterceptors().add(new AddSoapHeader());
String reponseText = lnService.iJournalVoucher(json);
System.out.println(reponseText);
long et = (new Date()).getTime();
System.out.println("......use time=" + (et-st));
}我的问题是我通过client.getOutInterceptors().add(new AddSoapHeader());将Header信息添加到客户端的接口通信中,可是服务端接收不到我的Header信息,请问我该怎样把我封装的Header信息传递给服务端,谢谢!请大家多多指点
public AddSoapHeader() {
super(Phase.WRITE);
}
public void handleMessage(SoapMessage message) throws Fault {
// SoapHeader部分待添加的节点
QName qName = new QName("AuthorizationSoapHeader");
Document doc = DOMUtils.createDocument();
// 验证用户名
Element id = doc.createElement("userName");
id.setTextContent("zhou");
// 验证密码
Element pwd = doc.createElement("password");
pwd.setTextContent("123456");
//验证密码
Element company = doc.createElement("company");
company.setTextContent("880");
Element root = doc.createElementNS("http://tempuri.org/","SoapHeaderMD");
root.appendChild(id);
root.appendChild(pwd);
root.appendChild(company);
// 创建SoapHeader内容
SoapHeader header = new SoapHeader(qName, root);
// 添加SoapHeader内容
List<Header> headers = message.getHeaders();
headers.add(header);
}
}
下面这个是我客户端 public static void main(String[] args) {
String service_url = "http://192.168.9.91:8012/BaanWebService/StdJournalVoucher.asmx?WSDL";
long st = (new Date()).getTime();
QName SERVICE_NAME = new QName("http://tempuri.org/", "StdJournalVoucher");
URL url = null;
try {
url = new URL(service_url);
} catch (MalformedURLException e) {
e.printStackTrace();
}
StdJournalVoucher service = new StdJournalVoucher(url,SERVICE_NAME);
StdJournalVoucherSoap lnService =(StdJournalVoucherSoap) service.getPort(StdJournalVoucherSoap.class);
String json = "[{ttyp:'F02',leac:'66020103',dim1:'880',dbcr:'1',amth:'10000.25',user:'55135'}]";
System.out.println(json);
Client client= ClientProxy.getClient(lnService);
client.getOutInterceptors().add(new AddSoapHeader());
String reponseText = lnService.iJournalVoucher(json);
System.out.println(reponseText);
long et = (new Date()).getTime();
System.out.println("......use time=" + (et-st));
}我的问题是我通过client.getOutInterceptors().add(new AddSoapHeader());将Header信息添加到客户端的接口通信中,可是服务端接收不到我的Header信息,请问我该怎样把我封装的Header信息传递给服务端,谢谢!请大家多多指点
解决方案 »
- 关于XMLHTTPRequest.open() IE8 拒绝访问的问题。急,在线求救!!!
- 急急急...
- tomcat 测试不成功
- 求教web服务的问题?
- hibernate中如何将对象的属性set成null?
- 怎样用jbuilder 2005调用dotnet的webservice?急!!!
- 关于CAS单点登录的问题(急,求大侠帮忙)
- java.sql.SQLException: [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指。。。。。
- inculdede *.html页面,并给*.html的某个文本赋值(高手帮帮忙!!!!!)
- 除了CSDN,还有哪些程序员的论坛?
- 解决Activiti角色权限分配问题
- @mapper换成@repository后无法注入
https://www.javatips.net/blog/how-to-add-http-headers-to-a-soap-request-using-cxf?page=3