gpt4 book ai didi

web-services - 使用 CXF 在 WSDL 中的soapaction

转载 作者:行者123 更新时间:2023-12-04 21:47:12 25 4
gpt4 key购买 nike

我正在使用 CXF 开发网络服务。我使用 HTTP 绑定(bind),所以根据 http://www.w3.org/TR/wsdl#_soap:operation SOAP 作用 对于这种类型的传输是强制性的。

问题是我想为测试和生产服务器部署相同的应用程序。我想在不重建应用程序或保留外部 WSDL 文件的情况下执行此操作,这将在维护列表中增加一件事。

我在位置方面遇到了同样的问题,但解决这个问题很简单。我在端点配置中使用了 publishedEndpointUrl 来设置正确的值。该值是在应用程序初始化期间从外部属性文件中检索的,我将其放在类路径 tomcat/common/classes 上。

<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jaxws="http://cxf.apache.org/jaxws" xmlns:soap="http://cxf.apache.org/bindings/soap" xsi:schemaLocation="http://www.springframework.org/schema/beans     http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://cxf.apache.org/bindings/soap http://cxf.apache.org/schemas/configuration/soap.xsd http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd">
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>classpath:ws.properties</value>
</list>
</property>
</bean>
<jaxws:endpoint xmlns:tns="http://example.org/ds" id="ds" implementor="org.example.Ds" wsdlLocation="wsdl/ds.wsdl" endpointName="tns:dsSOAP" serviceName="tns:Ds" address="/dsSOAP" publishedEndpointUrl="${publishedEndpointUrl}">
<jaxws:features>
<bean class="org.apache.cxf.feature.LoggingFeature" />
</jaxws:features>
</jaxws:endpoint>
</beans>

我想为soapaction实现相同的功能。此属性的值不应是相对 URI。所以对于测试它应该是:
<soap:operation soapAction="https://test.example.org/dsSOAP/operation1" />

并用于生产
<soap:operation soapAction="https://example.org/dsSOAP/operation1" />

知道如何实现这一目标吗?

最佳答案

您不需要指定绝对 URL,也不需要指定 URL。 “操作1”就足够了。在 http://www.w3.org/TR/2000/NOTE-SOAP-20000508/#_Toc478383528 上查看一些官方示例

将soap Action 与实例运行的环境联系起来并不是“最佳实践”。

关于web-services - 使用 CXF 在 WSDL 中的soapaction,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12584405/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com