关于WebService的调用问题.docVIP

  • 3
  • 0
  • 约3.69千字
  • 约 4页
  • 2017-06-08 发布于重庆
  • 举报
关于WebService的调用问题

关于WebService的调用问题现在有3个系统,分别是A,B,C。 现在我在系统A中点击相应的按钮(假设的),将触发一个动作是用WebService调用系统B的一个方法b,b这个方法中又用WebService调用系统C的一个方法c,然后C返回B一个String用于说明是否调用成功,再次当C返回B一个String后,B再返回个String返回给A,也就是说在A调用B还没结束时,B用调用了C。(注意系统B中的方法b,即接受A的调用同时又调用C) 这个过程中共用了两次WebService调用,而且比较特殊,因为在B调用C时A还是连接B的。这个过程中A调用B成功,但是当B调用C时就报错:org.apache.axis2.AxisFault: org.apache.axis2.addressing.EndpointReference.getAddressAttributes Ljava/util/ArrayList; 这个错误提示应该是连接不到的错误。 但是,我用A直接调B可以连通,用A直接调C可以连通,用B直接调C可以连通。他们两两之间是能连接通的。 我用的是axis2,A、B、C系统都是java做的,服务器用的是JBOSS 望高人能解决小弟的问题,不胜感激。并拜其为师。 问题补充: 小弟把源代码发出来让大家看看 这是系统A的一个测试类。 package com.client; import space.QName; import org.apache.axis2.AxisFault; import org.apache.axis2.client.Options; import org.apache.axis2.addressing.EndpointReference; import org.apache.axis2.rpc.client.RPCServiceClient; public class TestCYL private static EndpointReference targetEP0R new EndpointReference http://localhost:8080/axis2/services/EcardService ; //webservice地址 public static void main String[] args try String strHello 我是CYL系统!; int cid 1; int tid 2; String param cid+,+tid; RPCServiceClient serviceClient new RPCServiceClient ; ; Options options serviceClient.getOptions ; options.setTo targetEP0R ; //待调用服务的名称 QName opPrint new QName /xsd, getCYLRequest ; //服务参数,是个对象数组 Object[] opGetVersionArgs new Object[] cid,tid ; //返回类型 Class[] returnTypes new Class[] Boolean.class ; //阻塞调用,得到返回值 Object[] response serviceClient.invokeBlocking opPrint,opGetVersionArgs,returnTypes ; Boolean strConn Boolean response[0]; System.out.println 最后返回--- +strConn ; catch AxisFault axisFault axisFault.printStackTrace ; 问题补充: 这是系统B的WebService的公开方法,在此方法中又WebService调用了系统C的公开方法getEcardRequest public String getCYLRequest int cardID, int tableID System.out.println 收到的系统A发过来的参数是+cardID+,+tableID ; String strYResultXML ; String strWSURL 88:9090/axis2/services/EHubService; String strClassURL ; String strMethodName getE

文档评论(0)

1亿VIP精品文档

相关文档