RSA 7.5 および Websphere 7 サーバーを使用して IBM JAX_WS Web サービスを開発しようとしています。私は初心者なので、Java クラス ファースト アプローチに従っています。つまり、最初に Java クラスを作成してから WSDL ファイルを生成しています。
wsdl ファイルを作成しようとすると、例外が発生します。
java.security.PrivilegedActionException:com.sun.xml.internal.bind.v2.runtime.IllegalAnnotationsException: 1 counts of IllegalAnnotationsException クラスに同じ名前「planId」の 2 つのプロパティがあります
ここで参照されている私のクラスは次のようになります。
public class MemberDetails{
@XMLElement(required=true)
private String planId;
//public getters and setters for the planId;
}
なぜこの例外が発生するのか、私にはわかりません。Google検索を介して、解決するためにいくつかの代替手段を試しましたが、どれもうまくいきませんでした:(
ノート:
これは、ワークスペース全体で使用している唯一の注釈です。これが他の注釈に依存しているかどうかはわかりません。しかし、@XMLElement(name="Plan",required=true)、@XMLType などのいくつかを試してみましたが、毎回この例外が発生します。
この例外は、wsgen 中に発生しています。( java.lang.reflect.InvocationTargetException )
編集
基本的に、Java サービス メソッドから wsdl を作成し、その WSDL を SOAP UI で開くと<!--Optional-->
、すべての要素の先頭に到達します。このオプション タグ タグを削除したい<!--Optional-->
ので、@XMLElement(required=true) アプローチを試して、SOAP UI で WSDL を開いたときに<!--Optional-->
必須要素が表示されないようにしています。
私の概念によれば、@XMLElement(required=true) は minOccurs を 1、つまりゼロより大きい値に設定するため、SOAP UI で開いたときにオプションのコメントが WSDL から削除されます。しかし、残念ながら機能していないため、私の概念は正しくありません。WSDL が生成された後、minOccurs がまだ 0 であることを確認できます。
SOAP UI で WSDL を開くときにオプションのタグを削除する方法を説明してください。
よろしく、