zoukankan      html  css  js  c++  java
  • 调用webserver

    1:调用带有用户名密码的服务端接口  使用 axis调用

    ***********************类开始*********************************

    package com.test.common;

    import java.util.ArrayList; import java.util.List; import javax.xml.
    namespace.QName; import org.apache.axis2.AxisFault; import org.apache.axis2.addressing.EndpointReference; import org.apache.axis2.client.Options; import org.apache.axis2.engine.ListenerManager; import org.apache.axis2.rpc.client.RPCServiceClient; import org.apache.axis2.transport.http.HTTPConstants; import org.apache.axis2.transport.http.HttpTransportProperties; import org.apache.axis2.transport.http.HttpTransportProperties.Authenticator; public class test { public Object test1() { ListenerManager.defaultConfigurationContext = null; Object result = ""; try { // 本机tomcat端口默认为8081,参数是wsdl网址的一部分 EndpointReference targetEPR = new EndpointReference( "http://127.0.0.1:8081/webService/testService?wsdl"); RPCServiceClient sender = new RPCServiceClient(); Options options = sender.getOptions(); options.setTimeOutInMilliSeconds(2 * 20000L);// 超时时间20s options.setTo(targetEPR); options.setAction("test");// 使用axis 调用cxf发布的webservice需要指定action , 调用 axis发布的服务端不需要 // 添加用户名和密码 HttpTransportProperties.Authenticator authenticator = new HttpTransportProperties.Authenticator(); List<String> auth = new ArrayList<String>(); auth.add(Authenticator.BASIC); authenticator.setAuthSchemes(auth); authenticator.setUsername("user");// 用户名 authenticator.setPassword("be601473-1a83-4f93-a94d-31b66a1bfa73");// 密码 options.setProperty(HTTPConstants.AUTHENTICATE, authenticator); /** * 参数: 1:在网页上执行 wsdl后xs:schema标签的targetNamespace路径 <xs:schema targetNamespace="http://test.axiswevservice.com">
    * 2:<xs:element name="test"> ======这个标签中name的值
    */ QName qname = new QName("http://cewebservice.module.test.com/", "test"); String str = "客户端调用成功"; // 方法的入参 Object[] param = new Object[] { str }; Class<?>[] types = new Class[] { String.class }; // 这是针对返值类型的 /** * RPCServiceClient类的invokeBlocking方法调用了WebService中的方法。 * invokeBlocking方法有三个参数 第一个参数的类型是QName对象,表示要调用的方法名; * 第二个参数表示要调用的WebService方法的参数值,参数类型为Object[]; * 第三个参数表示WebService方法的返回值类型的Class对象,参数类型为Class[]。 * * 当方法没有参数时,invokeBlocking方法的第二个参数值不能是null,而要使用new Object[]{}。 */ Object[] response1 = sender.invokeBlocking(qname, param, types); System.out.println(response1[0]); result = response1[0]; } catch (AxisFault e) { // TODO Auto-generated catch block e.printStackTrace(); } return result; } }

    ****************************类结束*********************************

    其他例子:

    https://www.cnblogs.com/mracale/p/10578686.html

  • 相关阅读:
    DataGridView中绑定List泛型的问题 [轉]
    .NET 導入EXCEL後數值型toString會變成空問題
    Linq連接List時多值時使用方法
    SQL2008报表三种实现Reporting Service2008匿名访问的方法(转)
    IIS7 WCF HTTP 错误 404.3 Not Found
    sql2005取得TABLE主鍵及欄位名稱,說明
    MSSQL禁用/啟用TRIGGER
    IE6下a:hover span失效问题(转载)
    asp.ner上传文件限制(转载)
    css优先级(转载)
  • 原文地址:https://www.cnblogs.com/xueershewang/p/15420715.html
Copyright © 2011-2022 走看看