邀月

          從.net中走來的Java愛好者
          posts - 22, comments - 10, trackbacks - 0, articles - 0
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          《Java與WCF交互(一):Java客戶端調用WCF服務》一 文中,我描述了用axis2的一個Eclipse控件生成WCF的Java客戶端代理類,后來有朋友建議用Xfire、CXF,一直沒有嘗試,今天有朋友 指出JDK6可以用java自帶的一個WSImport工具,試了下,果然很爽,這是一個exe文件,位于%JAVA_HOME%"\bin下,它的官方使 用說明,見:http://download-llnw.oracle.com/javase/6/docs/technotes/tools/share/wsimport.html,主要參數:

          Option

          Description

          -d <directory>  

          Specify where to place generated output files

          -b <path>  

          Specify external JAX-WS or JAXB binding files (Each <file> must have its own -b)

          -B <jaxbOption>

          Pass this option to JAXB schema compiler

          -catalog

          Specify catalog file to resolve external entity references, it supports TR9401, XCatalog, and OASIS XML Catalog format. Please read the documentation of catalog and see catalog sample.

          -extension  

          Allow vendor extensions (functionality not specified by the specification). Use of extensions may result in applications that are not portable or may not interoperate with other implementations

          -help  

          Display help

          -httpproxy:<host>:<port>  

          Specify an HTTP proxy server (port defaults to 8080)

          -keep  

          Keep generated files

          -p  
          Specifying a target package via this command-line option, overrides any wsdl and schema binding customization for package name and the default package name algorithm defined in the specification
          -s <directory>  

          Specify where to place generated source files

          -verbose  

          Output messages about what the compiler is doing

          -version  

          Print version information

          -wsdllocation <location> 
          @WebServiceClient.wsdlLocation value
          -target  
          Generate code as per the given JAX-WS specification version. version 2.0 will generate compliant code for JAX-WS 2.0 spec.
          -quiet  
          Suppress wsimport output

          示例:wsimport -s JavaSrc http://stockquote.xyz/quote?wsdl

          將在當前路徑的JavaSrc下生成相關的Java類,直接復制到項目的Src目錄下即可使用。
          下面還是以上次創建的http://localhost:8000/HelloTimeService?wsdl為類,測試過程如下:
          邀月工作室

          邀月工作室

          新建一java Project,如圖:
          邀月工作室

          將上面生成的java文件復制到Src目錄下,項目結構如圖:
          邀月工作室

          測試代碼也很簡潔:

          邀月工作室

          小結:這種方式與Axis2生成的Stub方式其實非常類似,只不過沒有生成測試代碼。結構還算清晰。



          邀月注:本文版權由邀月和博客園(BlogJava)共同所有,轉載請注明出處。
          助人等于自助!   3w@live.cn

          評論

          # re: Java與WCF交互(一)補充:用WSImport生成WSDL的Java客戶端代碼[未登錄]  回復  更多評論   

          2011-07-06 22:32 by 求知者
          你好,看了你的文章,受益匪淺,只是我遇到一個問題。我對wcf了解不深,現在也要做java客戶端,用wsimport命令,總遇到如下問題
          [WARNING] Ignoring SOAP port "WSHttpBinding_IService1": it uses non-standard SOA
          P 1.2 binding.
          You must specify the "-extension" option to use this binding.
          line 1 of http://localhost:8000/HelloTimeService/?wsdl

          [WARNING] Service "Service1" does not contain any usable ports. try running wsim
          port with -extension switch.
          line 1 of http://localhost:8000/HelloTimeService/?wsdl

          不知道是何原因,請指教

          # re: Java與WCF交互(一)補充:用WSImport生成WSDL的Java客戶端代碼[未登錄]  回復  更多評論   

          2015-05-07 09:54 by aaaa
          http://localhost:8000/HelloTimeService?wsdl@求知者

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 扬中市| 蛟河市| 潜山县| 阿拉善左旗| 渝北区| 三台县| 苏尼特左旗| 广安市| 锡林浩特市| 桑日县| 富裕县| 修水县| 祁门县| 郓城县| 绥棱县| 宝清县| 达州市| 北海市| 万全县| 富阳市| 怀仁县| 平遥县| 离岛区| 威宁| 正宁县| 余庆县| 阳山县| 巩义市| 博乐市| 临高县| 宝山区| 临夏市| 清丰县| 廊坊市| 海口市| 博客| 大安市| 遂溪县| 水富县| 崇文区| 富裕县|