作者:诺 | 来源:互联网 | 2023-05-17 15:40
具体的错误信息如下:org.apache.axis2.AxisFault:ArequiredheaderrepresentingaMessageAddressingProperty
具体的错误信息如下:
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;
}
}
8 个解决方案
忘记标记出错的地方了!呵呵 补下!
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;
}
}
你估计这个错有没有可能是跟WSDL文件本身有问题啊?
你看你调用是不是有错
web服务发布出来一般不会有错吧
应该是没错的,我在IE里面访问的了,是可以访问的到的。
··········没人理啊 !大侠们帮忙看下啊!