2011-07-31 3 views
2

私はweb.xmlにありますtransformWsdlLocations&<url-pattern>

<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はright url(http:// localhost:8888/MyWSApp/getPerson /)に設定されます

しかし、私はにURLパターンを変更する場合:

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

自動WSDLはまだ前のように同じURLが含まれて生成された:

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

が、それは間違っている、サービスは現在実行されています:また、私は成功せず、サーブレット定義の私のportTypeNameを変更しようとしている

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

<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> 

どうすれば修正できますか?

答えて

4

変換はURLのサーバーとポート部分にのみ影響するため、パスに追加するなどの変更を行うには、WSDLを手動で更新する必要があります。あなたの応答のための

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

おかげで... 1)なぜ「何か/ getPerson」に変更portTypeNameを動作しませんでした:

基本的には、URLは角括弧内値を検出しに適応します? (または "ポート部分"とはどういう意味ですか?) 2)しかし、私はspring-wsでwsdlを自動生成します。右のwsdlを生成するソリューションはありません。 – Ziletka

+0

@ziletka私の編集を参照してください。あなたがしたいことを自動的に実行するようにSpring-wsを構成することはできません。代わりに手動でWSDLを編集する必要があります。 –

+0

他の解決策もあります... portTypeNameの代わりにサーブレットのを変更しました。それは私のせいだった。しかし、あなたの答えに感謝します。 – Ziletka

関連する問題