| 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()); | 
|   | 
|     } | 
|   | 
| } |