具体的错误信息如下:
org.apache.axis2.AxisFault: A required header representing a Message Addressing Property is not present错误产生的场景:
我用同一WSDL文件生成的服务端和客户端,用客户端调服务端时报的错,DEBUG跟进去调试,发现参数都有,只是在向服务端发请求的那个方法那出的错,方法如下:(具体出错的地方我标记成红色了)
package com.chinamobile.www.vgop.serviceorder.v1_0;
import java.rmi.RemoteException;import org.apache.axis2.AxisFault;
import org.apache.axis2.transport.http.HTTPConstants;
import com.chinamobile.www.vgop.serviceorder.v1_0_sub.OrderServiceStub;
import com.chinamobile.www.vgop.serviceorder.v1_0_sub.OrderServiceStub.SyncOrderRelationCfmResponse;public class TaskObject implements Runnable
{
private MsgHeaderClient msgHeaderClient = null;
public MsgHeaderClient getMsgHeaderClient()
{
return msgHeaderClient;
}
public void setMsgHeaderClient(MsgHeaderClient msgHeaderClient)
{
this.msgHeaderClient = msgHeaderClient;
}
public void run()
{
try
{
//睡眠1s,防止任务添加进来就执行,导致服务端还没有响应的时候就任务就已经执行了。
Thread.sleep(1000L);
}
catch (InterruptedException e2)
{
e2.printStackTrace();
}
OrderServiceStub stub = null;
try
{
stub = new OrderServiceStub("http://10.40.55.23:8080/bmp/services/OrderService");
}
catch (AxisFault e1)
{
// TODO Auto-generated catch block
e1.printStackTrace();
}
stub._getServiceClient().getOptions().setProperty(HTTPConstants.CHUNKED, false);
stub._getServiceClient().getOptions().setTimeOutInMilliSeconds(1600000);
OrderServiceStub.SyncOrderRelationCfmReq req = new OrderServiceStub.SyncOrderRelationCfmReq();
OrderServiceStub.SyncOrderRelationCfm syncOrderRelationCfm = new OrderServiceStub.SyncOrderRelationCfm();
// 开户
SyncOrderRelationCfmResponse syncOrderRelationCfmResp =
new OrderServiceStub.SyncOrderRelationCfmResponse();
req.setMsgTransactionID(msgHeaderClient.getTransactionID().getTransactionID());
req.setCfmResult(msgHeaderClient.getProcResult());
syncOrderRelationCfm.setSyncOrderRelationCfmReq(req);
try
{
syncOrderRelationCfmResp =
stub.syncOrderRelationCfm(syncOrderRelationCfm,
msgHeaderClient.getMsgName(),
msgHeaderClient.getTransactionID(),
msgHeaderClient.getVersion(),
msgHeaderClient.getSendAddress(),
msgHeaderClient.getDestAddress(),
msgHeaderClient.getOriginalAddress(),
msgHeaderClient.getTimeStamp());
}
catch (RemoteException e)
{
e.printStackTrace();
}
System.out.println(syncOrderRelationCfmResp.getSyncOrderRelationCfmResp().getResult());
msgHeaderClient = null;
}
}
org.apache.axis2.AxisFault: A required header representing a Message Addressing Property is not present错误产生的场景:
我用同一WSDL文件生成的服务端和客户端,用客户端调服务端时报的错,DEBUG跟进去调试,发现参数都有,只是在向服务端发请求的那个方法那出的错,方法如下:(具体出错的地方我标记成红色了)
package com.chinamobile.www.vgop.serviceorder.v1_0;
import java.rmi.RemoteException;import org.apache.axis2.AxisFault;
import org.apache.axis2.transport.http.HTTPConstants;
import com.chinamobile.www.vgop.serviceorder.v1_0_sub.OrderServiceStub;
import com.chinamobile.www.vgop.serviceorder.v1_0_sub.OrderServiceStub.SyncOrderRelationCfmResponse;public class TaskObject implements Runnable
{
private MsgHeaderClient msgHeaderClient = null;
public MsgHeaderClient getMsgHeaderClient()
{
return msgHeaderClient;
}
public void setMsgHeaderClient(MsgHeaderClient msgHeaderClient)
{
this.msgHeaderClient = msgHeaderClient;
}
public void run()
{
try
{
//睡眠1s,防止任务添加进来就执行,导致服务端还没有响应的时候就任务就已经执行了。
Thread.sleep(1000L);
}
catch (InterruptedException e2)
{
e2.printStackTrace();
}
OrderServiceStub stub = null;
try
{
stub = new OrderServiceStub("http://10.40.55.23:8080/bmp/services/OrderService");
}
catch (AxisFault e1)
{
// TODO Auto-generated catch block
e1.printStackTrace();
}
stub._getServiceClient().getOptions().setProperty(HTTPConstants.CHUNKED, false);
stub._getServiceClient().getOptions().setTimeOutInMilliSeconds(1600000);
OrderServiceStub.SyncOrderRelationCfmReq req = new OrderServiceStub.SyncOrderRelationCfmReq();
OrderServiceStub.SyncOrderRelationCfm syncOrderRelationCfm = new OrderServiceStub.SyncOrderRelationCfm();
// 开户
SyncOrderRelationCfmResponse syncOrderRelationCfmResp =
new OrderServiceStub.SyncOrderRelationCfmResponse();
req.setMsgTransactionID(msgHeaderClient.getTransactionID().getTransactionID());
req.setCfmResult(msgHeaderClient.getProcResult());
syncOrderRelationCfm.setSyncOrderRelationCfmReq(req);
try
{
syncOrderRelationCfmResp =
stub.syncOrderRelationCfm(syncOrderRelationCfm,
msgHeaderClient.getMsgName(),
msgHeaderClient.getTransactionID(),
msgHeaderClient.getVersion(),
msgHeaderClient.getSendAddress(),
msgHeaderClient.getDestAddress(),
msgHeaderClient.getOriginalAddress(),
msgHeaderClient.getTimeStamp());
}
catch (RemoteException e)
{
e.printStackTrace();
}
System.out.println(syncOrderRelationCfmResp.getSyncOrderRelationCfmResp().getResult());
msgHeaderClient = null;
}
}
解决方案 »
- org.springframework.beans.factory.BeanCreationException: 帮忙看看问题
- 使用Struts2,里面的jsp页面有些服务器认不出来
- 对象克隆 出现的问题 请高手帮忙解决下
- struts hibernate 优势 spring+hibernate+struts优势 如何做出选择呢
- java在命令行运行的时候需要输入参数,如何处理?
- 关于一个csdn推荐
- struts +sql server2000数据库
- 接上一个 hibernate问题
- 请教高手,怎样打印成Excel表格.
- Exception sending context initialized event to listener instance of class org.sp
- vo传的值到页面上怎么会取不到
- ssh框架hibernate对checkbox多项删除问题
import java.rmi.RemoteException;import org.apache.axis2.AxisFault;
import org.apache.axis2.transport.http.HTTPConstants;
import com.chinamobile.www.vgop.serviceorder.v1_0_sub.OrderServiceStub;
import com.chinamobile.www.vgop.serviceorder.v1_0_sub.OrderServiceStub.SyncOrderRelationCfmResponse;public class TaskObject implements Runnable
{
private MsgHeaderClient msgHeaderClient = null;
public MsgHeaderClient getMsgHeaderClient()
{
return msgHeaderClient;
}
public void setMsgHeaderClient(MsgHeaderClient msgHeaderClient)
{
this.msgHeaderClient = msgHeaderClient;
}
public void run()
{
try
{
//睡眠1s,防止任务添加进来就执行,导致服务端还没有响应的时候就任务就已经执行了。
Thread.sleep(1000L);
}
catch (InterruptedException e2)
{
e2.printStackTrace();
}
OrderServiceStub stub = null;
try
{
stub = new OrderServiceStub("http://10.40.55.23:8080/bmp/services/OrderService");
}
catch (AxisFault e1)
{
// TODO Auto-generated catch block
e1.printStackTrace();
}
stub._getServiceClient().getOptions().setProperty(HTTPConstants.CHUNKED, false);
stub._getServiceClient().getOptions().setTimeOutInMilliSeconds(1600000);
OrderServiceStub.SyncOrderRelationCfmReq req = new OrderServiceStub.SyncOrderRelationCfmReq();
OrderServiceStub.SyncOrderRelationCfm syncOrderRelationCfm = new OrderServiceStub.SyncOrderRelationCfm();
// 开户
SyncOrderRelationCfmResponse syncOrderRelationCfmResp =
new OrderServiceStub.SyncOrderRelationCfmResponse();
req.setMsgTransactionID(msgHeaderClient.getTransactionID().getTransactionID());
req.setCfmResult(msgHeaderClient.getProcResult());
syncOrderRelationCfm.setSyncOrderRelationCfmReq(req);
try
{
syncOrderRelationCfmResp =
stub.syncOrderRelationCfm(syncOrderRelationCfm,
msgHeaderClient.getMsgName(),
msgHeaderClient.getTransactionID(),
msgHeaderClient.getVersion(),
msgHeaderClient.getSendAddress(),
msgHeaderClient.getDestAddress(),
msgHeaderClient.getOriginalAddress(),
msgHeaderClient.getTimeStamp());
}
catch (RemoteException e)
{
e.printStackTrace();
}
System.out.println(syncOrderRelationCfmResp.getSyncOrderRelationCfmResp().getResult());
msgHeaderClient = null;
}
}
TDSWebServiceLocator tdsLocator = new TDSWebServiceLocator();
TDSWebServiceSoap tds = (TDSWebServiceSoap12Stub)tdsLocator.getTDSWebServiceSoap12() ;;
result = tds.queryID(domain, username, password, id, port, DN);
web服务发布出来一般不会有错吧