java调用.net发布webservice心得

本文分享了作者在Java环境下调用.NET发布的Webservice时的经验,重点讨论了SOAP Header中的安全验证问题。文章提到了使用Axis2和JAX-WS两种方案,并详细阐述了每种方案的步骤、优缺点以及遇到的挑战。对于Axis2,作者介绍了如何生成类文件及调用Webservice服务。而对于JAX-WS,提到了使用wsimport工具生成类文件的方法。最后,作者提到URL Connection作为更原始的调用方式,虽然简单但可能存在更多问题。
摘要由CSDN通过智能技术生成

之前做.net,发布、引用webservice很容易,最近转做java,需要调用.net发布的webservice,于是网上找了几种方案,感觉很容易,实则遇到很多困难,放上来分享给大家。

WebService地址:http://localhost:8080/Service.asmx

请求SOAP:

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Header>
    <SecurityContext xmlns="http://tempuri.org/">
      <UserName>string</UserName>
      <Password>string</Password>
    </SecurityContext>
  </soap:Header>
  <soap:Body>
    <GetProject xmlns="http://tempuri.org/">
      <strPrjCode>string</strPrjCode>
    </GetProject>
  </soap:Body>
</soap:Envelope>

响应SOAP:

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <GetProjectResponse xmlns="http://tempuri.org/">
      <GetProjectResult>string</GetProjectResult>
    </GetProjectResponse>
  </soap:Body>
</soap:Envelope>



其中有安全验证是重点,就是这个折腾我好久。请求需要用户名、密码,在SOAP Header里构造。


使用方案:axis2、jax-ws、url connection

一、axis2,用的比较多的方式,功能强大,需要了解详细资料,请自行百度。优点:使用简单,可发布、请求webservice,可以生成类文件,也会生成SOAP header节点安全验证类。缺点:比较重,如果只是请求webservice,不发布,也需要依赖很多第三方jar包。

axis2使用说明:

1、下载地址:http://archive.apache.org/dist/axis/axis2/java/core/1.6.2/axis2-1.6.2-bin.zip

2、生成类文件。axis2提供了一个生成类文件的工具,类似JDK提供的wsimport工具一样,可以根据webservice的WSDL生成类文件,使用这些类,可以像调用本地类一样调用webservice提供的服务。

cmd进入axis2-1.6.2\bin路径,执行wsdl2java -uri http://localhost:8080/Service.asmx?WSDL -p test.webservice -o stub -a -u Unpacks the databinding classes

参数说明:

-uri参数指定发布webservice地址。

-p指定生成的java类的包名。

-o指定生成一系列文件保存的根目录。

-a指定使用异步生成,默认同步生成。

-u Unpacks the databinding classes 避免生成的ServiceStub类特别大。


执行完,在当前目录下多了一个stub目录,可以看

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值