transformWsdlLocations & <url-pattern> - PullRequest
2 голосов
/ 31 июля 2011

Когда я в 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/"/>

Поэтому, когда я создаю новый проект на основе wsdl в SoapUI, для EndPoint устанавливается правильный URL (http://localhost:8888/MyWSApp/getPerson/)

Но когда я изменяю шаблон URL на:

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

автоматически сгенерированный wsdl по-прежнему содержит тот же URL, что и раньше:

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

но это неправильно, служба работает сейчас:

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

Я также пытался изменить свое 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 Ответ

4 голосов
/ 31 июля 2011

Преобразование влияет только на часть URL-адреса сервера и порта, поэтому для других модификаций, таких как добавление к пути, вам придется обновлять WSDL вручную.

По сути, URL будет адаптироваться только к обнаружено значения в квадратных скобках:

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