public static void main(String[] args){
try {
//XML解析后的字符串
String temp=new OrganisationWebServiceTest().readXml();
//webservice发布地址
String endpoint = "http://localhost:8080/eHealth/services/IHisDrugMaterialWsService";
//实例化访问对象
Service service = new Service();
//实例化调用对象
Call call = (Call)service.createCall();
//在调用对象中添加webservice地址
call.setTargetEndpointAddress(endpoint);
//在调用对象中添加将要调用的函数名(webservice对应的命名空间?)
call.setOperationName("saveMaterialInfo");
//设置入参,第一个参数是命名空间以及参数名,这两个参数是采用一个Qname变量打包传入的,第二个参数是入参的类型(字符或者数字)第三个参数是入参种类
call.addParameter("queryXml", org.apache.axis.encoding.XMLType.XSD_STRING, javax.xml.rpc.ParameterMode.IN);
//设置返回值格式(字符串或者组装对象)
//给方法传递参数,并且调用方法
String result = (String) call.invoke(new Object[] { temp });
System.out.println("result is " + result);
}
catch (Exception e) {
// TODO Auto-generated catch block
System.err.println(e.toString());
}
}
//XML解析方法
private String readXml() {
StringBuffer sb=new StringBuffer();
try {
BufferedReader br=new BufferedReader(new InputStreamReader(new FileInputStream("C:\\material.xml"),"UTF-8"));
String line=null;
while((line=br.readLine())!=null){
sb.append(line);
}
br.close();
} catch (Exception e) {
e.printStackTrace();
}
return sb.toString();
}
}