`

使用myEclipse,tomcat 和Axis发布webService

 
阅读更多

一.准备工作:

1.         安装axis。去官方网站http://ws.apache.org/axis/下载axis包,然后解压到任何一个目录。本例使用的是axis-bin-1_4.tar.gz ,解压到E:/axis-bin-1_4/axis-1_4

2.         开发环境准备。本例使用MyEclipse6.0 java j2ee 1.4库,web servertomcat6

二.创建web工程:

1. MyEclipse中新建web工程,名称为testAxis。工程目录为:D:/JavaProject/testAxis

2. testAxis部署到tomcat

3. 引入axis包: axis目录下的E:/axis-bin-1_4/axis-1_4 /lib/下的所有jar包拷贝到工程下面的WebRoot/WEB-INF/lib下,myelipse会自动添加到引用库:

 

4.         修改web.xml:如果没有特殊情况,最简单的方法就是用axis解压包中的web.xml直接替换testAxis工程的web.xml。例如本例,就用E:/ /axis-bin-1_4/axis-1_4/webapps/axis/WEB-INF/web.xml替换工程testAxis下的web.xml

三.创建webservice

1.       在工程testAxis里新建要实现方法的接口:本例新建sayHelloToCkp.java,放在com.ckp包中。

 

package com.ckp;

 

public interface sayHelloToCkp {

    public String sayHello ();

}

2. 把该类生成wsdl文件:

Axis里有一个Java2WSDL方法,用于把java类生成wsdl。当然你可以写命令行手动执行这个方法。这里讲下使用MyEclipse来运行这个方法。

sayHelloToCkp.java类文件上右键,Run As——》Open Run Dialog:

 

弹出窗口,新建一个configuration,下图1处,然后

Main选项卡中的main class 输入:

   org.apache.axis.wsdl.Java2WSDL

 

Arguments选项卡中的program arguments输入,如下图

-o ckp.wsdl

  -l "http://localhost:8080/testAxis/services/ckp"

  -n "urn:ckp"

  -p"com.ckp" "urn:ckp"

com.ckp.sayHelloToCkp

 

然后点击Run。会在工程目录D:/JavaProject/testAxis下生成ckp.wsdl文件。

 

3.       wsdl生成服务类

axis里面有WSDL2Java的方法(Java2WSDL相反),用于把wsdl文件生成java service类。当然你还可以写命令行手动执行这个方法。这里讲下使用MyEclipse来运行这个方法。

同上,还是右键Run As——》Open Run Dialog,弹出窗口,新建configuration。这次使用

org.apache.axis.wsdl.WSDL2Java 

参数是

-t -B -v -D -s -p com.ckp.server D:/JavaProject/testAixs/ckp.wsdl

 

如下图:

 

 

 

Run后,将在项目的根目录下生成相关的服务类、build.xmldeploy.wsdd,undesploy.wsdd等。我们把他们拷贝到工程里的src下即可(注意包的位置):

 

4.       服务的部署和生成server_config.wsdd

先启动tomcat,然后运行命令行cmd,到达web服务器里类和deploy.wsdd所在的目录,如本例的是c:/apache-tomcat-6.0.14/webapps/testAxis/WEB-INF/classes/com/ckp/server

执行如下命令:

java -Djava.ext.dirs=E:/axis-bin-1_4/axis-1_4/lib org.apache.axis.client.AdminClient -lhttp://localhost:8080/testAxis/services/ckp?wsdl deploy.wsdd

 

前面的路径是axis解压路径里的lib路径,后面是未来的servicewsdl地址。

生成成功后,c:/apache-tomcat-6.0.14/webapps/testAxis/WEB-INF/下便可看到server-config.wsdd文件。

5.       测试:

WebService的实现类CkpSoapBindingImpl.java里添加如下代码:

package com.ckp.server;

 

public class CkpSoapBindingImpl implements com.ckp.server.SayHellowToCkp{

    public java.lang.String sayHello() throws java.rmi.RemoteException {

        return "hello you";

    }

}

 

重启tomcat,输入http://localhost:8080/testAxis/services 访问。

四.生成客户端:

有了WSDL文件,与生成服务器代码相同,只是参数不同,也是生成在项目根目录下:如下图:

 

 

 

注:本例中,如果不想保留原来的接口类sayHelloToCkp.java,完全可以在最开始时就把接口类放在com.ckp.server下,然后在第三步第3小步中,再把它覆盖。

 

五、客户端的使用(PS:原文没有,自己补上的)

1、SayHelloToCkp.java ——服务接口方法类。这个类是一个Web Service的服务接口方法类,客户端需要通过这个类来调用服务器端所提供的这个服务的接口和方法。

2、SayHelloToCkpService.java——服务接口类。通过这个类来得到Web Service的服务接口,ServiceLocator类实现这个类的接口。

3、SayHelloToCkpLocator.java——服务地址类。在这个类中设置服务地址,进而得到服务接口。

4、SayHelloToCkpStub.java——Stub类。它实现了Axis调用JAX-RPC环境的过程。

调用客户端的过程:先创建一个ServiceLocator的实例,再通过ServiceLocator的实例创建服务接口的实例,直接调用服务接口实例的方法。如下所示。

 

[java] view plaincopy
 
  1. //use a mail client webservice  
  2.     SayHelloToCkpServiceLocator ckpServiceLocator = new SayHelloToCkpServiceLocator();  
  3.     SayHelloToCkp sayHelloToCkp = ckpServiceLocator.getckp();  
  4.     String result = sayHelloToCkp.sayHello();  
  5.     System.out.println("调用WEBSERVICE结果:" + result);  

  

 

Ok.关于WebService的使用已经完整了。

 

附录:WSDL2Java的参数含义

WSDL2Java Reference

Usage:  java org.apache.axis.wsdl.WSDL2Java [options] WSDL-URI 
Options: 
        -h, --help 
                print this message and exit 
        -v, --verbose 
                print informational messages 
        -n, --noImports 
                only generate code for the immediate WSDL document 
        -O, --timeout <argument> 
                timeout in seconds (default is 45, specify -1 to disable) 
        -D, --Debug 
                print debug information 
       -W, --noWrapped
                turn off support for "wrapped" document/literal
        -s, --server-side 
                emit server-side bindings for web service 
        -S, --skeletonDeploy <argument> 
                deploy skeleton (true) or implementation (false) in deploy.wsdd. 
                Default is false.  Assumes --server-side. 
        -N, --NStoPkg <argument>=<value> 
                mapping of namespace to package 
        -f, --fileNStoPkg <argument> 
                file of NStoPkg mappings (default NStoPkg.properties) 
        -p, --package <argument> 
                override all namespace to package mappings, use this package 
                 name instead 
        -o, --output <argument> 
                output directory for emitted files 
        -d, --deployScope <argument> 
                add scope to deploy.xml: "Application", "Request", "Session" 
        -t, --testCase 
                emit junit testcase class for web service 
        -a, --all 
                generate code for all elements, even unreferenced ones 
        -T, --typeMappingVersion 
                indicate 1.1 or 1.2. The default is 1.1 (SOAP 1.1 JAX-RPC compliant.                 1.2 indicates SOAP 1.1 encoded.) 
        -F, --factory <argument> 
                name of a custom class that implements GeneratorFactory interface                 (for extending Java generation functions)
        -i, --nsInclude <namespace>
                namescape to specifically include in the generated code (defaults to all namespaces unless specifically excluded with the -x option)
        -x, --nsExclude <namespace>
                namespace to specifically exclude from the generated code (defaults to none excluded until first namespace included with -i option)
        -p, --property <name>=<value>
                name and value of a property for use by the custom GeneratorFactory
        -H, --helperGen 
                emits separate Helper classes for meta data 
        -U, --user <argument> 
                username to access the WSDL-URI 
        -P, --password <argument> 
                password to access the WSDL-URI 
        -c, --implementationClassName <argument> 
                use this as the implementation class 
        -w, --wrapArrays 
                Prefer generating JavaBean classes like "ArrayOfString" for certain schema array patterns (default is to use String [])

 

分享到:
评论

相关推荐

    使用myEclipse,tomcat和Axis发布webService.pdf

    ### 使用myEclipse, tomcat和Axis发布WebService详解 #### 一、准备工作: 1. **安装Axis**: - 访问官方网站 [http://ws.apache.org/axis/](http://ws.apache.org/axis/) 下载 Axis 包。 - 本示例中使用的是 `...

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

    ### 使用MyEclipse 8.5与Axis2插件开发WebService服务及调用详解 #### 一、前言 在Web开发中,WebService作为一种重要的分布式系统实现方式,被广泛应用于不同平台之间的通信。本文将详细介绍如何利用MyEclipse ...

    myeclipse快速开发axis2webservice

    使用Axis2,你可以快速地创建、发布和消费Web服务。 要使用MyEclipse开发Axis2 Web服务,你需要先确保安装了Axis2插件。这通常可以通过MyEclipse的更新中心完成。一旦插件安装完毕,你可以在MyEclipse中创建一个新...

    myEclipse10+axis2+tomcat6.0发布WebService.pdf

    本文将介绍如何在myEclipse10中使用Axis2插件与Tomcat6.0发布WebService。首先,我们需要了解Axis2是Apache软件基金会的一个开源项目,它是一个Web服务引擎,用于处理Web服务的发布、部署和管理。myEclipse10是一款...

    myEclipse10+axis2+tomcat6.0发布WebService.docx

    在本教程中,我们将探讨如何在myEclipse10中使用Axis2框架和Tomcat6.0服务器来发布Web服务。 **Axis2** 是Apache软件基金会开发的一个Web服务引擎,它允许开发者创建和部署Web服务。Axis2提供了高性能和灵活性,...

    axis2+myeclipse开发webService

    本教程将详细讲解如何使用Axis2和MyEclipse来开发Web服务。 首先,我们需要理解Web服务的基本概念。Web服务基于SOAP(Simple Object Access Protocol)协议,通过HTTP协议进行传输,使用WSDL(Web Services ...

    webservice+axis2+myeclipse+tomcat

    通过以上步骤,你将能够成功地使用 Axis2 和 MyEclipse 在 Tomcat 上创建、部署 WebService,并生成及使用客户端代码进行调用。阅读提供的文档《MyEclipse+AXIS2.doc》和《WebService之axis2的使用.doc》将更深入地...

    MyEclipse下开发Web Service(Axis)

    在深入探讨如何使用MyEclipse和Axis开发Web Service之前,我们需要确保所有必要的软件都已就位,包括Java开发环境、MyEclipse、Axis API以及Web容器如Tomcat。 **1.1 软件下载** - **Tomcat 5.5**:可从官方源下载...

    myeclipse10 axis2 插件

    【标题】"myeclipse10 axis2 插件"涉及的是在MyEclipse 10集成开发环境中安装和使用Axis2插件的相关知识。MyEclipse是基于Eclipse的一款强大的Java EE集成开发工具,而Axis2是Apache软件基金会开发的一个Web服务框架...

    myeclipse8.5+axis2插件 生成webservice服务并调用-----代码

    ----------示例包括: 普通数据类型 ...使用axis2通过自编写的server端生成wsdl,通过wsdl生成服务(aar,将aar文件放入tomcat/webapps/axis2/WEB-INF/services下),再通过wsdl生成客户端,通过客户端调用服务

    Axis2发布和调用webservice

    描述了axis2如何发布webservice,如果是用MyEclipse来发布,需要安装插件,把你发布后的.aar文件放 入/web/WEB-INF/services/目录中就能被访问和调用,有点繁琐,但axis2功能十分强大,方法的返回类型不仅可 以用...

    用axis2+Tomcat5.5+MyEclipse7.5部署和访问Web服务

    本文主要介绍了如何使用Axis2、Tomcat 5.5和MyEclipse 7.5来部署和访问Web服务。首先,详细列出了所需的软件版本和下载资源,包括Axis Eclipse插件、Axis2 War包、Tomcat以及MyEclipse。接下来,文章讲述了部署过程...

    Axis2集成SSH搭建WebService支持事务(图文详解含核心代码)

    使用MyEclipse创建一个新的Web Project,例如命名为`Axis2SSHWebService`。 三、搭建SSH框架 1. **复制SSH依赖**:将SSH框架的jar包复制到项目的`WEB-INF\lib`目录。 2. **构建包结构**:创建SSH框架典型的包结构...

    myeclipse6.5 下axis2插件的安装

    【知识点详解】 在MyEclipse 6.5中安装Axis2插件是为了支持开发Web服务。...使用Axis2提供的工具可以极大地提高开发效率,同时利用MyEclipse的集成开发环境特性,可以更轻松地管理和调试Web服务项目。

    axis2实现webservice

    ### Axis2实现WebService知识...通过以上步骤,可以实现一个完整的基于Axis2的WebService应用,包括服务端的发布和客户端的调用。这为开发者提供了一个清晰的指南,帮助他们更好地理解和使用Axis2进行WebService开发。

    基于axis的webservice项目示例源码

    基于apache第三方架包axis编写的一套简单webservice示例项目(含源码),该项目基于myeclipse环境部署,可以直接导入myeclipse部署到tomcat等服务器运行。

Global site tag (gtag.js) - Google Analytics