コードファーストアプローチでのカスタムWSDL生成

cxf jax-ws spring web-services wsdl
コードファーストアプローチでのカスタムWSDL生成

CXFとコードファーツアプローチを使用していくつかのWebサービスを作成しました。 ここに私の設定とコードがあります:

  • web.xml:*

...

    CXFServlet
    org.apache.cxf.transport.servlet.CXFServlet
    1


    CXFServlet
    /ws/*
  • applicationContext.xml:*

  • TestService.java:*

@Service
@WebService
public class TestService {

    @WebMethod
    public String random() {
        return "random=" + Math.random();
    }
}

このようにして、http:// localhost:8080 / myWebApp / ws / test?wsdlへのリクエストは、以下を含む美しいWSDLを取得します。

問題は、HttpServletRequestオブジェクトに応じて異なる場所が必要なことです。 そのため、WSDL生成コードを何らかの方法で上書きする必要があります。 私はこのコンテンツがどこで作成されたかを探しましたが、成功しませんでした。

この問題を解決する最良の方法はどれですか?

  0  0


ベストアンサー

CXF 2.4.xでは、WSDLはorg.apache.cxf.frontend.WSDLGetInterceptorを介して送り返されます。 そこを見て、物事を変える方法などのアイデアを見つけることができます。

それについて正確に何を変えようとしていますか? それがsoap:address上の単なる場所である場合、それを呼び出す前に実行されるインターセプターを貼り付けることができます:

message.put(WSDLGetUtils.PUBLISHED_ENDPOINT_URL, "http://localhoost:8080/foo");

または類似。

2


タイトルとURLをコピーしました