WebService客户端调用服务器数据库

一、环境准备
    Tomcat6.0 java_JDK_1.6 Axis2 Ant MyEclipse6.5
    需要注意的是:以下环境变量需要配置
        JAVA系列、Axis2、Ant

二、插件准备
    生成WebService所需要的wsdl文件及反向生成代码需要用到以下插件。
    以下列出下载地址:
        http://archive.apache.org/dist/ws/axis2/tools/1_4/
    在该地址下下载:axis2-eclipse-codegen-wizard-1.4.zip
            axis2-eclipse-service-archiver-wizard-1.4.zip
    安装步骤:
        将插件解压缩到与 D:\Program Files\MyEclipse 6.5\eclipse\plugins 类似的目录中,
        将Axis2_Codegen_Wizard_1.2.1改名为 org.apache.axis2.tool.codegen.eclipse.plugin.CodegenWizardPlugin,
        将Axis_Service_Archiver_1.0.0改名为 org.apache.axis2.tool.Axis_Service_Archiver_1.0.0
    如果安装重启没有出现 Axis2 Wizards 请参见
    http://hi.baidu.com/apolorwang/blog/item/c58dcb22cf7fe8f5d6cae23c.html/cmtid/c79a8588b5d6579ea5c272b7

三、编写服务器端代码
    1、编写完代码后产生所有工程的jar包

       
    2、根据jar包产生所需要的wsdl
        使用File-->new-->other--> Axis2 Wizards 目录下的Axis2 Code Generator
        选择从Java源文件生成WSDL选项后点击下一步输入你需要使用的Service类的完整类名(包名+类名)
        点击 Add Jar 后选择步骤1中生成的Jar包。最后是点击测试加载类,提示成功后点击完成按钮。
            注意:    在Axis2的安装目录中的lib下缺少backport-util-concurrent-3.1.jar会导致生成不了代码的错误。
                - copy %AXIS2_HOME%\lib\backport-util-concurrent-3.1.jar 到下列文件夹
                    %ECLIPSE_HOME%\plugins\Axis2_Codegen_Wizard_1.3.0\lib,
                - 注册此 jar 包: 編輯 %ECLIPSE_HOME%\plugins\Axis2_Codegen_Wizard_1.3.0\plugin.xml ,
                    在 <runtime> 內加入下面的字串:
                        <library name="lib/backport-util-concurrent-3.1.jar">
                            <export name="*"/>
                        </library>

                 若问题仍存在, 尝试改变Eclipse 使用的 JRE, 换成 JAVA 6
               - 使用 JRE 1.6 启动 Eclipse 后, 若仍有问题, 试着加入 -clean 参数启动 Eclipse, 清除 osig cache:
          eclipse.exe -vm "c:\java\jre1.6.0_05\bin\java.exe" -clean -console -consoleLog -debug -vmargs -Xmx384M
- 关闭 Eclipse 后, 再以一般方式启动 Eclipse, 应可解决问题

相关问题地址:http://www.blogjava.net/CrazyJava/archive/2009/05/10/223263.html

    3、根据步骤2产生的wsdl的文件反向生成服务器与客户端得源代码。
        使用File-->new-->other--> Axis2 Wizards 目录下的Axis2 Code Generator
        选择从WSDL文件生成点击下一步选择步骤2生成的WSDL文件-NEXT->出现生成代码的具体策略选择。
        Codegen option 我这里只有default与custom两个选项 选择custom,下面就有很多东西可以选择了
        输出语言肯定是Java了;ServiceName好像也不能修改是你在步骤2中决定的;
        端口名称就默认吧,其他的我也不知道(如果哪位高人知道请补充一下);下面一个是数据绑定模式,我就用的adb的,
        有adb、xmlbean、jibx、none;custom package name 就默认吧 (这里翻译什么好?)
            测试用例的生成就不要选了 感觉没什么用 会吧生成的代码弄乱的
        代码的生成建议分两部:生成服务器端代码与生成客户端代码(代码生成到2个文件夹吧)
            客户端的就选择只用同步方式生成吧
            服务器端得代码就只选择生成services.xml
            点击下一步就是选择生成代码位置:工程路径与本地路径

    4、使用ant编译步骤3生成的代码产生Jar包与aar包还有相应客户端需要引用的包。
        这里基本使用2个命令就可以搞定了 1:ant  2:ant jar.all
   
    5、配置服务器端
        引入Axis2所有的Jar包,配置web.xml。这个配置比较常见可以参见下载Axis2中的war包
        引入服务器端生成的jar包。
        在WEB-INF下建立services文件夹,把步骤4中生成的.aar包放到里面  .aar文件中会包含有class与META-INF文件夹
            META-INF文件夹有3个文件2个最重要的文件时services.xml与一个.wsdl文件
        找到服务器端得生成代码会发现一个由 “服务名”+Skeleton组成的Java类,将它放到你选择的服务类相同的包中。
            此时这个类中有所有你希望对外公布的接口方法,但所有的方法都只是抛出了一个异常。这里需要将方法
            的实现重写为你需要的业务逻辑。然后return回给客户端。
   
    完成后可以通过以下方式测试你服务器的部署是否成功:
        <你工程的发布地址>/services/UserService?wsdl
            如果正常显示WSDL中的内容则发布成功!

    6、配置客户端
        引入Axis2所有的Jar包,配置web.xml。这个配置比较常见可以参见下载Axis2中的war包
        引入客户端器端生成的jar包。
        可以引用服务代理类来调用服务器端代码了。这里客户端得请求都会传给步骤5中“服务名”+Skeleton组成的这个类

 

 

 

图片上传好慢 算了 截图了 jar包自己下吧

 

补充一点因为安装的JDK1.6所以在自动编译生成的代码都是基于JDK1.6的,所以在发布服务器端得时候工程的编译环境是6.0而不是5.0

 

 

刚看见一个跟我这个差不多的网址:

    http://blog.csdn.net/xx_liuhui/archive/2008/10/14/3073270.aspx    里面有很多图片描述

你可能感兴趣的:(eclipse,xml,ant,webservice,MyEclipse)