transformWsdlLocations&amp; <URL模式> </URL模式>

时间:2011-07-31 15:09:42

标签: spring-ws

当我在web.xml中时:

<param-name>transformWsdlLocations</param-name>
<param-value>true</param-value>

<servlet-mapping>
    <servlet-name>personWS</servlet-name>
    <url-pattern>/*</url-pattern>
</servlet-mapping>

自动生成的WSDL包含正确的URL:

<soap:address location="http://localhost:8888/MyWSApp/getPerson/"/>

因此,当我在SoapUI中基于wsdl创建新项目时,EndPoint设置为正确的URL(http:// localhost:8888 / MyWSApp / getPerson /)

但是当我将url-pattern更改为:

   <url-pattern>/something/*</url-pattern>

自动生成的wsdl仍然包含与之前相同的URL:

<soap:address location="http://localhost:8888/MyWSApp/getPerson/"/>

但是错了,服务现在正在运行:

   <soap:address location="http://localhost:8888/MyWSApp/service/getPerson/"/>

我也尝试在servlet定义中更改我的portTypeName,但没有成功:

<bean id="personService" class="org.springframework.ws.wsdl.wsdl11.DefaultWsdl11Definition">
    <property name="schema" ref="personServiceSchema"/>
    <!-- <property name="portTypeName" value="getPerson"/> -->
    <property name="portTypeName" value="something/getPerson"/>
    <property name="locationUri" value="/getPerson/"/>
    <property name="targetNamespace" value="http://www.geonis.com/geonis/delivery_site"/>
</bean>

拜托,您知道我该如何解决这个问题?

1 个答案:

答案 0 :(得分:4)

转换仅影响URL的服务器和端口部分,因此对于其他修改,例如添加到路径,您将不得不手动更新WSDL。

基本上,网址只会适应方括号中检测到的值:

http[s]://[domain]:[port]/path/in/your/wsdl