2

インターフェイスで列挙型が定義されているWCFに実装されたWebサービスを使用しています。これをJavaBlackBerryクライアントから呼び出そうとしています。私はEclipseを使用してBlackBerry用のJavaアプリケーションを開発しています。Webサービスがかなり大きい(Windows Mobileクライアントですでに使用されている)ため、Sun Java Wireless Toolkit(WTK)2.5.2を使用してスタブコードを生成しています。

WTKを使用してスタブコードを生成しようとすると、列挙型に関するエラーがEclipseで発生します。次の関数では、java.io.ObjectStreamExceptionを型に解決できないと文句を言います。

private Object readResolve()
    throws java.io.ObjectStreamException {
    return fromValue(getValue());
}

スタブジェネレータを実行する場合、CLDC1.0またはCLDC1.1のいずれかのスイッチがあります。両方のオプションで生成すると、同じ問題が発生します。

Sunでこれに関するフォーラム投稿を見つけましたが、応答がありませんでした。この投稿の担当者は、「java.io.ObjectStreamExceptionはCLDCにはなく、代わりにCDCにあります。J2ME、特にCLDC 1.0 / 1.1のWebサービス用のスタブを作成するための優れたツールはありますか?」と述べています。[ドキュメント3 ]を見て、CLDC1.1に存在しないことを確認しました。

この状況を修正するためにEclipseで利用できる2つの簡単な修正があります:1)パッケージ'java.io'にクラス'ObjectStreamException'を作成するか、2)プロジェクトのセットアップを修正します(参照を追加する必要があります)。

アップデート:

これがJSR-172仕様の内容です...

5.2.5列挙JAX-RPCサブセットはXML列挙のサポートを提供しません。

5.2.6制限による単純型の派生JAX-RPCサブセットは、制限による単純型の派生をサポートしていません。

WCF列挙のWSDLは、を含む<xs:simpleType>withを生成します。では、このフィールドは代わりにintであり、定数を定義すると言うだけですか?<xs:restriction><xs:enumeration>

これはWTKの単なるバグですか?もしそうなら、私はSunにバグレポートを提出し、彼らが応答するかどうかを確認します。ツールキットがこれをエラーとしてフラグ付けしないのはなぜですか?

そこで、JSR-172に準拠するようにインターフェイスを変更する必要があります。WSDLを読み取り、コンプライアンスの問題を指摘するためのツールはありますか?

4

1 に答える 1

2

CLDC と Wireless Toolkit はどちらも Java Micro Edition を使用しています。JavaME は、Java 言語のバージョン 2 に基づいています。つまり、ジェネリックも列挙型もありません。

Blackberry ハンドセットの Web サービスを調査するための最初のステップは、JSR-172 仕様を読むことです。

于 2009-06-01T18:30:57.453 に答える