GVKun编程网logo

webservice应用一:Axis2(webservice axis调用)

7

以上就是给各位分享webservice应用一:Axis2,其中也会对webserviceaxis调用进行解释,同时本文还将给你拓展Axis2webservice之使用java调用webservice、

以上就是给各位分享webservice应用一:Axis2,其中也会对webservice axis调用进行解释,同时本文还将给你拓展Axis2 webservice 之使用java调用webservice、Axis2 WebService 客户端 Axis2 调用、Axis2 webservice入门--写个简单的webservice、axis2 发布 webservice 和 java调用webservice等相关知识,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

webservice应用一:Axis2(webservice axis调用)

webservice应用一:Axis2(webservice axis调用)

一、简介:

    Axis2 基于新的体系结构进行了全新编写,具有更强的灵活性并可扩展到新的体系结构,灵活的应用Web 服务标准和协议(如 WS-Security等)

    是新一代的SOAP引擎

二、准备

   axis2所需包下载:http://axis.apache.org/axis2/  ,可用最新版本1.6.2

   使用eclipse开发,版本 eclipse-jee-indigo-win32

   Tomcat版本:5.0 以上,本人用的6.0

三、配置axis2

1、Eclipse-->点击菜单windows-->Preferences-->WebServices--> Axis2 Preferences -->设置 Axis2 runtime location为Axis2下载后并解压的核心包的位置:

 

后Eclipse会自动检测包是否正确。如果successfully提示表示设置正确。

 

四、搭建eclipe的服务器service环境

1、创建server项目

  

 

2、选择Tomcat6.0

  

 

3、完成,这个时候我们就可以在eclipse中创建web项目了

五、创建dynamic web project

eclipse本身的dynamic web project类似MyEclipse的web project,如果在MyEclipse里创建dynamic web project的话,需要在创建新项目时,选中Show All Wizards:

和创建其他项目类似,还是从file->new->other->web->dynamic web project,

 

   

  在Eclipse创建一个 WebProject时,点击这个WebProject名字-->右键Properties-->Project Facets中可以设置Web Module。

 

六、服务器端webservice开发

1、eclipse发布WebService

OK,我们现在已经创建了一个WEB工程websercom,现在我们创建一个包com.test.webservice和一个用于测试的java类TestWebSer.java,代码如下


发布webservice

a、 选中WsPerformenceTest.java文件,点击右键,新建一个Web Service,然后Next

 

b、上下分别有个滑块,把上面的滑块滑至最上端(为Test service)。把下方滑块滑至第二格(Develop client)表示生成当前服务的客户端代码(完成后会在Eclipse中会自动生成一个名字为:[当前工程名+Client]的工程)。点击下一步直至完成。步骤如图:

 

 这里的Web Service runtime需要选择Apache Axis2

C、 启动Server,然后下一步。

D、.这些选项一直保持默认值到完成。我们发现Eclipse已经自动生成了一个新的客户端Web工程,还可以看到Web Service Explorer中显示我们刚刚对外公开的test服务,如下图:

当前列出了当前公开服务的方法及参数。当前的唯一方法test有一个InputBean类型的input参数。点击 Add,转到下图:

点击Go按钮。此时下面的 Status(状态窗口)中会显示调用该方法后的结果。点击Source可以浏览到已经被SOAP分装好该服务的XML文件。

 

显示生成webserviceClient

 

部署启动Tomcat后客户端显示

 

  产生wsdl    地址 http://localhost:8080/websercon/services/TestWebSer?wsdl

七、webservice客户端开发

    在六模块中已经介绍,在生成服务端webservice时直接用eclipse生成webservice客户端。

    但是,我们一把在开发的时候,不会用到这种方式,很多时候,我们能够拿到的只是wsdl地址,我们应该怎样做,OK,下面说一下,怎么webservice的客户端的开发,用一个接单的DEMO说明

1、新建一个web工程

    建立web工程做法如上:webClientTest工程

2、使用wsdl地址生成客户端代理等。

我们使用刚才建立的wsdl地址的服务器端

 

3、编辑客户端代码

package com.test.main;

import java.rmi.remoteexception;

import org.junit.Test;

import com.test.webservice.TestWebSerProxy;

public class TestService {
 @Test
 public void testAddService(){
  TestWebSerProxy proxy = new TestWebSerProxy();
  String str = null;
  try {
   str = proxy.add("1","2");
  } catch (remoteexception e) {
   // Todo Auto-generated catch block
   e.printstacktrace();
  }
  System.out.println("test axis webservice method add:" + str);
 }
}

3、部署测试就OK了。

Axis2 webservice 之使用java调用webservice

Axis2 webservice 之使用java调用webservice

在上一篇中写了一个简单了webservice,实现了一个sayHello功能。那么webservice写好之后我们如何使用Java程序来调用webservice呢?

一、java调用的webservice的第一种方式:RPC调用AXIS2 webservice
    下面这个方法是我抽象出来的一个方法,

import javax.xml.namespace.QName;

 org.apache.axis2.AxisFault;
 org.apache.axis2.addressing.EndpointReference;
 org.apache.axis2.client.Options;
 org.apache.axis2.rpc.client.RPCServiceClient;

public class Client {

    /**
     * @param args
     * @throws Exception
     */
    static void main(String[] args) throws Exception {
        // 调用PublishWebService
        String wsdlUrl = "http://localhost:8080/DigitalProduct/services/PublishWebService?wsdl";//webservice地址
        String method = "updatePublishSysParam"; //调用的那个方法
        Object[] param = new Object[] { "AASSDDFF" };//传递的参数值
        String namespaceUrl1 = "http://service.digitalproduct.tkbs.com";//命名空间
        Class[] opReturnType1 = new Class[] { String[]. };//返回值类型
        String result = axis2RPCInvoke(wsdlUrl,method,param,namespaceUrl1,opReturnType1);
        System.out.println(result);
    }

     * RPC调用AXIS2 webservice
     * 
     *  wsdlUrl
     *            服务地址 如:http://192.168.0.1:2597/aixs2/services/jqservice?wsdl
     *  methodName
     *            方法名 如<xs:element name="Receive">
     *  parameter
     *            方法参数 如Object[] opArgs = new Object[] { param };
     *  namespaceURI
     *            命名空间 如 :targetNamespace="http://server.test.com.cn">
     *  returnType
     *            返回类型 如字符串:Class[] opReturnType = new Class[] { String[].class
     *            };
     static String axis2RPCInvoke(String wsdlUrl,String methodName,Object[] parameter,String namespaceURI,Class[] returnType) {
        Object[] ret = null;
        RPCServiceClient serviceClient = ;
        try {
            /*
             * 此处RPCServiceClient 对象实例建议定义成类中的static变量 ,否则多次调用会出现连接超时的错误。
             */
            serviceClient = new RPCServiceClient();
            Options options = serviceClient.getoptions();
            EndpointReference targetEPR =  EndpointReference(wsdlUrl);
            options.setTo(targetEPR);
            QName opQName =  QName(namespaceURI,methodName);
            ret = serviceClient.invokeBlocking(opQName,parameter,returnType);
             System.out.println(((String[]) ret[0])[0]);
        } catch (AxisFault e) {
            e.printstacktrace();
        }
        return ((String[]) ret[0])[0];
    }
}

二、使用java调用webservice的第二种方式:使用myeclipse中的axis2插件生成客户端代码

new -->others到如下界面:

    点next 到如下界面:

现在我们想生成调用webservice的客户端代码,首先我们需要生成一个service.wsdl文件,选择第2个,点next,

在界面里边点击add folder 选择项目--》webroot--》webinf-->classes,输入好webservice那个类的全名后点击Test Class Loading ,这时候如果你选择的路径是对的,类全名是对的,就可以点next,否则next按钮式灰色的。如图:

然后点击next,这个界面中的内容基本不用修改,有一个service name,你可以改成你自己取。

继续点next 在界面中选择wsdl文件的输出路径,选择第一个,就是输出到当前的workspace,的某个项目下,选择第二个,就是输出到系统文件夹中,例如你可以选择桌面。

这里我选择第二个,然后点browse选择桌面,点finish,会看到桌面上有一个service.wsdl文件。

 

下面我们就可以根据这个wsdl文件生成客户端代码了。

首先建一个java项目,例如取名myclient

new -->others-->

选择第1个,点next.

在界面中点 browse找到你刚才生成service.wsdl文件。

点next,这个界面不用管,继续点next

这个时候需要选择代码生成的地方,选择当前工作的workspace,然后选择刚才新建的myclient如图:

点finsh,刷新myclient项目会看到src下多了两个java文件:TestServiceCallbackHandler   和 TestServiceStub

接下来就可以写java代码调用了,如下:

 myservice.service.TestServiceStub;

 Test {

     Exception 
      Todo Auto-generated method stub
        初始化Sub类
        TestServiceStub stub =  TestServiceStub();
        传递AxisServiceStub.ShowName对象,相关参数在这边赋值。
        TestServiceStub.SayHello command =  TestServiceStub.SayHello();
        command.setName("zhangsan");
        取得返回值
        String name = stub.sayHello(command).get_return();
        System.out.println(name);
    }

}

 

如此,第二种方式就写完了。

公司几个同事都喜欢第二种。但是,我个人喜欢用第一种。第二种方式如果插件使用熟练的话,很快就可以生产客户端代码,然后测试代码也可以很快写出来。

注:可能会出现错误,根据我的经历的错误经验,有以下情况:

    1.tomcat端口问题,你打开刚才插架自动生成的TestServiceStub 类 ctrl+f查找 http://localhost,查到后看他后面的端口是多少,是不是8080,?好像生成的就是8080,但是我们的tomcat可能被自己修改过,端口可能不是8080,所以这里你要改这个端口。

    2.spring的注入问题,如果你写的webservice是在spring整合的环境下,可能会报错误,一般是由 spring注入失败,导致xxxService类注入失败。关于这个我下一篇会详细解释。

    3.一切都正常,打断点调试看到方法执行成功了、执行完毕了,但是并没有成功的返回我们要的结果,而是报超时了,这时候,我们需要在TestServiceStub 中加入一行代码

        这行代码的作用是 规定超时时间 是多长,例如你可以设为10分钟。_operationClient.getoptions().setTimeOutInMilliSeconds(600000L);  //600*1000毫秒(10分钟

      我感觉这样设置不合理,但是可以解决这个错误,让你的程序运行成功,看到运行成功返回的结果。才有继续学习的劲头啊。

   

 

 

 

Axis2 WebService 客户端 Axis2 调用

Axis2 WebService 客户端 Axis2 调用

第一 RPC 方式,不生成客户端代码

第二,document 方式,不生成客户端代码

第三,用 wsdl2java 工具,生成客户端方式调用

 

package samples.quickstart.client;  
  
import javax.xml.namespace.QName;  
import org.apache.axiom.om.OMAbstractFactory;  
import org.apache.axiom.om.OMElement;  
import org.apache.axiom.om.OMFactory;  
import org.apache.axiom.om.OMNamespace;  
import org.apache.axis2.AxisFault;  
import org.apache.axis2.addressing.EndpointReference;  
import org.apache.axis2.client.Options;  
import org.apache.axis2.client.ServiceClient;  
import org.apache.axis2.rpc.client.RPCServiceClient;  
import samples.quickstart.StockQuoteServiceStub;  
import samples.quickstart.xsd.GetPrice;  
import samples.quickstart.xsd.GetPriceResponse;  
  
public class StockQuoteClient {  
  
  /** 
   * 方法一: 
   * 应用rpc的方式调用 这种方式就等于远程调用, 
   * 即通过url定位告诉远程服务器,告知方法名称,参数等, 调用远程服务,得到结果。 
   * 使用 org.apache.axis2.rpc.client.RPCServiceClient类调用WebService 
   * 
    【注】: 
     
        如果被调用的WebService方法有返回值 应使用 invokeBlocking 方法 该方法有三个参数 
          第一个参数的类型是QName对象,表示要调用的方法名; 
          第二个参数表示要调用的WebService方法的参数值,参数类型为Object[]; 
            当方法没有参数时,invokeBlocking方法的第二个参数值不能是null,而要使用new Object[]{}。 
          第三个参数表示WebService方法的 返回值类型的Class对象,参数类型为Class[]。 
         
         
        如果被调用的WebService方法没有返回值 应使用 invokeRobust 方法 
          该方法只有两个参数,它们的含义与invokeBlocking方法的前两个参数的含义相同。 
 
        在创建QName对象时,QName类的构造方法的第一个参数表示WSDL文件的命名空间名, 
        也就是 <wsdl:definitions>元素的targetNamespace属性值。 
   * 
   */  
  public static void testRPCClient() {  
    try {  
      // axis1 服务端  
// String url = "http://localhost:8080/StockQuote/services/StockQuoteServiceSOAP11port?wsdl";  
      // axis2 服务端  
      String url = "http://localhost:8080/axis2ServerDemo/services/StockQuoteService?wsdl";  
  
      // 使用RPC方式调用WebService  
      RPCServiceClient serviceClient = new RPCServiceClient();  
      // 指定调用WebService的URL  
      EndpointReference targetEPR = new EndpointReference(url);  
      Options options = serviceClient.getOptions();  
      //确定目标服务地址  
      options.setTo(targetEPR);  
      //确定调用方法  
      options.setAction("urn:getPrice");  
  
      /** 
       * 指定要调用的getPrice方法及WSDL文件的命名空间 
       * 如果 webservice 服务端由axis2编写 
       * 命名空间 不一致导致的问题 
       * org.apache.axis2.AxisFault: java.lang.RuntimeException: Unexpected subelement arg0 
       */  
      QName qname = new QName("http://quickstart.samples/xsd", "getPrice");  
      // 指定getPrice方法的参数值  
      Object[] parameters = new Object[] { "13" };  
        
      // 指定getPrice方法返回值的数据类型的Class对象  
      Class[] returnTypes = new Class[] { double.class };  
  
      // 调用方法一 传递参数,调用服务,获取服务返回结果集  
      OMElement element = serviceClient.invokeBlocking(qname, parameters);  
      //值得注意的是,返回结果就是一段由OMElement对象封装的xml字符串。  
      //我们可以对之灵活应用,下面我取第一个元素值,并打印之。因为调用的方法返回一个结果  
      String result = element.getFirstElement().getText();  
      System.out.println(result);  
  
      // 调用方法二 getPrice方法并输出该方法的返回值  
      Object[] response = serviceClient.invokeBlocking(qname, parameters, returnTypes);  
      // String r = (String) response[0];  
      Double r = (Double) response[0];  
      System.out.println(r);  
  
    } catch (AxisFault e) {  
      e.printStackTrace();  
    }  
  }  
  
  /** 
   * 方法二: 应用document方式调用 
   * 用ducument方式应用现对繁琐而灵活。现在用的比较多。因为真正摆脱了我们不想要的耦合 
   */  
  public static void testDocument() {  
    try {  
      // String url = "http://localhost:8080/axis2ServerDemo/services/StockQuoteService";  
      String url = "http://localhost:8080/StockQuote/services/StockQuoteServiceSOAP11port?wsdl";  
  
      Options options = new Options();  
      // 指定调用WebService的URL  
      EndpointReference targetEPR = new EndpointReference(url);  
      options.setTo(targetEPR);  
      // options.setAction("urn:getPrice");  
  
      ServiceClient sender = new ServiceClient();  
      sender.setOptions(options);  
        
        
      OMFactory fac = OMAbstractFactory.getOMFactory();  
      String tns = "http://quickstart.samples/";  
      // 命名空间,有时命名空间不增加没事,不过最好加上,因为有时有事,你懂的  
      OMNamespace omNs = fac.createOMNamespace(tns, "");  
  
      OMElement method = fac.createOMElement("getPrice", omNs);  
      OMElement symbol = fac.createOMElement("symbol", omNs);  
      // symbol.setText("1");  
      symbol.addChild(fac.createOMText(symbol, "Axis2 Echo String "));  
      method.addChild(symbol);  
      method.build();  
        
      OMElement result = sender.sendReceive(method);  
  
      System.out.println(result);  
  
    } catch (AxisFault axisFault) {  
      axisFault.printStackTrace();  
    }  
  }  
  
 /** 
  * 为SOAP Header构造验证信息, 
  * 如果你的服务端是没有验证的,那么你不用在Header中增加验证信息 
  * 
  * @param serviceClient 
  * @param tns 命名空间 
  * @param user 
  * @param passwrod 
  */  
  public void addValidation(ServiceClient serviceClient, String tns , String user, String passwrod) {  
    OMFactory fac = OMAbstractFactory.getOMFactory();  
    OMNamespace omNs = fac.createOMNamespace(tns, "nsl");  
    OMElement header = fac.createOMElement("AuthenticationToken", omNs);  
    OMElement ome_user = fac.createOMElement("Username", omNs);  
    OMElement ome_pass = fac.createOMElement("Password", omNs);  
      
    ome_user.setText(user);  
    ome_pass.setText(passwrod);  
      
    header.addChild(ome_user);  
    header.addChild(ome_pass);  
  
    serviceClient.addHeader(header);  
  }  
  
    
  /** 
   * 方法三:利用axis2插件生成客户端方式调用 
   * 
   */  
  public static void testCodeClient() {  
    try {  
      String url = "http://localhost:8080/axis2ServerDemo/services/StockQuoteService";  
      StockQuoteServiceStub stub = new StockQuoteServiceStub(url);  
      GetPrice request = new GetPrice();  
      request.setSymbol("ABCD");  
      GetPriceResponse response = stub.getPrice(request);  
      System.out.println(response.get_return());  
    } catch (org.apache.axis2.AxisFault e) {  
      e.printStackTrace();  
    } catch (java.rmi.RemoteException e) {  
      e.printStackTrace();  
    }  
  
  }  
  
  public static void main(String[] args) {  
     StockQuoteClient.testRPCClient();  
// StockQuoteClient.testDocument();  
    // StockQuoteClient.testCodeClient();  
  
  }  
}  

 

wsdl2java 用于根据 WSDL 生成相应的服务端和客户端代码的生成工具。
命令行格式为:WSDL2Java [options] -uri <url or path> : A url or path to a WSDL

例如:

wsdl2java -uri http://localhost:8080/cxfService_0617/services/Hellows?wsdl -s -o build\client

 

其中常用的 options 具体如下:
-o <path> : 指定生成代码的输出路径
-a : 生成异步模式的代码
-s : 生成同步模式的代码
-p <pkg> : 指定代码的 package 名称
-l <languange> : 使用的语言 (Java/C) 默认是 java
-t : 为代码生成测试用例
-ss : 生成服务端代码 默认不生成
-sd : 生成服务描述文件 services.xml, 仅与 - ss 一同使用
-d <databinding> : 指定 databingding,例如,adb,xmlbean,jibx,jaxme and jaxbri
-g : 生成服务端和客户端的代码
-pn <port_name> : 当 WSDL 中有多个 port 时,指定其中一个 port
-sn <serv_name> : 选择 WSDL 中的一个 service
-u : 展开 data-binding 的类
-r <path> : 为代码生成指定一个 repository
-ssi : 为服务端实现代码生成接口类
-S : 为生成的源码指定存储路径
-R : 为生成的 resources 指定存储路径
–noBuildXML : 输出中不生成 build.xml 文件
–noWSDL : 在 resources 目录中不生成 WSDL 文件
–noMessageReceiver : 不生成 MessageReceiver 类

Axis2 webservice入门--写个简单的webservice

Axis2 webservice入门--写个简单的webservice

上一篇介绍了webservice开发前的准备。下面开始写webservice。如果不了解axis2请看上一篇,如果是新手:建议一边看一边写代码,自己动手完成这个过程。

一、新建一个web项目

二、新建一个类,类名随便取,并写一个最简单的方法。如下

package com.webservice.myservice
public class TestService{
//
问好 public String sayHello(String name){ return "Hello,"+name; }
}

三、打包,这个时候需要用到上次安装好的插件。这里我就不上图了,

  new--》others--》Axis2 Service Archiver-->next-->

   在class filelocation中选择你项目webroot下的classes如(E:\Workspace\myservice\Webroot\WEB-INF\classes)

---》点击next,勾选 Skip WSDL--》next-->继续next--》勾选Generate the service xml au..lly-->点next

界面中service name 你可以随便写(如MyService),具体这个名字代表什么,继续下去,发布之后你就知道了,

界面中Class Name 写你刚才那个webservice类的全名,一我这个为例,这里我需要写com.webservice.myservice.TestService

---》点击load按钮,会加载我们service类,下面的框框下面会显示我们写的webservice方法,这里需要勾选Search declared methods only

-->next --》选择输出的路径,如桌面,输入一个Output File Name 这个名字就是将要输出的aar文件的名字。--》next,桌面上就会出现一个xxx.aar文件。

四,发布webservice到tomcat。

  1.将上一步骤中生存的xxx.aar文件复制到Tomcat6.0.20\webapps\axis2\WEB-INF\services下

 注:这个路径上一篇文章有提到,如果你的tomcat下没有这个路径,就把你下载的axis2.war文件放到Tomcat6.0.20\webapps下,然后重启tomcat,就可以看到这个文件夹了。

2.在一完成之后,启动tomcat,在浏览器中输入  http://localhost:8080/axis2/ 点击Services  可以看到如下:

  

解释:此处的MyService便是我们发布的webservice名称,下面的sayHello便是我们写的webservice方法。

这是,我们在浏览器输入:  http://localhost:8080/axis2/services/MyService/sayHello?name=zhangsan   如图所示

 表示我们调用名为MyService的webservice,中的sayHello方法,传递了一个name参数,参数值为zhangsan.返回到结果是Hello,zhangsan,这个结果便是我们需要的数据。

webservice写好了,我们在程序中如何调用呢?下一篇介绍如何使用java程序调用axis2 webservice。

 

axis2 发布 webservice 和 java调用webservice

axis2 发布 webservice 和 java调用webservice

1.下载与安装axis2:
apache-tomcat-6.0.35.zip
axis2-1.6.1-war.zip
解压,然后将axis2.war复制到tomcat的webapp目录中,安装完毕!
启动tomcat测试axis2是否安装成功:
http://localhost:8080/axis2

2.首先简单介绍一下webapp/axis2/的目录结构如下:
axis2
  |-- axis2-web
  |      |-- xxx.jsp...
  |-- meta-inf
  |-- WEB-INF
  |      |-- classes
  |      |-- conf
  |      |-- lib
  |      |-- modules
  |      |-- services
  |      |      |-- version-1.6.1.aar
  |      |-- web.xml
其中,services目录就是用来发布webservice的目录,这里有一个自带的service:version-1.6.1.aar

3.开发service端:HelloService .java
package com.service;
public class HelloService {
	public String getName(String name) {
		return "hello: " + name;
	}
}

4.配置文件:service.xml
<service name="HelloService">
	<description>HelloWorld webservice</description>
	<parameter name="ServiceClass">
		com.service.HelloService
	</parameter>
	<messageReceivers>
		<messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out"https://www.jb51.cc/tag/cme/" target="_blank">cmessageReceiver"/>
		<messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only"/>
	</messageReceivers>
</service>

5.建立如下的目录结构:
test
 |--  meta-inf
 |      |--services.xml
 |
 |--  com
 |      |--  service
 |              |--  HelloService.java
 |              |--  HelloService.class
这里test可以随便命名,然后要把test目录里面的所有文件打包成zip格式的,后缀必须是*.aar。
打包方法1,使用7-Zip压缩工具打包,格式选择zip,压缩之后,把文件的后缀改为aar,test.aar。
打包方法2,其实“con/...”这个部分是class文件,可以放入/webapps/WEB-INF/class目录下。也就是说打包的时候可以之打包“meta-inf/...”部分。而“con/...”部分可能会经常更改,在Eclipse开发过程中可以放入src目录中。
打包完成之后,然后将文件test.aar复制到services目录下面。重启tomcat,进行测试:
http://localhost:8080/axis2/services/listServices

6.开发客户端:RPcclient.java
package com.client;

import javax.xml.namespace.QName;
import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.client.Options;
import org.apache.axis2.rpc.client.RPCServiceClient;

public class RPcclient {
	public static void main(String[] args) throws Exception {
		RPCServiceClient client = new RPCServiceClient();
		Options options = client.getoptions();
		// 指定调用WebService的URL
		options.setTo(new EndpointReference("http://localhost:8080/axis2/services/HelloService"));

		// 指定getName方法的参数值
		Object[] objects = new Object[] { "超人" };
		// 指定getName方法返回值的数据类型的Class
		Class<?>[] classes = new Class[] { String.class };
		// 指定要调用的方法名:getName 和 WSDL文件中的命名空间:http://service.com
		// 注意:命名空间(http://service.com)与类HelloService的包名(com.service)有一定关系。
		QName qname = new QName("http://service.com","getName");

		String result = (String) client.invokeBlocking(qname,objects,classes)[0];
		System.out.println(result);
	}
}

7.运行客户端,端测试结果: 你好 超人

今天的关于webservice应用一:Axis2webservice axis调用的分享已经结束,谢谢您的关注,如果想了解更多关于Axis2 webservice 之使用java调用webservice、Axis2 WebService 客户端 Axis2 调用、Axis2 webservice入门--写个简单的webservice、axis2 发布 webservice 和 java调用webservice的相关知识,请在本站进行查询。

本文标签: