@Slf4jpublic classTest {static final String url = "http://localhost:8091/roadcqc_webservice_war_exploded/services/loginIntf?wsdl";static final String method = "getToken";static final String targetNamespace = "http://login.webserivce.server.roadcqc.yemast.com";public static voidmain(String[] args) {
axis2WebService();
}private static voidaxis2WebService() {try{//参数值
UserInfoRequest u = newUserInfoRequest();
u.setUploadDateTime("2020-06-01");
u.setUserName("admin");
u.setPassword("admin");
u.setUploadDateTime("2020-01-1");
u.setToken("");
OMElement o=requestWs(targetNamespace,url,method,u);
Map m=getResultToMap(o);
System.out.println(m.toString());
}catch(Exception ex) {
ex.printStackTrace();
}
}private staticOMElement requestWs(String targetNamespace, String url, String method, Object o) {try{
ServiceClient sender= newServiceClient();
EndpointReference endpointReference= newEndpointReference(url);
Options options= newOptions();
options.setTo(endpointReference);
sender.setOptions(options);
OMFactory fac=OMAbstractFactory.getOMFactory();//这个和qname差不多,设置命名空间
OMNamespace omNs = fac.createOMNamespace(targetNamespace, ""); //这个是namespace的str
OMElement data = fac.createOMElement(method, omNs); //method是方法
QName qname = new QName("request"); //固定的request参数 webservice接收参数的名称
OMElement inner =fac.createOMElement(qname);if (o != null) { //通过反射获取参数
Class c =o.getClass();
Field[] fields=c.getDeclaredFields();for(Field f : fields) {
f.setAccessible(true);
QName qname1= newQName(f.getName());
OMElement inner1=fac.createOMElement(qname1);
inner1.setText(String.valueOf(f.get(o)));
inner.addChild(inner1);
}
}
data.addChild(inner);//发送数据,返回结果
OMElement omElement =sender.sendReceive(data);returnomElement;
}catch(Exception e) {
log.error("ws error:", e);
}return null;
}//解析返回的结果
public static MapgetResultToMap(OMElement element) {
Map map = new HashMap<>();if(element == null ) returnmap;
Iterator iterator= element.getChildElements();//response
while (iterator.hasNext()) { //n:return
OMElement result =(OMElement) iterator.next();
Iterator iterator_layer2=result.getChildElements();while (iterator_layer2.hasNext()) { //结果
OMElement result_2 =(OMElement) iterator_layer2.next();
String key=result_2.getLocalName();
String value=result_2.getText();
map.put(key, value);
}
}returnmap;
}
}