axis2 WebService的发布与调用

1:准备:
    JDK:http://www.oracle.com/technetwork/java/javase/downloads/jdk6downloads-1902814.html

eclipse:http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/juno/SR2/eclipse-jee-juno-SR2-win32.zip

tomcat:http://tomcat.apache.org/download-60.cgi

axis2:http://axis.apache.org/axis2/java/core/download.cgi

eclipse的官方提供的axis插件工具,可以打包aar文件和生成客户端调用代码:http://axis.apache.org/axis2/java/core/tools/index.html

其中的Service Archive Wizard - Eclipse Plug-in和Code Generator Wizard - Eclipse Plug-in
下载完成的软件如图

2:配置环境:
    2.1:配置java环境变量(不赘述)。
    2.1:eclipse中axis2环境配置:Window->Perferences->Web Services->Axis2 perferences->Axis2 Runtime->Axis2 Runtime location,Browse选择解压axis2-1.6.2-bin.zip得到的axis2-1.6.2文件目录。如图

2.2:安装插件:解压axis2-eclipse-codegen-plugin-1.6.2.zip和axis2-eclipse-service-plugin-1.6.2.zip,把得到的两个jar包放入eclipse目录下的\plugins\中,重启eclipse。
    2.3:配置tomcat:解压apache-tomcat-6.0.36-windows-x64.zip(不赘述)。
    2.4:eclipse中tomcat配置:Window->Perferences->Server->Runtime Environments添加。
3:发布axis2:
    3.1:解压axis2-1.6.2-war.zip获得axis2.war并把它放到tomcat解压目录的webapps文件夹下,启动tomcat,浏览器中输入http://localhost:8080/axis2/,说明配置成功。

3.2:用eclipse的axis2插件发布web服务。
        3.2.1    在eclipse中new一个Dynamic Web Project,取名webserviceService。编写一个简单的webService服务器代码

 package org.web.service;

 public class HelloWorldService {
     public String sayHello(String name){
         return "Hello," + name;
     }
 }

3.2.2    在eclipse的空白workspace处,右键new->Other,在弹出的对话框中,找到Axis2 Service Archiver,双击->选择HelloWorldService所在项目的class路径

next->选中skip WSDL,Next->什么都不填NEXT->选中Generate the service xml automatically,NEXT->

填写HelloWorldService类的全路径,点击load,在下面的Method表中出现sayHello说明load成功,点击NEXT->

填写Output file location,点击Finish

3.2.2    右键点击webServiceService项目,刷新。出现my_service.aar文件

把此aar文件放到%tomcat_home%\webapps\axis2\WEB-INF\services下。浏览器中输入http://localhost:8080/axis2/services/HelloWorldService?wsdl,出现下图,说明发布成功。

4:用eclipse的Web Service Client生成客户端调用代码。
    4.1:在eclipse的空白workspace处右键new->Other->Web services->Web Service Client,选中,点击NEXT->出现

service definition填发布好的wsdl路径http://localhost:8080/axis2/services/HelloWorldService?wsdl,Client type默认,下面的下滑快拉到最上面,点击Server runtime:Tomcat v6.0 Server出现图:

在Server runtime中选择默认,Web service runtime选择Apache Axis2,点击Ok,返回,点击Client project:webServiceClient,出现图

在Client project的下拉列表中选择客户端代码存放的项目,本例选择webServiceClient。点击OK,返回,点击NEXT,进入下一个环节,然后点击Finish。

在src的source folder下出现org.web.service包,下面有HelloWorldServiceCallBackHandler.java和HelloWorldServiceStub.java文件,Web App Libraries也有更新,在WebContent目录下也出现axis2-web文件夹,以及WEB-INF等的更新。
    4.2:写webService调用代码。
            在webServiceClient项目中新建一个客户端测试文件如下:

package org.web.client;

import java.rmi.RemoteException;

import org.web.service.HelloWorldServiceStub;
import org.web.service.HelloWorldServiceStub.SayHelloResponse;

public class HelloWorldClient {

    /**
     * @param args
     * @throws RemoteException
     */
    public static void main(String[] args) throws RemoteException {
        String target = "http://localhost:8080/axis2/services/HelloWorldService";
        HelloWorldServiceStub stub = new HelloWorldServiceStub(target);
        // sayHello 为webService提供参数
        HelloWorldServiceStub.SayHello sayHello = new HelloWorldServiceStub.SayHello();
        sayHello.setName("jackii");
        SayHelloResponse eur = stub.sayHello(sayHello);
        String returnVal = eur.get_return();
        System.out.println(returnVal);
    }

}

运行上面代码Run As->Java Application,输出:

Hello,jackii

说明调用成功。
5:参考文档http://wenku.baidu.com/view/12501ed7195f312b3169a54b.html
6:服务端接收的参数为javaBean,返回list样例:
    6.1:创建服务。新建User.java

package org.web.service;

 public class User {
     private String id;
     private String name;
     public String getId() {
         return id;
     }
     public void setId(String id) {
         this.id = id;
     }
     public String getName() {
         return name;
     }
     public void setName(String name) {
         this.name = name;
     }
 }

ListService.java

package org.web.service;

 import java.util.ArrayList;
 import java.util.List;

 public class ListService {
     public List<User> getUserList(User user){
         List<User> returnList = new ArrayList<User>();
         returnList.add(user);
         for(int i=0;i<3;i++){
             User user1 = new User();
             user1.setId("00"+i);
             user1.setName("jack00"+i);
             returnList.add(user1);
         }
         return returnList;
     }
 }

文件目录如图

按照3.2说明重新发布服务(图3.4Output File Name重新起个名字)
6.2:创建客户端调用代码,步奏同4。得到图6.2所示两个文件ListServiceStub.java和ListServiceCallbackHandler.java

创建ListServiceClient.java

 package org.web.client;

 import java.rmi.RemoteException;

 import org.web.service.ListServiceStub;
 import org.web.service.ListServiceStub.GetUserListResponse;
 import org.web.service.ListServiceStub.User;

 public class ListServiceClient {

     /**
      * @param args
      * @throws RemoteException
      */
     public static void main(String[] args) throws RemoteException {
         String target = "http://localhost:8080/axis2/services/ListService";
         ListServiceStub stub = new ListServiceStub(target);
         ListServiceStub.GetUserList getUserList0 = new ListServiceStub.GetUserList();
         User user = new User();
         user.setId("clientTest");
         user.setName("ClientName");
         getUserList0.setUser(user);
         GetUserListResponse eur = stub.getUserList(getUserList0);
         User[] userArray = eur.get_return();
         for(int i=0;i<userArray.length;i++){
             System.out.println("id:"+userArray[i].getId()+"name:"+userArray[i].getName()+"\n");
         }
     }
 }

以java application方式运行,输出:

id:clientTestname:ClientName
id:000name:jack000
id:001name:jack001
id:002name:jack002

说明调用成功。

本文转自:http://www.blogjava.net/tianchijiaozi/archive/2013/03/15/396452.html

时间: 2024-08-26 03:39:40

axis2 WebService的发布与调用的相关文章

Axis2 webservice入门--Webservice的发布与调用

一.Webservice发布 参考 http://www.cnblogs.com/demingblog/p/3263576.html 二.webservice 调用 部分参考:http://www.cnblogs.com/demingblog/p/3264688.html 使用myeclipse中的axis2插件生成客户端代码 new -->others到如下界面:     点next 到如下界面: 现在我们想生成调用webservice的客户端代码,首先我们需要生成一个service.wsdl

webService的发布与调用

FM创建 首先,执行Tcode:SE37,进入函数创建界面. 在创建函数之前,先创建一个Function Group,或者使用系统中已经创建好的Function Group.自定义函数组方法如下: 执行Create Group功能后,弹出如下图所示对话框: 录入信息后,点击保存.然后返回到Function Builder界面,在Function Module文本框录入FM的名称:Z_CALCULATE,点击创建按钮,如下图所示: 点击保存按钮,进入FM编辑页面.如下图所示: 在Attribute

SAP 中 Webservice的发布和调用过程。

SICF的服务配置 交由Basis大佬处理,我们只说Abap端.建立RFC函数 用来做Webservice Provider . 用这个地址生成.xml文件后面Somanamger处理消费者接口 的逻辑端口时,以文件的形式导入. 第二部 创建消费者接受端口. 保存激活 成功. 第三步事务码SOAMANMGER   .调用和发布 太多了 不想截图了这就是结果了. 原文地址:https://www.cnblogs.com/hdchen/p/9190338.html

WEBSERVICE发布与调用

一.背景说明 最近在做一个任务,主要目的就是将客户SAP系统里的RFC函数发布成WebService,并在我们的前置机程序里面调用,得到返回的数据并经过解析处理后按照和原有逻辑类似的方式去处理. 二.具体操作 可以知道问题的关键在于WebService的发布与调用.因为之前在EBS系统里面部署配置过Intergrated soa gateway,并发布过Webservice接口.所以对相关概念有一定的了解,这次正好趁这个机会,算是重新加深一波理解了.这里主要记录下,过程中了解到的一些相关的东西以

webService总结(四)——使用axis2发布和调用webService

准备工作 Axis2 官网 http://axis.apache.org/  下载axis2相关资料 其中 axis2-1.6.2-bin.zip文件中包含了Axis2中所有的jar文件, axis2-1.6.2-war.zip文件用于将WebService发布到Web容器中.最后两个是axis2在eclipse中的插件. 大概说说这几个文件如何使用. 1.解压axis2-1.6.2-bin.zip到任意目录.然后在eclipse中按下图配置. 2.将axis2-1.6.2-war.zip文件解

axis2 webservice入门知识(JS,Java,PHP调用实例源码)

背景简介 最近接触到一个银行接口的案子,临时需要用到axis2 webservice.自己现学现总结的一些东西,留给新手.少走弯路. Axis2简介 ①采用名为 AXIOM(AXIs Object Model)的新核心 XML 处理模型,利用新的XML解析器提供的灵活性按需构造对象模型. ②支持不同的消息交换模式.目前Axis2支持三种模式:In-Only.Robust-In和In-Out.In-Only消息交换模式只有SOAP请求,而不需要应答:Robust-In消息交换模式发送SOAP请求,

【webservice】发布axis2的webservice服务端

axis2版本:axis2-1.5.4 准备工作:下载axis2-1.5.4-war.zip(生成服务端).axis2-1.5.4-bin.zip(axis2的jar包),jdk5(及以上版本).tomcat(端口我设成8086了) 手把手超级详细介绍axis2的webservice服务端的生成与发布. 1. 解压axis2-1.5.4-war.zip得axis2.war,把axis2.war放到tomcat的webapps目录, 启动tomcat就能加载axis2.war并生成新的axis2目

java中使用axis发布和调用webService

工作中需要调用webService服务,这里记录一下如何在java中发布和调用webService. 需要的jar包: 发布webService: package com.xzh.webservice; import javax.jws.WebMethod; import javax.jws.WebService; import javax.xml.ws.Endpoint; @WebService public class MyWebService { public String hello(S

python发布及调用基于SOAP的webservice

现如今面向服务(SOA)的架构设计已经成为主流,把公用的服务打包成一个个webservice供各方调用是一种非常常用的做法,而应用最广泛的则是基于SOAP协议和wsdl的webservice.本文讲解python环境下如何发布及调用一个基于SOAP的webservice,基于soaplib(发布)和suds(调用). OS:ubuntu 14.04  python:2.7.6 服务端: 1.安装: 服务端要使用的工具包是soaplib,遗憾的是现在也停止维护了,不过好在还能用,下载地址在http