邀月

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

          《Java與WCF交互(一):Java客戶端調(diào)用WCF服務(wù)》一 文中,我描述了用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,主要參數(shù):

          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

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

          邀月工作室

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

          將上面生成的java文件復(fù)制到Src目錄下,項(xiàng)目結(jié)構(gòu)如圖:
          邀月工作室

          測試代碼也很簡潔:

          邀月工作室

          小結(jié):這種方式與Axis2生成的Stub方式其實(shí)非常類似,只不過沒有生成測試代碼。結(jié)構(gòu)還算清晰。



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

          評論

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

          2011-07-06 22:32 by 求知者
          你好,看了你的文章,受益匪淺,只是我遇到一個問題。我對wcf了解不深,現(xiàn)在也要做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交互(一)補(bǔ)充:用WSImport生成WSDL的Java客戶端代碼[未登錄]  回復(fù)  更多評論   

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

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


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 苍溪县| 山东省| 威海市| 大同市| 林周县| 门头沟区| 汝南县| 容城县| 迁安市| 平阳县| 进贤县| 巫溪县| 谷城县| 南华县| 贡觉县| 波密县| 赫章县| 崇信县| 武定县| 乐安县| 漯河市| 石家庄市| 文化| 舒兰市| 凤冈县| 乌兰浩特市| 保靖县| 大同县| 安义县| 台南县| 昌邑市| 乐昌市| 卓资县| 吉水县| 岑巩县| 游戏| 多伦县| 德惠市| 上虞市| 建宁县| 胶南市|