webservice 客户端动态调用

来源:互联网 发布:网络测线仪品牌 编辑:程序博客网 时间:2024/06/11 17:22

本地测试cxf  webservice 服务端时,动态调用cxf服务端,测试客户端代码如下:

/** *  */package cxfClient;import java.io.StringWriter;public class TestDomainQueryInterface {/** * @Description TODO * @return void * @author  */private static final String testUrl = "http://localhost:8080/is/webservice/OrteQuery?wsdl";public static void main(String[] args) throws Exception {// xml生成Document doc = DocumentHelper.createDocument();Element root = doc.addElement("request");String domains = "baidu.com,d01.com,ali.com";String[] domain = domains.split(",");for (String dd : domain) {root.addElement("domainName").addText(dd);}String xml = doc.asXML();byte[] bb = xml.getBytes();System.out.println(xml);// 准备接口需要的参数// 1,先对xmlAES加密byte[] skey = AESDemo.decodeHex("744d18b09a228b7f2bfd");byte[] iv = AESDemo.decodeHex("b0674233111f2");byte[] cc = AESDemo.encrypt(bb, skey, iv);// 2,Base64编码String request = Md5Base64Util.encodeBase64String(cc);// 模拟字符串String randVal = "aaasssdddfffghjklmnb";// 生成pwdhashString passWord = "ORJUZm8WIfLxqZIF";// CommProperties.USERSIGN;String pwdHash = Digests.sha256String((passWord + randVal).getBytes("utf-8"));JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance();Client client = dcf.createClient(testUrl);Object[] objects = client.invoke("query_accelerate_info", "79918c7a4a744fa34aaa", request, randVal,pwdHash, 1, 0);String xmlString = (String) objects[0];// 格式化打印Document docu = DocumentHelper.parseText(xmlString);OutputFormat format = OutputFormat.createPrettyPrint();// stringWriter字符串是用来保存XML文档的StringWriter stringWriter = new StringWriter();// xmlWriter是用来把XML文档写入字符串的(工具)XMLWriter xmlWriter = new XMLWriter(stringWriter, format);// 把创建好的XML文档写入字符串xmlWriter.write(docu);// 打印字符串,即是XML文档System.out.println(stringWriter.toString());}}


原创粉丝点击