WebService接口的调用
首先看看地址是否可以调通如下:
1.需要生成基础代码
1.创建Web Service Project,命名为TheClient。
2.在dos命令下输入 wsimport -s “src目录” -p “生成类所在包名” -keep “wsdl发布地址”
示例:wsimport -s G:\workspace\webService\webService_Project\src -p com.pcm.ws.jws -keep http://192.168.1.17:8189/Service/ServiceHello?wsdl
3.成功则返回 parsing WSDL…
generating code…
compiling code…
4.刷新项目,生成类;
5.● wsimport常用参数
-d:默认参数,用于生成.class文件
-s:生成.java文件
-p:指定生成java文件的包名,不指定则为WSDL说明书中namespace值得倒写
2.将生成的代码copy到客户端工程中
如下:
3.自己创建测试类代码如下:
public class TestSendSMS {
@SneakyThrows
public static void main(String[] args) throws MalformedURLException {
String url = "http://**/SGIN.wsdl.ws";
RbjkSmsService_Service s = new RbjkSmsService_Service(new URL(url));
//登陆获取登陆sessionId
SY_ORG_LOGINService ser = s.getRbjkSmsServicePort();
String sessionId = ser.login("7", "cesh", "22");
System.out.println("SESSION ID" + sessionId);
String url1 = "http://**/PNC.wsdl.ws";
PTSYNCService s2 = new PTSYNCService(new URL(url1));
System.out.println("PTSYNCService创建完成");
PT_SYNC ptsyncPort = s2.getPTSYNCPort();
System.out.println("PT_SYNC创建完成");
部门和用户增量数据-测试-生产
String s3 = ptsyncPort.sync(sessionId, "0cjknasdl", 1);
System.out.println(s3);
//解析xml
String replace = s3.replace("<![CDATA[", "");
String replace1 = replace.replace("]]", "");
SAXReader reader = new SAXReader();
Document doc1 = reader.read((new ByteArrayInputStream(replace1.getBytes("UTF-8"))));//转换为文件
//获取根节点
Element root = doc1.getRootElement();
ArrayList<SendUserParam> user = new ArrayList<>();
List<Element> list = root.selectNodes("/result/_DATA_/_DATA_/USERS/USER");
for (int i = 0; i < list.size(); i++) {
SendUserParam users = new SendUserParam();
//登录名
Element user_login_name = list.get(i).element("USER_NAME");
//email
Element user_email = list.get(i).element("USER_EMAIL");
//部门名称
Element dept_name = list.get(i).element("DE_NAME");
//职务
Element user_post = list.get(i).element("US_POST");
//用户姓名
Element user_name = list.get(i).element("US_NAME");
String userLoginName = user_login_name.getStringValue();
String userEmail = user_email.getStringValue();
String deptName = dept_name.getStringValue();
String userPost = user_post.getStringValue();
String userName = user_name.getStringValue();
users.setUserName(userLoginName);
users.setRoomName(deptName);
users.setEmail(userEmail);
users.setJobTitle(userPost);
users.setName(userName);
user.add(users);
}
System.out.println(user);
}
注意⚠️
该测试类并不可以直接运行,需要根据需要改成自己的接口地址和逻辑,但是解析流程可以按照自己的需求跟据需要使用