2012-05-10 20 views
6

私は、提供されたWSDLのパラメータを使用してJSFフォームを自動的に生成するWebサービスをテストするアプリケーションを開発したいと考えています。WSDLからJava Beansを動的に自動生成する方法は?

WSDL URLはユーザーによって提供されており、解析する前に操作の名前はわかりません。私は、アプリケーションが解析された操作とそのパラメータを調べ、JSFフォームを生成するために使用する適切なJava Beansを自動生成することを望みます。

私はCXFとJAX-WSをテストしましたが、Java Beanを生成する前に操作名を知っておく必要があると思います。 WSDLのJava Beansを透過的に生成する方法は?手動でwsdl2javaを実行することは解決策ではありません。

+0

プログラム内からwsdl2javaを実行するとどうなりますか? –

+1

AFAIK、 'wsdl2java'は、操作名を持つ* .javaファイルを生成します。これは何とか動的にコンパイルしてインポートする必要があります。どのように私はこれを行うだろう、豆を作成する前に彼らの名前を知らない? – niutech

答えて

4

CXFは "DynamicClient"(参照:http://cxf.apache.org/javadoc/latest-2.6.x/org/apache/cxf/jaxws/endpoint/dynamic/JaxWsDynamicClientFactory.html)を持っている。このために使用することができます。 wsdl、生成されたJAXBオブジェクトを解析してコンパイルし、操作や型などを取得するために使用できるクライアントを返します。

+0

私はCXF DynamicClientを使用しましたが、うまく機能しました。 'JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance(); クライアントc = dcf.createClient(url); エンドポイントe = c.getEndpoint(); ServiceInfo si = endpoint.getService()。getServiceInfos()。get(0); BindingInfo bi = si.getBindings()。get(0); BindingOperationInfo boi:bi.getOperations()。get(0); ' – niutech

+0

上記のコードを試しましたが、動作しませんでした。 BindingInfoとBindingOperationInfoのために.get(0)について文句を言う。作業コードをここに置いてください。ありがとう – Motilal

関連する問題