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

  • 相关阅读:
    idea中,引用不到项目中的类
    java代码中获取spring容器
    SpringBoot--ApplicationRunner接口
    二、Kafka 快速入门-linux命令行操作
    iOS
    文本输入框默认弹出中文的复制粘贴
    AppleId
    WeChat
    Universal Links在Swift上的应用
    协程的原理以及与线程的区别
  • 原文地址:https://www.cnblogs.com/xueershewang/p/15420715.html
Copyright © 2011-2022 走看看