0

非常に複雑なサードパーティ Web サービスを Grails アプリに組み込む必要があります。私の計画は、WSDL2Java を使用して wsdl からスタブ クラスを生成することでした。これは、サード パーティのドキュメント (例を含む) で推奨されている方法でした。最初に、Eclipse 用の Axis2 codegen プラグインを使用しようとしましたが、最終的に InvocationTargetexception に遭遇しました。プラグインをデバッグしたところ、wsdl が RPC エンコーディングで定義されていることが原因であることがわかりました。

代わりに Axis 1.4 の使用を推奨する人もいるので、それもインストールしましたが、IO Exception - Type { http://xml.apache.org/xml-soap }DataHandler is referenced but not defined に遭遇しました。

wsdlをハックすることなく、このwsdlからJavaクラスを作成する方法を提案できる人はいますか?

4

1 に答える 1

1

最終的に Axis2 wdsl2java を使用し、必要な注釈付きコードをサービスにコピーして、CXF プラグインを使用しました。また、次のコードをサービスに入れました

static expose=['cxfjax']

私がこれをしなければならなかった理由は、私のメソッドが次のように見える「複雑な」(grails の) 構造があったからです。

   @WebMethod(operationName = "authenticate", action = "http://betterhidethis/authenticate")
   @WebResult(name = "authenticateResult", targetNamespace = "http:/betterhidethis/")
   public ArrayOfString authenticate(
       @WebParam(name = "strUserName", targetNamespace = "http://betterhidethis/")
       String strUserName,
       @WebParam(name = "strPassword", targetNamespace = "http://betterhidethis/")
       String strPassword) { 

当然のことながら、ジェネレーターは後で使用する ArrayOfString クラスも作成しました。

お役に立てれば。

于 2010-08-19T23:35:54.327 に答える