• 调用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

  • 相关阅读:
    服务器学习
    第七章节 排序
    第六章节 优先队列/堆
    用cmd运行java时的问题
    转载一下如何联系口语
    在翻译群里看到的一个句子的翻译
    Android EditText的设置(转)
    荐 android 如何打包自定义控件(转)
    Android 自定义 SpinnerButton(转)
    Android PopupWindow的使用技巧(转)
  • 原文地址:https://www.cnblogs.com/xueershewang/p/15420715.html
Copyright © 2020-2023  润新知