ws
2023-09-21 c972846d9e2c591120ec55c5e1feb277b10969f0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
package com.fzzy.push.gd2020.v2;
 
import com.fzzy.api.data.AuthToken;
import com.fzzy.api.entity.ApiConfs;
import org.apache.cxf.jaxws.endpoint.dynamic.JaxWsDynamicClientFactory;
 
import javax.xml.namespace.QName;
 
/**
 * @Desc: token获取
 * @author: Andy
 * @update-time: 2022/10/10
 */
public class AuthTokenWebService {
 
 
    public static AuthTokenWebService newInstance() {
        return new AuthTokenWebService();
    }
 
    /**
     * 获取接口报文方法
     *
     * @param username
     * @param password
     * @return
     */
    public AuthToken getToken(String bastPath, String username, String password) {
 
       //在一个方法中连续调用多次WebService接口,每次调用前需要重置上下文
        ClassLoader cl = Thread.currentThread().getContextClassLoader();
 
        AuthToken authToken = new AuthToken();
        String result;
        String url = bastPath + "/authWebService?wsdl";// 填写身份验证接口服务地址
        String method = "authToken";// 填写身份验证接口服务的方法
        String nameSpace = "http://service.sljt.com";
 
        Thread.currentThread().setContextClassLoader(cl);
        JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance();
        org.apache.cxf.endpoint.Client client = dcf.createClient(url);
        QName name = new QName(nameSpace, method);
        Object[] objects;
        try {
            objects = client.invoke(name, new Object[]{username, password});
 
            result = objects[0].toString();
            authToken.setToken(result);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return authToken;
    }
 
    /**
     * 获取接口报文方法
     *
     * @return
     */
    public AuthToken getToken(ApiConfs apiConf) {
        return getToken(apiConf.getApiUrl(), apiConf.getUserName(), apiConf.getPassword());
    }
 
 
    public static void main(String[] args) {
 
        /**
         * 广澳粮库:91440500190354212L004  密码:123456
         *
         *
         */
        String pwd = "123456";
        String bastPath = "https://ylt.gdgrain.gd.gov.cn:8443/spt-main/services/v2";
 
        String userName = "91440500190354212L004";
 
 
        AuthTokenWebService webService = AuthTokenWebService.newInstance();
 
        AuthToken authToken = webService.getToken(bastPath, userName, pwd);
 
        System.out.println(authToken.toString());
 
    }
 
}