2011-01-12 18 views
1

私はCXFを使用してクライアント側の成果物を生成し、java2wsプラグインを使用してwsdlを生成します。CXF設定の問題

jaxws:endpointを定義する必要があるTomcatでWSDLを生成するためのCXFの設定 - jaxws:endpointアドレスプロパティのCXF構成設定に問題があります。 WSDLで定義されたアドレスエレメントエンドポイントのアドレスを指定:JAXWSは>

<import resource="classpath:META-INF/cxf/cxf.xml" /> 
    <import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" /> 
    <import resource="classpath:META-INF/cxf/cxf-servlet.xml" /> 
<jaxws:endpoint id="JMSMetricsServiceEndpoint" 
     implementor="com.putnam.jms.monitor.websvcs.JMSMetricsService" 
     address="/"> 
</jaxws:endpoint> 

- 最終的に生成されたWSDLは、構文の問題

CXF.xml(私のMAVEN POMで春のjarファイルを使用していない)を持っています展開されているサービスを定義するファイル。これには、生成されたWSDLに書き込まれる正しいSOAPアドレスの絶対URL指定が必要です。現在のところ、これは "/"に設定されています。これは、アドレスがwsdlから直接準備されていることを除いて、soapの最後にスラッシュを付け加えます:address - >最終製品としてwsdlを生成するとき

<soap:address = ' ...... /'> 

私の目標は、これは私が過度/追加されていないように展開することです。

私はアドレスフィールドを完全に削除しようとしましたが、それはうまくいきませんでした。私はまた、すなわち、絶対URI

$HOST_NAME = full http path where the wsdl resides ...

$HOST_NAME = "http://localhost...."

しかし、それdoesntのはどちらか動作するようには思え

<jaxws:endpoint 
id="JMSMetricsServiceEndpoint" 
     implementor="com.putnam.jms.monitor.websvcs.JMSMetricsService" 
     address="${HOST_NAME}"> 

を使用してアドレスをハードコーディングしようとしています。

この変更により、正しい方向を指しているときでさえ、現時点で不正な形式のWSDLが発生します。

答えて

1

Adi、あなたの説明には矛盾があります。あなたはクライアントサイドの成果物を生成していますが、サービスエンドポイント用の構成であると言います。クライアントのために適切な設定がある - あなたがクライアントにサービスを書いていないと仮定すると、

<jaxws:client...> 

ない

<jaxws:endpoint..> 

、あなたがサービスのURLからWSDLを求める際のアドレスは、相対的ですパラメータがjaxws:serviceで明示的なwsdl(生成されていないもの)を指定しない限り、指定したアドレスからのリクエストURLと相対URIからサービスが導出されます。