私のアイデアの大きな文脈を与えるためだけに。
Java サービスを使用する必要があります。また、一部のメソッドには、次のようなパラメーターとして値の型がありますint, decimal.
もちろん、それぞれのタイプのメソッドを生成しますが、それらをnullablesvcutil.exe
として生成したいです...
の代わりにdecimal
、私はそれらを にしたいのですがdecimal?
、あなたはその理由を尋ねるかもしれません。
その理由は、Java Service が JBoss を介して自動生成されるサービスであるためです。Oracle パッケージを作成し、Jboss を介して公開し、サービスを生成するだけです。したがって、一部の手順はこのようなことを行います...
WHERE COLUMN = NVL(PARAM_NOT_MARKED_AS_NULLABLE_IN_SERVICE, COLUMN)
AND COLUMN2 = NVL(ANOTHER_PARAM_NOT_NULLABLE_IN_SERVICE, COLUMN2)
したがって、このようなサービスを利用する場合、それは同じではないことを知っておく必要があります
WSClient.somemethod(0, 0,0);
このようなより
WSClient.somemethod(null, null,null);
この最後のものは、最初のものがそうでない場合に何らかの結果を返します。
サービスを変更することはできません。WSDL の定義を変更するように要求することはできません。彼らは Java について何も知りません。pl-sql だけです。
このアイデアが機能するかどうかをテストするために自動生成されたプロキシを手動で変更し、メソッドのパラメーターの型をnullableに変更してテストしましたが、推測どおり、魅力的に機能しました。
サービスは継続的に変更されており、いくつかのパラメーターが追加、削除、改善されているため、サービスに変更がある場合は、プロキシを再度生成し、コピーしてプロジェクトに貼り付けるだけです
次のようなサービスを生成します。
svcutil /ct:System.Collections.Generic.List`1 http://Myurl?wsdl
プロキシを再生成するたびにすべてのメソッドを手動で変更する必要があるとしたら、本当に大変だと思います
私は別のソフトウェアを使用すること、svcutil の特別なコマンドを使用すること、別のツールを使用すること、何でもオープンですが、メソッドの値パラメーターの型を null 許容型に変更する方法を探しています。一部のオブジェクト定義には、実際には null 許容型のプロパティがあり、元から null になる可能性があるため、メソッドのパラメーターはすべてのパラメーターではありません。
私は何か間違ったことを尋ねていることを知っています.本当の解決策は、サービスが相互運用可能であるべきですが、私が言ったように、私はそれを尋ねることはできません.
手動で検索して置換してそれをメソッドに変更し、それを "? " に変更するのが最良のアイデアであるとは思いません。
助けていただければ幸いです。
よろしく、