soap:地址从http到https的位置

时间:2012-04-04 14:30:10

标签: java web-services soap axis2

我有一些网络服务,例如:

<wsdl:port name="CalcWithPerson22HttpSoap11Endpoint" binding="ns:CalcWithPerson22Soap11Binding">  
            <soap:address location="http://localhost:8080/axis2/services/CalcWithPerson22"/>  
  </wsdl:port> 

在这些内容中,我需要将soap:address location从“http”更改为“https”。

我需要在WSDL文件中进行哪些更改?

3 个答案:

答案 0 :(得分:3)

1.5.3 maint版本已经支持https。所以我们也可以使用它

2010年11月12日 - Apache Axis2 / Java版本1.5.3发布! 1.5.3是一个维护版本,包含以下改进:

  • 使用servlet传输时改进了对SSL的支持:现在可以配置Axis2,以便生成的WSDL包含https端点(AXIS2-4465)。
  • 改进了与Rampart(AXIS2-3213和AXIS2-4870)和Sandesha2(潜在的HTTP连接池饥饿)的兼容性。
  • Axiom已升级至1.2.10。此版本包含与Rampart相关的性能改进。
  • 应用程序(业务)故障不再记录在ERROR级别(AXIS2-4280)。
  • 改进了对SAAJ规范的一致性。 1.5.3版本包含一组针对主干上开发的SAAJ实现的修复和改进,并未包含在1.5分支的先前版本中。
  • Axis2现在完全依赖于Maven中央存储库中可用的依赖项,并且不需要其他Maven存储库。这特别修复了1.5.2版本之后出现的构建问题。
  • Eclipse和IntelliJ IDEA插件可再次通过Axis2网站下载(之前的1.5.x版本只能从Maven存储库下载)。

答案 1 :(得分:0)

1)首先,您必须确保部署这些服务的应用程序服务器需要在SSL / https上运行。

2)无需更改wsdl。只需将客户端中的端点从要调用这些服务的位置更改为https即可。

但是,您仍需要更改wsdl中的soap地址。只需进行此更改:

<soap:address location="https://localhost:8080/axis2/services/CalcWithPerson22"/>

<强>更新

axis2.xml 检查 https transportReceiver 。默认情况下,它在1.5.3以上的axis2版本中启用。

<transportReceiver name="https"
class="org.apache.axis2.transport.http.SimpleHTTPServer">
<parameter name="port">8443</parameter>
</transportReceiver>

service.xml 如果您只想在https上运行服务,它将如下所示

<service name="TestWebservice" >
    <description>
        Please Type your service description here
    </description>
    <messageReceivers>
        <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only"
class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver" />
        <messageReceiver  mep="http://www.w3.org/2004/08/wsdl/in-out" 
class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>
    </messageReceivers>
    <transports> 
        <transport>https</transport> 
    </transports>
    <parameter name="ServiceClass">xx.xxx.xxx.TestWebservice</parameter>
</service>

答案 2 :(得分:0)

在xml文件

中添加“https”
<transportReceiver name="https" class="org.apache.axis2.transport.http.SimpleHTTPServer"> <parameter name="port">8443</parameter> </transportReceiver>