?? adccaller.java
字號:
package mcm.adc.client;
import mcm.adc.ADCOption;
import mcm.adc.ADCConst.ActionCode;
import mcm.adc.ADCConst.BizCode;
import mcm.adc.ADCConst.ResultCode;
import mcm.adc.response.SSOAuthResponse;
public class ADCCaller {
/** ADC設定信息 */
ADCOption option = ADCOption.getInstance();
/** ADC的回饋信息 */
private AdcSiResponse response;
/** 訪問ADC時的出錯信息 */
private Throwable error;
/**
* 構造函數
*/
public ADCCaller() {
}
/**
* @return the error
*/
public Throwable getError() {
return error;
}
/**
* @return the response
*/
public AdcSiResponse getResponse() {
return response;
}
/**
* SSO鑒權
* @param token
* @return
*/
public boolean SSOAuth(String token){
//組建Request
AdcSiRequest aRequest = new AdcSiRequest();
aRequest.setBizCode(BizCode.SSO_AUTH);
aRequest.setSIAppID(option.getSICode());
aRequest.setActionCode(ActionCode.REQUEST);
String ssoMessage = "<AuthenRequest><BODY><SICode>" + option.getSICode() +"</SICode><TOKEN>" + token + "</TOKEN><ACTION>" + option.getSIActUrl() + "</ACTION></BODY></AuthenRequest>";
aRequest.setSvcCont(ssoMessage);
return sendRequest(aRequest);
}
/**
* SSO心跳
* @param token
* @return
*/
public boolean SSOHeartBeat(String token){
//組建Request
AdcSiRequest aRequest = new AdcSiRequest();
aRequest.setBizCode(BizCode.SSO_HEART);
aRequest.setSIAppID(option.getSICode());
aRequest.setActionCode(ActionCode.REQUEST);
String ssoMessage = "<PulseRequest><BODY><TOKEN>" + token + "</TOKEN></BODY></PulseRequest>";
aRequest.setSvcCont(ssoMessage);
return sendRequest(aRequest);
}
/**
* 調用ADC服務
* @param request
* @return
*/
private boolean sendRequest(AdcSiRequest request){
try{
//初始化
response = null;
error = null;
ADCInterfaceForSILocator locator = new ADCInterfaceForSILocator();
locator.setADCInterfaceForSISoapEndpointAddress(option.getADCSrvUrl());
locator.setADCInterfaceForSISoap12EndpointAddress(option.getADCSrvUrl());
ADCInterfaceForSISoap adcService = locator.getADCInterfaceForSISoap();
//System.out.println(locator.getADCInterfaceForSISoap12Address());
response = adcService.adcSiInterface(request);
return true;
}
catch(Throwable ex){
error = ex;
return false;
}
}
/**
* @param args
*/
public static void main(String[] args) throws Exception {
ADCCaller caller = new ADCCaller();
if(caller.SSOAuth("aa0b8083-9a53-44a5-8e90-ce2959c253dd")){
AdcSiResponse response = caller.getResponse();
System.out.println(response.getSvcCont());
System.out.println(response.getResultMsg());
if(ResultCode.SUCCESS.equals(response.getResultCode())){
//鑒權成功
SSOAuthResponse resInfo = new SSOAuthResponse(response.getSvcCont());
System.out.println("集團客戶帳號:" + resInfo.getCORPACCOUNT());
System.out.println("用戶ID:" + resInfo.getUFID());
}
else{
//鑒權失敗
}
}
else{
System.out.println("訪問失敗!");
Throwable ex = caller.getError();
if(ex != null){
ex.printStackTrace(System.err);
}
}
if(caller.SSOHeartBeat("aa0b8083-9a53-44a5-8e90-ce2959c253dd")){
AdcSiResponse response = caller.getResponse();
if(ResultCode.SUCCESS.equals(response.getResultCode())){
//成功
}
else{
//失敗
}
}
else{
System.out.println("訪問失敗!");
Throwable ex = caller.getError();
if(ex != null){
ex.printStackTrace(System.err);
}
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -