当我在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>
拜托,您知道我该如何解决这个问题?
答案 0 :(得分:4)
转换仅影响URL的服务器和端口部分,因此对于其他修改,例如添加到路径,您将不得不手动更新WSDL。
基本上,网址只会适应方括号中检测到的值:
http[s]://[domain]:[port]/path/in/your/wsdl