org.apache.axis2.AxisFault:错误,麻烦各位帮忙看下!
具体的错误信息如下:
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;
}
}