2016-04-18 9 views
1

これは私が何時間もグーグルグーグルで成功していないものです。最後に私は春の魔術師がこの質問を読んで答えることを願っています。 :)wss:bindingのJava-configの対応部分ですか?

私は古いWebアプリケーション(Spring 2.xベース)をSpring 4.2.xにアップグレードしています。新しい機能を追加するうちに、XMLベースの設定から完全に離れることにしました。 (再び:私はプロジェクトにSpringのXMLファイルを持っていたくない!)

私はほとんどすべてを変換しましたが、私が解決できない最後のことは正しいJava-configの部分を見つけることです:だから、私は何をしようとしていることが、Java-config設定の代わりに、XMLと、@WebService注釈付きクラスをエクスポートしている

xmlns:ws="http://jax-ws.dev.java.net/spring/core" 
xmlns:wss="http://jax-ws.dev.java.net/spring/servlet" 

<ws:service id="MySoapService" bean="#ServiceImpl" /> 
<wss:binding service="#MySoapService" url="/1.0/soap" /> 

WS/WSS名前空間から来ます。

追加に関する情報:

  • 私はSimpleJaxWsServiceExporterを使用してみましたが、その1は、と私の葉「java.net.BindException:使用中のすでに住所:バインド」、かかわらず、私はどのポートの新しいREST API用の通常のSpring MVCディスパッチャと、上記のJAX-WSサービスを利用できるようにするもう1つのcom.sun.xml.ws.transport.http.servlet.WSSpringServletという2つのサーブレットがあります。

  • 純粋なJAX-WS RI、CXFまたは他のライブラリを使用して解決しようとしています。アプリケーションは

答えて

1

はどうやら何の解決策もありません:(...既に十分に巨大である - の周りグーグルのかなりの数時間以上後、私が見つけただけで、このチケットは(まだ?):

https://java.net/jira/browse/JAX_WS_COMMONS-134

デベロッパーがそれに応答しなくても、1年が経過したということに気付くと、JAX-WSコモンズのスプリング統合はJavaをサポートしない近い将来に設定されます。

0

あなたは(私のアプローチは、各エンドポイントの基本クラスBaseEndpointを使用することに注意してください)あなたのエンドポイントと、次のヘルパーメソッドを注入することによって、これを達成することができます

@Configuration 
public WebserviceConfiguration { 

    @Inject 
    private FooEndpoint fooEndpoint; 

    @Bean  
    public SpringBinding fooEndpoint() throws Exception { 
     return bind(fooEndpoint, "ws/bar"); 
    } 

    private SpringBinding bind(BaseEndpoint endpoint, String url) throws Exception { 
     SpringService springService = new SpringService(); 
     springService.setBean(endpoint); 
     SpringBinding binding = new SpringBinding(); 
     binding.setService(springService.getObject()); 
     binding.setUrl(url); 
     return binding; 
    } 

} 
+0

はかなり固体に見えます。これを試してみると、うまくいけば、私はこれに対する受け入れられた答えを変えるでしょう。 (もし私が...できれば、ここで初心者です) –

関連する問題