webservice访问异常
我们系统环境出了一个奇怪的问题,求大神帮忙啊
问题就是我本地的环境调用目标webservice地址可以正常访问,但是生产环境调用同一个webservice地址就报如下异常:
org.apache.axis2.AxisFault: A required header representing a Message Addressing Property is not present
at org.apache.axis2.util.Utils.getInboundFaultFromMessageContext(Utils.java:434)
at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:373)
at org.apache.axis2.description.OutInAxisOperationClient.execute(OutInAxisOperation.java:294)
at org.apache.axis2.client.ServiceClient.sendReceive(ServiceClient.java:520)
at org.apache.axis2.client.ServiceClient.sendReceive(ServiceClient.java:500)
at org.apache.axis2.rpc.client.RPCServiceClient.invokeBlocking(RPCServiceClient.java:97)
at com.servlet.PosServlet94.doPost(PosServlet94.java:468)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:301)
at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at com.sinosoft.prpall.pubfun.SQLInjectFilter.doFilter(SQLInjectFilter.java:138)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at com.pubfun.ResourceRequestFilter.doFilter(ResourceRequestFilter.java:74)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3730)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3696)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2273)
at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2179)
at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1490)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:256)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:221)
调用webservice代码如下:
RPCServiceClient serviceClient;
serviceClient = new RPCServiceClient();
Options options = serviceClient.getOptions();
// 指定调用WebService的URL
EndpointReference targetEPR = new EndpointReference(
"http://10.14.23.45:6000/cms/services/bill99Service");
options.setTo(targetEPR);
options.setTimeOutInMilliSeconds(1*60*1000);//设置超时时间
options.setManageSession(true);
options.setAction("urn:osfQuery");
// 指定paymentAccount方法的参数值
Object[] opAddEntryArgs = new Object[] { bufSend };
// 指定paymentAccount方法返回值的数据类型的Class对象
Class[] classes = new Class[] { String.class };
// 指定要调用的paymentAccount方法及WSDL文件的命名空间
QName opAddEntry = new QName("http://service.cms.aa.com",
"osfQuery");
// 调用paymentAccount方法并输出该方法的返回值
returnStr = (String)serviceClient.invokeBlocking(opAddEntry,opAddEntryArgs, classes)[0];
异常就出在returnStr = (String)serviceClient.invokeBlocking(opAddEntry,opAddEntryArgs, classes)[0];
http://10.14.23.45:6000/cms/services/bill99Service?wsdl 这个是可以正常访问的,并且可以ping通
跪求大神指导啊!!!!!!!!!!!!!!!!!!!!