アプリケーションでは、LSとJavaの両方の設計要素でWebサービスConsumers\Providorsをかなり使用しています。
LotusScript Webコンシューマーデザイン要素にインポートしようとしているWebサービス(wcf)wsdlがあり、保存すると次のエラーが発生します。
メンバーではありません:INVOKE
...以下に示すオンライン。
関数GetCopyDestinations(service As XSD_STRING、ocsCode As XSD_STRING、Fault1 As InteropErrorInfoStruct_n1)As ArrayOfInteropMessageDestination_n1 Set GetCopyDestinations = Service.Invoke( "GetCopyDestinations"、service、ocsCode、Fault1)<<<<=====この行のエラー終了関数
私はこれを、wsdl->Webサービスクラストランスフォーマーがwsdlの構造を好まないということだと思います...?使用しているサービスを作成している開発者と協力しているので、構造を変更することができますが、上記のエラーから、どこから始めればよいのかよくわかりません。これは、オブジェクトサービスにメソッド.Invoke()があるとは思わないことを意味すると思います。
LSWebサービス要素に含まれているファイルlsxsd.lssを調べました。LS Webサービスの「スタブ」クラスはlsxsd.lssファイルにあるPortTypeBaseを継承し、PortTypeBaseにはinvoke()メソッドがないため、このメソッドがどこから継承されるのかよくわかりません。私たちが正常に使用している他のLSWebサービスは、まったく同じ構造を持っているため、これは正しいように見えます。
私が考えることができる唯一のことは、同僚にwsdlをむき出しの状態に戻し、1つのメソッドを追加して、インポートするかどうかを確認し、別のメソッドを追加するか、インポートするかどうかを確認することです。
ちなみに、私はwsをJavaコンシューマーにインポートしようとしましたが、正常にインポートされます。次に、他のすべてのJavaコンシューマーサービスに対して行うのとまったく同じ方法でスタブを構築します。これは正常に機能しているように見えます。テストハーネスエージェントを実行すると、スタブが作成されますが、アクションのいずれかを実行しようとするとエラーが発生します。
java.rmi.RemoteException:サービスの操作の説明が見つかりませんでした
これは、wsdlファイルなどでアクションが見つからないことを意味します...?実行中に出力すると、エンドポイントのURLとPortNameが正しく表示されます。
これに対する補足として...私が上記で利用しようとしているサービスは、現在本番環境で動作しているバージョンがあり、LS Webコンシューマーにありますが、新しいバージョンには新しいアクションが追加されています。次に、健全性チェックのために、「ライブ」wsdlをインポートしました...これは動作することがわかっています... LS Webコンシューマー設計要素にインポートし、テストハーネスエージェントを実行します。期待どおりに動作します...良好です。次に、「ライブ」wsdlをJavaコンシューマー設計要素にインポートしました。サービスを実行すると、同じエラーが発生します...!?
java.rmi.RemoteException:サービスの操作の説明が見つかりませんでした
だから今、私は本当に、本当に混乱しています。ここにwsdlを投稿したいのですが、NDAなどでは許可されないと思いますが、それが役に立ったら、次のようにスタブを作成しています。
ITKInteropV10Stubスタブ=(ITKInteropV10Stub)new ITKInteropServiceV10_ServiceLocator()。getITKInteropV10();
これは、私が使用する他のすべてのJavaWebサービスと同様のスタブコンストラクターパターンです。
私は数日間グーグルで検索していて、上記のエラーを検索していますが、前進する方法を見つけるのに本当に苦労しています。
バックエンドロジックは現在このサービスにアクセスするLSスクリプトライブラリにあるため、理想的には、LSWebコンシューマーでインポートを解決するのが最適です。Javaで動作させると、それも問題ありません。WebサービスからLSライブラリへのデータの取得が少し複雑になります。
コメント\提案は両手を広げて歓迎されます!
よろしく
ニック