なぜjava.io.ObjectStreamExceptionは、列挙型のためWTKスタブジェネレータで使用されていますか?
-
06-09-2019 - |
質問
私はインターフェイスで定義された列挙型を持っているWCFで実装されたWebサービスを使用しています。私は、JavaのBlackBerryのクライアントからこれを呼び出すしようとしています。私は、BlackBerry用のJavaアプリケーションを開発するためにEclipseを使用しています。私は生成するのSun Java Wireless Toolkitのの(WTK)2.5.2を使用していますWebサービスが(すでにWindows Mobileのクライアントが使用して)かなり大きいので、スタブコードます。
私はWTKを使用してスタブコードを生成しようとすると、私は列挙型についてEclipseでエラーが発生します。次の関数では、それはjava.io.ObjectStreamExceptionを型に解決できないと文句を言います。
private Object readResolve()
throws java.io.ObjectStreamException {
return fromValue(getValue());
}
スタブジェネレータを実行すると、、CLDC 1.0またはCLDC 1.1のどちらかのためにスイッチがあります。両方のオプションを使用して生成すると、同じ問題になります。
私はノーと日で、これについてはフォーラム投稿を見つけ応答。このポストの状態の人「今java.io.ObjectStreamExceptionは、CLDCではありませんが、代わりにCDCにある。良いツールは、J2ME CLDC特に1.0 / 1.1用のWebサービスのスタブを作成するためにそこにありますか?」私はそれが[ドキュメント 3 <を見て、CLDC 1.1に存在していないことを確認し/ A>)。
このような状況を修正するためのEclipseで利用可能な2つのクイックフィックスがあります:1)パッケージ「java.io」または私は参照を追加したいと思っている2)修正のプロジェクトの設定()でクラスのObjectStreamException」を作成します。
アップデートます:
ここでは、JSR-172仕様が言う...
5.2.5列挙 JAX-RPCサブセットは、XMLの列挙型のサポートを提供していません。
制限によって派生5.2.6単純型 JAX-RPCサブセットは、制限によって単純型を導出するためのサポートを提供していません。
WCF列挙するためのWSDLは<xs:simpleType>
を含む<xs:restriction>
と<xs:enumeration>
を生成します。だから、僕はこの分野ではなく、intで言うと定数を定義していますか?
これはWTKでちょうどバグですか?ケースでは、私は日にバグレポートを提出して、彼らが応答した場合に表示されます。なぜこれがエラーとしてではないツールキットフラグのでしょうか?
だから今、私はそれがJSR-172に準拠しているように、インターフェイスを変更する必要があります。 WSDLを読んで、コンプライアンスの問題を指摘するためのツールはありますか?
解決
CLDCとWireless Toolkitには、両方のJavaマイクロエディションを使用しています。 JavaMEのは、何のジェネリックなし列挙型を意味しないJava言語のバージョン2に基づいています。
あなたのブラックベリーの携帯電話のためのWebサービスを調査する最初のステップは、JSR-172の仕様を読むことであろう。