자바 wdl 역방향 으로 소스 코드 를 생 성하 고 CXF 를 사용 하여 클 라 이언 트 호출 코드 를 실현 합 니 다.
eg: wsdl 주소:http://sersh.passport.189.cn/UDBAPPInterface/UDBAPPSYS/AccountLogin.asmx?WSDL
cmd 를 열 고 다음 명령 을 입력 하 십시오: wsimport - extension - s d: / testhttp://sersh.passport.189.cn/UDBAPPInterface/UDBAPPSYS/AccountLogin.asmx?WSDL
2. apache 홈 페이지 에 올 라 가 CXF 관련 jar 가방 을 다운로드 합 니 다.(apache-cxf-2.7.4.zip)
3. 관련 jar 패 키 지 를 프로젝트 에 가 져 와 클 라 이언 트 조회 코드 를 작성 합 니 다.(전제 조건 은 웹 서비스 서버 가 이미 배치 되 었 다 는 것 이다)
public static void main(String[] args) throws MalformedURLException {
System.out.println("start.");
IMSILoginResult login = getIMSILoginResultFromQGUDBByImsi("460030136905408");
System.out.println("mobile is " + login.getUserID());
}
private static String serviceUrl = "http://sersh.passport.189.cn/UDBAPPInterface/UDBAPPSYS/AccountLogin.asmx?WSDL";
private static String QGUDB_DEVICENO = "3500000000408501";
private static String QGUDB_DESKEY = "75BD2E98AC17564B2DB7C74B064F5084C6557FDDF3E4C286";
public static <T> T getISAGService(Class<T> serviceClass, String serviceUrl) {
final JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
factory.setServiceClass(serviceClass);
factory.setAddress(serviceUrl);
return (T) factory.create();
}
/**
* , IMSI FJUDB ( , 0, .)
* @param IMSI
* @return
* @throws MalformedURLException
* @throws Exception
*/
private static IMSILoginResult getIMSILoginResultFromQGUDBByImsi(String imsi)
throws MalformedURLException {
System.setProperty("http.proxyHost", "192.168.13.19");
System.setProperty("http.proxyPort", "7777");
// URL url = new URL(serviceUrl);
// // URL url = WebServiceUtil.class.getResource("/conf/AccountLogin_china.xml");
// // URL url = new URL("file:\\C:\\Users\\FFCS-4\\Desktop\\AccountLogin.xml");
// QName name = new QName("http://udb.chinatelecom.com", "AccountLogin");
// AccountLogin accountLogin = new AccountLogin(url, name);
// AccountLoginSoap accountLoginSoap = accountLogin.getAccountLoginSoap();
AccountLoginSoap accountLoginSoap = getISAGService(AccountLoginSoap.class, serviceUrl);
String SrcSsDeviceNo = QGUDB_DEVICENO;
String AuthSsDeviceNo = QGUDB_DEVICENO;
String UDBTokenFlag = "0";
String IPAddress = "218.5.99.35";
Date date = new Date();
SimpleDateFormat dateFormat = new SimpleDateFormat(
"yyyy-MM-dd HH:mm:ss");
String TimeStamp = dateFormat.format(date);
String Extension = "";
//
String Authenticator1 = SrcSsDeviceNo + AuthSsDeviceNo + imsi
+ UDBTokenFlag + IPAddress + TimeStamp + Extension;
String Authenticator2 = Cryto.generateAuthenticator(Authenticator1,QGUDB_DESKEY, "utf-8");
IMSILoginRequest imsiLoginRequest = new IMSILoginRequest();
imsiLoginRequest.setAuthenticator(Authenticator2);
imsiLoginRequest.setAuthSsDeviceNo(AuthSsDeviceNo);
imsiLoginRequest.setExtension(Extension);
imsiLoginRequest.setIMSI(imsi);
imsiLoginRequest.setIPAddress(IPAddress);
imsiLoginRequest.setSrcSsDeviceNo(SrcSsDeviceNo);
imsiLoginRequest.setTimeStamp(TimeStamp);
imsiLoginRequest.setUDBTokenFlag(UDBTokenFlag);
IMSILoginResponse imsiLoginResponse = accountLoginSoap.imsiLogin(imsiLoginRequest);
IMSILoginResult imsiLoginResult = imsiLoginResponse.getIMSILoginResult();
IMSILoginResult result = null;
// 0 ,
if (imsiLoginResult.getResultCode() == 0) {
result = imsiLoginResult;
}
return result;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.