java Web Service Axis调用参数问题

来源:互联网 发布:linux hostname命令 编辑:程序博客网 时间:2024/06/02 14:37

java Web Service Axis

public int isLoginSuccessful(String studentID, String password)...{
try ...{
ResourceBundle rb=ResourceBundle.getBundle("com.wsscore4student.business.service-config");
String endpoint= rb.getString("url");
System.out.println( "url is " + endpoint);
Service service = new Service();
Call call = (Call)service.createCall();
call.setTargetEndpointAddress(new java.net.URL(endpoint));
call.setOperationName(new QName("http://www.wsscore.com/isStudentLoginSuccessful/SU","isStudentLoginSuccessful"));
call.addParameter("studentID",org.apache.axis.encoding.XMLType.XSD_DATE,javax.xml.rpc.ParameterMode.IN);
call.addParameter("password",org.apache.axis.encoding.XMLType.XSD_DATE,javax.xml.rpc.ParameterMode.IN);
call.setReturnType(org.apache.axis.encoding.XMLType.XSD_INT);
call.setUseSOAPAction(true);
call.setSOAPActionURI("http://www.wsscore.com/isStudentLoginSuccessful/Rpc");
int k = (Integer)call.invoke(new Object[]...{studentID,password});
System.out.println( "result is " + k + ".");
return k;
}
catch (Exception e) ...{System.err.println(e.toString());}
return -1;
}

这个程序中
call.addParameter("password",org.apache.axis.encoding.XMLType.XSD_DATE,javax.xml.rpc.ParameterMode.IN);
方法的各个参数是什么意思
收起
abs421209023 | 浏览 3179 次  2009-06-24 19:36
2015-10-24 20:07
addParameter:增加一个属性。

password,增加的属性名。

org.apache.axis.encoding.XMLType.XSD_DATE, 这个参数是WEBSERVCE内部定义好的参数,这个常量是WEBSERVICE里的QName实例。QName实例按照XML Schema 的第二部分,即【数据类型规范】里面的要求定义了一个固定的名称。QName包含三个属性,分别是命名空间URI, 用户部分和前缀。 用户部分是指一个固定的名称,命名空间URI是指一个负责引用命名空间的URI。QName是Object的直接子类,并且是可序列化的。这个XSD_DATE是指遵循QName的一个对象类型,其封装了数据类型DATE,即日期。另外还有XSD_TIME,时间 这类的类型定义。

javax.xml.rpc.ParameterMode.IN 是WEBSERVICE内部定义好的参数。意思是方法的参数模式为传入,另外还有传出,也就是OUT,和传入传出INOUT 两个参数。这个和ORACLE数据库调用存储过程是差不多的意思。

综上,上面那句代码的意思就是
增加一个参数,参数名为password,类型为XSD_DATE, 它能够被赋值,但不能读取,也就是说没有返回值。

不明白可以继续补充,呵呵。
0 0
原创粉丝点击