服务端是 AXIS ,自己用xfire写了一个客户端,我是把 WSDL 文件copy到本地叫xfire去访问
      public void testClient()  throws  Exception   {
       String wsdl  =  "DoBeanService.wsdl" ;  // 对应的WSDL文件 
       ClassPathResource resource  =   new  ClassPathResource(wsdl); 
       Client client  =   new  Client(resource.getInputStream(),null);  // 根据WSDL创建客户实例 
       
       Object[] objArray  =   new  Object[8];
       objArray[0]  =   "-1" ;
       objArray[1]  =   "-1" ;
       objArray[2]  =   "FWZL" ;
       objArray[3]  =   "FWZL_TEST" ;
       objArray[4]  =   "X0001" ;
       objArray[5]  =   "0" ;
       objArray[6]  =   "WWW.SOHU.COM" ;
       objArray[7]  =   "FWZL" ;
        // 调用特定的Web Service方法 
        Object[] results  =  client.invoke( "saveData" , objArray);
        System.out.println( "result:===="   +  results[0]);
    } <wsdl:message name="saveDataRequest">
  <wsdl:part name="taskid" type="soapenc:string" /> 
  <wsdl:part name="processid" type="soapenc:string" /> 
  <wsdl:part name="type" type="soapenc:string" /> 
  <wsdl:part name="title" type="soapenc:string" /> 
  <wsdl:part name="executor" type="soapenc:string" /> 
  <wsdl:part name="flag" type="soapenc:string" /> 
  <wsdl:part name="link" type="soapenc:string" /> 
  <wsdl:part name="inId" type="soapenc:string" /> 
  </wsdl:message>
Exception in thread "main" org.codehaus.xfire.fault.XFireFault: For input string: ""
at org.codehaus.xfire.fault.XFireFault.createFault(XFireFault.java:89)
at org.codehaus.xfire.client.Client.onReceive(Client.java:410)
at org.codehaus.xfire.transport.http.HttpChannel.sendViaClient(HttpChannel.java:139)
at org.codehaus.xfire.transport.http.HttpChannel.send(HttpChannel.java:48)
at org.codehaus.xfire.handler.OutMessageSender.invoke(OutMessageSender.java:26)
at org.codehaus.xfire.handler.HandlerPipeline.invoke(HandlerPipeline.java:131)
at org.codehaus.xfire.client.Invocation.invoke(Invocation.java:79)
at org.codehaus.xfire.client.Invocation.invoke(Invocation.java:114)
at org.codehaus.xfire.client.Client.invoke(Client.java:336)
at org.codehaus.xfire.client.Client.invoke(Client.java:368)
at com.szair.fwzl.webservice.Impl.testNew.testClient(testNew.java:30)
at com.szair.fwzl.webservice.Impl.testNew.main(testNew.java:12)
Caused by: java.lang.NumberFormatException: For input string: ""
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
at java.lang.Integer.parseInt(Integer.java:468)
at java.lang.Integer.parseInt(Integer.java:497)
at org.codehaus.xfire.aegis.AbstractMessageReader.getValueAsInt(AbstractMessageReader.java:68)
at org.codehaus.xfire.aegis.type.basic.IntType.readObject(IntType.java:18)
at org.codehaus.xfire.aegis.AegisBindingProvider.readParameter(AegisBindingProvider.java:169)
at org.codehaus.xfire.service.binding.RPCBinding.readMessage(RPCBinding.java:91)
at org.codehaus.xfire.soap.handler.SoapBodyHandler.invoke(SoapBodyHandler.java:42)
at org.codehaus.xfire.handler.HandlerPipeline.invoke(HandlerPipeline.java:131)
at org.codehaus.xfire.client.Client.onReceive(Client.java:406)
... 10 more

解决方案 »

  1.   

    Caused by: java.lang.NumberFormatException: For input string: ""你string转成 int时 出错,,,,看看是 输入的string非法,还是 越界。
      

  2.   

    <wsdl:message name="saveDataRequest">
    参数都已经写出来了啊,确实是STRING类型的
      

  3.   

    非法转型····如
    String a = "";
    System.out.println(Integer.parseInt(a));
    就会
    ception in thread "main" java.lang.NumberFormatException: For input string: ""
    at java.lang.NumberFormatException.forInputString(Unknown Source)
    at java.lang.Integer.parseInt(Unknown Source)
    at java.lang.Integer.parseInt(Unknown Source)
    at csdn.Afdf.main(Afdf.java:6)
      

  4.   

    转换出错~~
    xfire没用过。objArray  只能使用Object[]吗?如果不是的话全部换成别的类型如String[]测试一下,注意与服务端方法类型保持一致,试试看。
      

  5.   

    楼上还是不行,我就纳闷了
                                   For input string: "" 这个东西到底是怎么出来的
      

  6.   

    还有一种可能是webservice传入的参数为null,我碰到的一种是int可以传入,string就不能传入