`
booby325
  • 浏览: 386499 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

使用Axis2发布webservice并使用客户端调用.

 
阅读更多

目的:使用Axis2发布webservice并使用客户端调用.

1.到http://ws.apache.org/axis2/1_4_1/installationguide.html上面下载 axis2-1.4.1-bin.zip ,里面有JKD,Tomcat版本的要求.

2.下载到的axis2-1.4.1-bin.zip解压到axis2-1.4.1-bin目录.Copy lib目录到已有工程目录.

3.web.xml增加servlet配置.

<servlet> <description> </description> <display-name>Apache-Axis Servlet</display-name> <servlet-name>AxisServlet</servlet-name> <servlet-class>org.apache.axis2.transport.http.AxisServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet>

<servlet-mapping> <servlet-name>AxisServlet</servlet-name> <url-pattern>/services/*</url-pattern> </servlet-mapping>

4.启动已有问工程,测试是否报错.若有 javax.xml.包找不到的错误,建议使用 jdk1.6.或者找到jar包加载进去.

5.增加一个Class.

package example; public class HelloWorldService { public HelloWorldService() { } public String hello(String userName) { return "Hello axis2 service!" + userName; } public String helloNoParam() { return "测试!"; } }

6.手工配置 services.xml.(目录结构为:WEB-INF/services/HW/META-INF/services.xml,其中HW可以命名为其他.文件夹不存在的就新增.)

 

<serviceGroup>

<service name="HelloWorldService">

<description>Hello World Service</description>

<parameter name="ServiceClass" locked="false">example.HelloWorldService</parameter>

<operation name="hello" mep="http://www.w3.org/2004/08/wsdl/in-out">

<messageReceiver class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />

</operation>

<operation name="helloNoParam">

<messageReceiver class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />

</operation>

</service>

</serviceGroup>

 

7.重新打包并在Tomcat中运行.在IE中输入http://localhost:8080/testProject/services/HelloWorldService?wsdl,可以看到发布的服务,xml.有的浏览器中只会显示服务名,如Google Chrome.

8.使用Java调用刚发布的接口.

首先,使用个通用类(在某论坛里面看到的一个兄弟的通用方法.)

package example;

 

import java.util.Iterator;

 

import javax.xml.namespace.QName;

 

import org.apache.axiom.om.OMElement;

import org.apache.axis2.addressing.EndpointReference;

import org.apache.axis2.client.Options;

import org.apache.axis2.rpc.client.RPCServiceClient;

 

public class Axis2CommonClient {

public Axis2CommonClient() {

 

}

 

/**

* @param srvcUrl

*            访问的url

* @param namespace

*            命名空间

* @param operateName

*            你想调用的方法

* @param param

*            要传入的参数。

* @return

* @throws Exception

*/

public Object excute(String srvcUrl, String namespace, String operateName,

Object param[]) throws Exception {

QName qname = new QName(namespace, operateName);

RPCServiceClient client = new RPCServiceClient();

Options options = new Options();

options.setTo(new EndpointReference(srvcUrl));

options.setAction("urn:" + operateName);

client.setOptions(options);

OMElement element = client.invokeBlocking(qname, param);

if (element != null && !"".equals(element)) {

Iterator<?> values = element.getChildrenWithName(new QName(

namespace, "return"));

while (values.hasNext()) {

OMElement omElement = (OMElement) values.next();

return omElement.getText();

}

} else {

return element;

}

return "-1";

 

}

}

9.客户端代码.

 

package example;

 

public class TestClient {

public static void main(String[] args) throws Exception {

String url = "http://localhost:8080/testProject/services/HelloWorldService";

String namespace = "http://example";//此处的命名空间 example 应与发布的服务中的命名空间保持一致.

String operateName = "hello";

String[] param = new String[] { "xx" };

Axis2CommonClient axClient = new Axis2CommonClient();

Object obj = axClient.excute(url, namespace, operateName, param);

System.out.println(obj);

operateName = "helloNoParam";

obj = axClient.excute(url, namespace, operateName, param);

System.out.println(obj);

}

}

10.Run AS Java Application,打印出

 

 

Hello axis2 service!xx

测试!

11.可以运行.原理以及一些细节的配置,可以自行揣摩.
分享到:
评论

相关推荐

    axis2客户端调用webService接口,精简jar包

    本文将深入探讨如何使用Axis2客户端调用WebService接口,并且会特别关注如何精简所需的jar包。 首先,了解Axis2客户端的基本概念是至关重要的。Axis2客户端是用于与远程Web服务交互的工具,它允许开发者通过SOAP...

    axis2发布webservice和调用axis2服务接口

    本文将详细讲解如何使用Axis2来发布Web服务以及如何生成客户端代码来调用这些服务。 首先,让我们了解发布Web服务的过程: 1. **创建WebService**:在Axis2中,可以通过编写一个简单的Java类并暴露其方法作为Web...

    webservice-axis2客户端调用(多参).txt

    之前webservice客户端调用,使用RPC客戶端接口调用方法,但发现此种调用方式针对携参方式并不适用。最后经过多种方式测试选择了OMFactory......调用。经测试好用

    AXIS2作为客户端调用webService的demo

    用AXIS2作为客户端调用webService的demo:本人亲测可用,eclipse工程java项目包含完整代码和完整jar包, 只要用eclipse导入项目即可,运行控制台显示success或者false字符串,说明OK。

    基于axis2实现的webservice简单实现(客户端+服务端)。

    总的来说,这个压缩包提供了一个完整的基于Axis2的Web服务实现示例,包括服务端创建服务和客户端调用服务的所有必要组件。通过学习和理解这些文件,开发者可以更好地掌握如何在实际项目中利用Apache Axis2构建和使用...

    使用axis2创建webservice步骤以及客户端调用service服务代码

    使用axis2创建webservice步骤以及客户端调用service服务代码,如何编写和发布WebService,如何使用services.xml配置文件发布,如何用Java实现调用WebService的客户端程序等等

    axis2客户端调用axis1服务接口

    axis2客户端调用axis1服务接口 调用方式 使用RPC方式调用WebService,为了防止冲突可以增加 // 与weblogic的lib冲突配置 System.setProperty("javax.xml.stream.XMLInputFactory", ...

    axis客户端调用webservice

    java axis客户端调用webservice,可应用于ofbiz框架。 解决网络上共享代码两次调用后会出现timeout的BUG

    在自己的项目中利用axis2+spring发布webservice与客户端调用包括session

    标题中的“在自己的项目中利用axis2+spring发布webservice与客户端调用包括session”指出的是一个关于在实际项目开发中如何使用Axis2和Spring框架来发布Web服务,并且涉及了Web服务客户端调用以及会话(session)...

    axis2支持webservice 自动生成代码客户端服务端代码插件

    使用Axis2的Eclipse插件,开发人员可以导入一个WSDL文件,然后自动创建与之对应的Java服务实现类和服务部署配置文件,以及客户端的Stub类,使得调用Web服务如同调用本地方法一样简单。 在描述中提到的“基于eclipse...

    手写Axis1.4发布WebService以及客户端调用

    标题中的“手写Axis1.4发布WebService以及客户端调用”指的是使用Apache Axis1.4框架来创建和消费Web服务的过程。Apache Axis是用于构建Web服务的一个开源工具,它允许开发者将Java类转换为Web服务,并且提供客户端...

    AXIS2远程调用WebService示例(Eclipse+AXIS2)工具和所用包.rar

    本文将详细介绍如何使用Eclipse集成开发环境和AXIS2框架创建并调用WebService。首先,我们需要准备以下基础工具: 1. Eclipse IDE:这是一个强大的Java开发平台,支持多种开发任务,包括Web服务的开发和调试。 2. ...

    java客户端调用webservice所调用的axis1.4包和方法调用

    本方法是用axis1.4技术,实现java客户端调用webservice。已经可实现过可行的,如果不行可加我QQ号302633进行详细解析。

    axis2的webService服务器端和客户端开发项目

    - **WSDL生成**: Axis2会自动生成WSDL(Web服务描述语言),这是服务的接口规范,用于客户端调用。 3. **客户端开发** - **WSDL第一**: 客户端通常基于服务的WSDL来生成客户端代码,轴心提供wsdl2java工具,可以...

    Spring集成axis2实现webservice所用到的包

    总结来说,Spring集成Axis2实现Web服务涉及到Spring的IoC容器、服务的创建和发布、以及客户端的调用等多个环节。了解并掌握这些知识点,对于开发高质量的Web服务应用至关重要。在实际项目中,务必确保所有必要的库...

    使用axis手动编写webservice服务发布,并调用

    启动Servlet容器,Web服务即被发布并可供调用。 **步骤7:创建客户端** Axis同样提供了方便的客户端工具,如java2wsdl,用于生成客户端所需的Stub类。生成客户端代码: ``` java org.apache.axis.client....

    axis2发布webservice和调用实例

    - "51CTO下载-Axis2 WebService手册.doc":这份文档可能提供了关于Axis2 Web服务的详细步骤,包括环境配置、服务发布、客户端调用等,是初学者的良好指南。 - "服务端":可能包含服务端的源码或配置文件,供学习者...

    使用axis自动生成webservice客户端代码.pdf

    【使用Axis自动生成WebService客户端代码】是Web服务开发中的一个重要步骤,它简化了客户端调用Web服务的过程。本文档主要介绍了如何使用Axis工具生成客户端代码,以Myeclipse7.0为开发环境,axis1.4为工具版本,...

    myeclipse8.5使用axis2插件开发webservice服务并调用

    本文将详细介绍如何利用MyEclipse 8.5集成开发环境及其内置的Axis2插件来构建WebService服务,并演示如何通过客户端调用这些服务。 #### 二、准备工作 首先,确保您的开发环境中已经安装了以下软件: 1. Java ...

Global site tag (gtag.js) - Google Analytics