客户端:
?public List<Map<String,String>> getWSLogContent(String keyword,String starttime,String endtime)
??? {
??????? // String keyword = " ";
??????? // String starttime = "20130629000000";
??????? // String endtime = "20131123000000";
??????? // String eamID = "HWU2000";
??????? // String emsEntityID = "G:/mLog/Log";
??????? String logInfo = "";
??????? List<Map<String,String>> csvContentList = new ArrayList<Map<String,String>>(CommonFinals.INIT_ARRAYLIST);
???????
??????? try
??????? {
??????? ?String wsdlPath = "/opt/netwatcher/pm4h2/app/module/eamappproxy/conf/hello_world.wsdl";
??????? ?logger.info(Constants.LOG_COLLECT_CODE,"1001","hello_world.wsdl path is :" + wsdlPath);
??????? ?String keyFlag = "secure";
//??????????? if (args.length == 0) {
//??????????????? System.out.println("please specify wsdl");
//??????????????? System.exit(1);
//??????????? }
??????????? URL wsdlURL;
??????????? File wsdlFile = new File(wsdlPath);
??????????? logger.info(Constants.LOG_COLLECT_CODE,"wsdlFile is :" + wsdlFile.toString());
??????????? if (wsdlFile.exists()) {
??????????????? wsdlURL = wsdlFile.toURL();
??????????? } else {
??????????????? wsdlURL = new URL(wsdlPath);
??????????? }
??????????? logger.info(Constants.LOG_COLLECT_CODE,"wsdlURL is :" + wsdlURL.toString());
??????????? System.out.println(wsdlURL);
??????????? SOAPService ss = new SOAPService(wsdlURL,SERVICE_NAME);
??????????? logger.info(Constants.LOG_COLLECT_CODE,"ss is :" + ss.toString());
??????????? Greeter port = ss.getPort(PORT_NAME,Greeter.class);?
??????????? logger.info(Constants.LOG_COLLECT_CODE,"port is :" + port.toString());
??????????? if ("secure".equals(keyFlag)) {
??????????????? setupTLS(port);
??????????? } else if ("insecure".equals(keyFlag)) {
??????????????? //do nothing
??????????? } else {
??????????????? System.out.println("arg1 needs to be either secure or insecure");
??????????????? System.exit(1);
??????????? }
??????????? logger.info(Constants.LOG_COLLECT_CODE,"Invoking greetMe...");
??????????? System.out.println("Invoking greetMe...");
??????? ?///netwatcher/spool/HWM2000V2R3V2R11FI/1405652539404/molog_load/
??????? ?// objCode,eamID,emsEntityID,keyword,starttime,endtime?? 传入的6个参数 时间必须格式为20130629000000
//??????????? String str = "NEW_USF8GU1250&&&&&&"+"HWM2000V2R3V2R11FI&&&&&&"+"1405652539404&&&&&&"+" &&&&&&"+"20140825000000&&&&&&"+"20140829000000";
??????? ?String str = this.objCode+"&&&&&&"+this.eamID+"&&&&&&"+this.emsEntityID+"&&&&&&"+keyword+"&&&&&&"+starttime+"&&&&&&"+endtime;
??????? ?logger.info(Constants.LOG_COLLECT_CODE,"all param is : " + str);
??????? ?
??????? ?logInfo = port.greetMe(str);
??????? ?
??????? ?logger.info(Constants.LOG_COLLECT_CODE,"responded result is : " + logInfo);
??????????? System.out.println("Server responded with: " + logInfo);
??????????? System.out.println();
//??????????? logInfo = sh.getGreeting(this.objCode,this.eamID,this.emsEntityID,endtime);
??????????? logInfo = logInfo.replace("]",",");
??????????? String[] logC = logInfo.split("},");
??????????? for (int i = 0; i < logC.length; i++)
??????????? {
??????????????? String[] logMap = logC[i].split("===");
??????????????? if (logMap.length > 5)
??????????????? {
??????????????????? Map<String,String> csvKeyMap = new HashMap<String,String>(16);
??????????????????? csvKeyMap.put("endtime",logMap[5]);
??????????????????? // String endT = logMap[4].replace(",endtime ","");
??????????????????? csvKeyMap.put("starttime",logMap[4].replace(",""));
??????????????????? csvKeyMap.put("objCode",logMap[3].replace(",starttime ",""));
??????????????????? csvKeyMap.put("operator",logMap[2].replace(",objCode ",""));
??????????????????? csvKeyMap.put("content",logMap[1].replace(",operator ",""));
??????????????????? csvContentList.add(csvKeyMap);
??????????????? }
??????????? }
??????? }
??????? catch (Exception ex)
??????? {
??????????? //ex.printStackTrace();
??????? ?logger.info(Constants.LOG_COLLECT_CODE,"100","getWSLogContent() run time exception: "+ex);
??????? }
??????? // System.out.println(logInfo);
??????? // exit = true;
??????? // }
??????? // }
??????? // System.out.println("/nThank you for running the client.");
???????
??????? // 对结果集进行按时间降序排列
??????? OperationLogComparator com = new OperationLogComparator();
??????? Collections.sort(csvContentList,com);
???????
??????? return csvContentList;
??? }
???
??? private static void setupTLS(Greeter port)
??????????? throws FileNotFoundException,IOException,GeneralSecurityException {
??????????? String keyStoreLoc = "/opt/netwatcher/pm4h2/app/module/eamappproxy/conf/clientKeystore.jks";
??????????? HTTPConduit httpConduit = (HTTPConduit) ClientProxy.getClient(port).getConduit();
????
??????????? TLSClientParameters tlsCP = new TLSClientParameters();
??????????? String keyPassword = "ckpass";
??????????? KeyStore keyStore = KeyStore.getInstance("JKS");
??????????? keyStore.load(new FileInputStream(keyStoreLoc),"cspass".toCharArray());
??????????? KeyManager[] myKeyManagers = getKeyManagers(keyStore,keyPassword);
??????????? tlsCP.setKeyManagers(myKeyManagers);
??????????? tlsCP.setDisableCNCheck(true);
???????????
??????????? KeyStore trustStore = KeyStore.getInstance("JKS");
??????????? trustStore.load(new FileInputStream(keyStoreLoc),"cspass".toCharArray());
??????????? TrustManager[] myTrustStoreKeyManagers = getTrustManagers(trustStore);
??????????? tlsCP.setTrustManagers(myTrustStoreKeyManagers);
???????????
??????????? httpConduit.setTlsClientParameters(tlsCP);
??????? }
??????? private static TrustManager[] getTrustManagers(KeyStore trustStore)
??????????? throws NoSuchAlgorithmException,KeyStoreException {
??????????? String alg = KeyManagerFactory.getDefaultAlgorithm();
??????????? TrustManagerFactory fac = TrustManagerFactory.getInstance(alg);
??????????? fac.init(trustStore);
??????????? return fac.getTrustManagers();
??????? }
???????
??????? private static KeyManager[] getKeyManagers(KeyStore keyStore,String keyPassword)
??????????? throws GeneralSecurityException,IOException {
??????????? String alg = KeyManagerFactory.getDefaultAlgorithm();
??????????? char[] keyPass = keyPassword != null
???????????????????????? ? keyPassword.toCharArray()
???????????????????????? : null;
??????????? KeyManagerFactory fac = KeyManagerFactory.getInstance(alg);
??????????? fac.init(keyStore,keyPass);
??????????? return fac.getKeyManagers();
??????? }
package com.inspur.pmv5.service.impl.collection.wsclient;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebResult;
import javax.jws.WebService;
import javax.xml.bind.annotation.XmlSeeAlso;
import javax.xml.ws.RequestWrapper;
import javax.xml.ws.ResponseWrapper;
/**
?* This class was generated by Apache CXF 2.6.14
?* 2014-09-01T10:05:41.176+08:00
?* Generated source version: 2.6.14
?*
?*/
@WebService(targetNamespace = "http://apache.org/hello_world_soap_http",name = "Greeter")
@XmlSeeAlso({com.inspur.pmv5.service.impl.collection.wsclient.types.ObjectFactory.class})
public interface Greeter {
??? @WebResult(name = "responseType",targetNamespace = "http://apache.org/hello_world_soap_http/types")
??? @RequestWrapper(localName = "greetMe",targetNamespace = "http://apache.org/hello_world_soap_http/types",className = "org.apache.hello_world_soap_http.types.GreetMe")
??? @WebMethod
??? @ResponseWrapper(localName = "greetMeResponse",className = "org.apache.hello_world_soap_http.types.GreetMeResponse")
??? public java.lang.String greetMe(
??????? @WebParam(name = "requestType",targetNamespace = "http://apache.org/hello_world_soap_http/types")
??????? java.lang.String requestType
??? );
}
package com.inspur.pmv5.service.impl.collection.wsclient;
import java.net.MalformedURLException;
import java.net.URL;
import javax.xml.namespace.QName;
import javax.xml.ws.WebEndpoint;
import javax.xml.ws.WebServiceClient;
import javax.xml.ws.WebServiceFeature;
import javax.xml.ws.Service;
/**
?* This class was generated by Apache CXF 2.6.14
?* 2014-09-01T10:05:41.214+08:00
?* Generated source version: 2.6.14
?*
?*/
@WebServiceClient(name = "SOAPService",
????????????????? wsdlLocation = "file:/opt/netwatcher/pm4h2/app/module/eamappproxy/conf/hello_world.wsdl",
????????????????? targetNamespace = "http://apache.org/hello_world_soap_http")
public class SOAPService extends Service {
??? public final static URL WSDL_LOCATION;
??? public final static QName SERVICE = new QName("http://apache.org/hello_world_soap_http","SOAPService");
??? public final static QName SoapPort = new QName("http://apache.org/hello_world_soap_http","SoapPort");
??? static {
??????? URL url = null;
??????? try {
??????????? url = new URL("file:/opt/netwatcher/pm4h2/app/module/eamappproxy/conf/hello_world.wsdl");
??????? } catch (MalformedURLException e) {
??????????? java.util.logging.Logger.getLogger(SOAPService.class.getName())
??????????????? .log(java.util.logging.Level.INFO,
???????????????????? "Can not initialize the default wsdl from {0}","file:/E:/01-MyX220/Desktop/apache-cxf-2.6.14/samples/wsdl_first_https/src/main/config/hello_world.wsdl");
??????? }
??????? WSDL_LOCATION = url;
??? }
??? public SOAPService(URL wsdlLocation) {
??????? super(wsdlLocation,SERVICE);
??? }
??? public SOAPService(URL wsdlLocation,QName serviceName) {
??????? super(wsdlLocation,serviceName);
??? }
??? public SOAPService() {
??????? super(WSDL_LOCATION,SERVICE);
??? }
???
??? //This constructor requires JAX-WS API 2.2. You will need to endorse the 2.2
??? //API jar or re-run wsdl2java with "-frontend jaxws21" to generate JAX-WS 2.1
??? //compliant code instead.
??? public SOAPService(WebServiceFeature ... features) {
??????? super(WSDL_LOCATION,SERVICE,features);
??? }
??? //This constructor requires JAX-WS API 2.2. You will need to endorse the 2.2
??? //API jar or re-run wsdl2java with "-frontend jaxws21" to generate JAX-WS 2.1
??? //compliant code instead.
??? public SOAPService(URL wsdlLocation,WebServiceFeature ... features) {
??????? super(wsdlLocation,QName serviceName,serviceName,features);
??? }
??? /**
???? *
???? * @return
???? *???? returns Greeter
???? */
??? @WebEndpoint(name = "SoapPort")
??? public Greeter getSoapPort() {
??????? return super.getPort(SoapPort,Greeter.class);
??? }
??? /**
???? *
???? * @param features
???? *???? A list of {@link javax.xml.ws.WebServiceFeature} to configure on the proxy.? Supported features not in the <code>features</code> parameter will have their default values.
???? * @return
???? *???? returns Greeter
???? */
??? @WebEndpoint(name = "SoapPort")
??? public Greeter getSoapPort(WebServiceFeature... features) {
??????? return super.getPort(SoapPort,Greeter.class,features);
??? }
}
??