zoukankan      html  css  js  c++  java
  • spring调用wcf以及配置过程

    原文出自于   

    http://www.blogjava.net/downmoon/archive/2010/08/24/329786.html

    我们看看生成的WSDL

    邀月工作室

    邀月工作室

    第二步:调用WCF生成的WSDL生成java客户端。

    首先,请允许我介绍下axis2,它的官方地址:http://ws.apache.org/axis2/

    这是一个java平台的web service解决方案。我们最常用的是WSDL2Java和Java2WSDL两个功能。

    关于Web service的另一个解决方案是xFire,我没试过。

    关于命令行执行WSDL2Java,我也没有执行成功! 我这里介绍的是Code Generator Wizard - eclipse Plug-in,一个Eclipse的插件。而且是在参考了众多解决方案才配置成功!

    特别感谢yycxbjl的这篇文章:http://www.cnblogs.com/yycxbjl/archive/2010/06/14/1758063.html

    我的Java整个配置环境:

    1.安装JDK并配置环境变量

     JAVA_HOME=D:2000JavaJDKUpdate(注意,不带版本号是为了以后升级时只复制文件,而不必修改环境变量。)
    path=%JAVA_HOME%in;
    classpath=.;%JAVA_HOME%lib;%JAVA_HOME%lib ools.jar

    2.下载并安装Eclipse3.6,就是大家熟悉的太阳神Helios(解压即可)
      解压到:D:2000JavaEclipse

    3.下载Tomcat6.0.29(本文中使用的是绿色版,故解压即完成)
      解压到:D:2000Java omcat(注意,不带版本号是为了以后升级时只复制文件,而不必修改环境变量。)
      由于安装的是tomcat6.0不用配置tomcat的环境变量,至于以前的版本可以查资料。
      需要设置TOMCAT_HOME,CATAlINA等环境变量


    4.从   http://ws.apache.org/axis2/download/1_4_1/download.cgi下载 axis2-1.4.1-bin.zip 
    解压到:D:2000JavaAxis2,注意不要下载Axis2 1.5.1,原因yycxbjl说: “最新版的 1.5.0 与 1.5.1 中没有 backport-util-concurrent-3.1.jar, 无法解决:使用axis2-eclipse-codegen-wizard插件,从wsdl文件生成java文件时出错无法继续的问题,故不使用。)

    5.下载1.4.1版的 axis2-eclipse-codegen-wizard 与 axis2-eclipse-service-archiver-wizard

    http://ws.apache.org/axis2/tools/1_0/eclipse/wsdl2java-plugin.html#operation1

    (但解压后里面显示是1.3.0, 解压到:D:2000javaEclipsedropins  (连压缩包中的根目录一起解压出来)。也可以用传统的link方法部署。

    复制  D:2000JavaAxis2libackport-util-concurrent-3.1.jar 与 geronimo-stax-api_1.0_spec-1.0.1.jar
    到:D:2000JAVAEclipsedropinsAxis2_Codegen_Wizard_1.3.0lib,  并编辑:D:2000JavaEclipsedropinsAxis2_Codegen_Wizard_1.3.0plugin.xml
    在 runtime 下 添加 
          <library name="lib/backport-util-concurrent-3.1.jar">
             <export name="*"/>
          </library>
          <library name="lib/geronimo-stax-api_1.0_spec-1.0.1">
             <export name="*"/>
          </library>

    将Axis2_Codegen_Wizard_1.3.0重命名为Axis2_Codegen_Wizard_1.4.1,(这是整个部署的关键!这里邀月折腾了整整一天!)


     

    新建一个Java project,命名为GetWCFInfoByJavaClient,并在新项目中添加新向导,File-New

    此时,我们可以看到期待已久的wizard界面:
    邀月工作室

    邀月工作室

    邀月工作室

    邀月工作室

    邀月工作室

    邀月工作室

    此进,在新建的 GetWCFInfoByJavaClient 项目中建一个package,命名为org.tempuri,与前面自定义的命名空间一致。将生成的两个类文 件,ServiceCallbackHandler.java和ServiceStub.java文件添加进来,并在jreSE1.6库中添加 d:2000JavaAxis2lib下所有jar文件的引用。

    注意此时有个特殊的文件,即Axis2_Codegen_Wizard_1.4.1libaxis2-1.4.1.jar,需要手动复制到d:2000javaaxis2lib下并添加到项目的jre库中,这是邀月第二个卡壳的地方,琢磨了好久,慎之慎之。

    项目的结构应该如下图:
    邀月工作室
     

    eclipse的命名空间提示就是比vs强啊!很喜欢Ctrl+1。呵呵。微软要是能做到这点,那该多好啊!

    要命的是,此时库都添加完成,检查代码也无误,居然编译错误,提示:

    Access restriction: The type AxisFault is not accessible due to restriction on required library D:2000JavaAxis2libaxis2-kernel-1.4.1.jar


     

    邀月工作室

    这下我傻眼了,于是赶紧google,这两天google.com老是无故罢工,真是祸不单行,终于找到一篇老外的文章,说是如下,即可解决:
        * Go to the Build Path settings in the project properties. Windows -> Preferences -> Java Compiler
        * Remove the JRE System Library
        * Add another JRE with a "perfect match"
        * clean and build your project again. It worked for me.

    试了下,我的默认jre环境果然是JDK5,于是换为jre system library

    邀月工作室


    邀月工作室

    邀月工作室

    终于编译成功!看到曙光了,

    邀月工作室

    此时,最后的工作就是在Main中调用stub得到我们想要的服务结果了,简单方法,将刚才生成的测试类的方法略作修改,即可运行。如下:
    邀月工作室

    这正是我们想要的结果。

  • 相关阅读:
    MATLAB计算机视觉与深度学习实战
    硬件创业:从产品创意到成熟企业的成功路线图
    Xcode5 创建模板和UIView 关联XIB
    iOS Development: Proper Use of initWithNibName:bundle: Affects UITableViewController
    自定义UIViewController与xib文件关系深入分析
    UIViewController XIB/NIB加载过程
    ios多视图开发中:xib与UIViewController的关联
    UIAlertView、UIActionSheet兼容iOS8
    Xcode6中怎么添加空工程模板
    [OC Foundation框架
  • 原文地址:https://www.cnblogs.com/lvk618/p/4525089.html
Copyright © 2011-2022 走看看