代码如下:
import cn.com.chengjun.smplatform.smimplement.gzym.SMGZYMSender;
public class test {
public static void main(String[] args) {
Service  service = new Service();
//3SDK-GKG-0240-PEYLT
SMGZYMSender ss = new SMGZYMSender();
System.out.println(ss.logout("3SDK-GKG-0240-PEYLT"));
try {
Call     call    = (Call) service.createCall();  
call.setTargetEndpointAddress( new java.net.URL("http://sms.6car.cn/index.asmx") );
call.setSOAPActionURI ("http://tempuri.org/Register");
call.setOperationName("Register");
call.addParameter("UserID",XMLType.XSD_STRING,ParameterMode.IN);
call.addParameter("UserPwd",XMLType.XSD_STRING,ParameterMode.IN);
call.addParameter("Company",XMLType.XSD_STRING,ParameterMode.IN);
call.addParameter("RealName",XMLType.XSD_STRING,ParameterMode.IN);
call.addParameter("Tel",XMLType.XSD_STRING,ParameterMode.IN);
call.addParameter("Mobile",XMLType.XSD_STRING,ParameterMode.IN);
call.addParameter("Address",XMLType.XSD_STRING,ParameterMode.IN);
call.setReturnType(XMLType.SOAP_STRING);
String strRtn = call.invoke(new Object[]{"aaaa","3sss","cqcj","cqcj","111","111","ddd"}).toString(); 
==================为什么这两句打印为0?????????
System.out.println("params.size=   "+call.getOutputParams().size());
System.out.println("values.size=   "+call.getOutputValues().size());                          for(int i=0;i<call.getOutputValues().size();i++){
System.out.println("sssssssssssss"+call.getOutputValues().get(i));
}
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (RemoteException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ServiceException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}}

解决方案 »

  1.   

    call.setTargetEndpointAddress( new java.net.URL("http://sms.6car.cn/index.asmx") ); 
    红色改成
    http://sms.6car.cn/index.asmx?WSDL看看AXIS到没用过
      

  2.   

    AXIS我没用过
    入参类型XMLType.XSD_STRING和出参XMLType.SOAP_STRING这个是基本类型吗?是不是这个类型不对?
      

  3.   

    你是用 java 做客户端,调用 C# 的服务端吧。上面那种设置参数的方法似乎是不行。
    axis 的包里面有个类 OperationDesc
    OperationDesc oper = new OperationDesc();
    ParameterDesc param = new ParameterDesc(对参数进行设置);//选 6 个参数的构造方法
    oper.addParameter(param);上面的参数具体放置我忘了,再查查吧。这样就可以把参数设置进去了
      

  4.   

    然后再用 call.setOperation(oper); 把参数放到 call 里
      

  5.   

    然后再用 call.setOperation(oper); 把参数放到 call 里
      

  6.   

    使用wsdl2java自动生成客户端桩(stub)代码吧,这样做很简单的.
      

  7.   

    http://gocom.primeton.com/modules/newbb/forumtopic35074_13128_59.htm
    参考一下我的文章。
      

  8.   

    call.setOperationName("http://tempuri.org/","Register");