corner imagecorner image
FeaturesPluginsDocs & SupportCommunityPartners

JAXB による WSDL の Java への結合

JAXB (Java Architecture for XML Binding API) を使用すると、Java プログラミング言語で書かれたアプリケーションから XML ドキュメントに簡単にアクセスできるようになります。このドキュメントでは、NetBeans IDE 6.1 および 6.0 の、JAXB に対するツールサポートの提供方法について説明します。主に、さまざまな種類の XML ドキュメントを Java クラスに変換するウィザードによって行われます。まず、ある WSDL ファイルから Java クラスを生成し、次にそのクラスに対して何らかの処理を行います。

このチュートリアルでは、次の 2 点を学びます。

  • IDE でウィザードを使用し、XML ドキュメントのスキーマを、そのスキーマに相当する一連の Java クラスに結合する方法。
  • IDE が提供する各種のツールを使用し、生成された Java クラスを簡単かつ効率的に使用する方法。

JAXB アーキテクチャーおよび JAXB そのものに関する詳細は、Java Web サービスのチュートリアルの「第 2 章: XML スキーマおよび Java クラスの結合」および「第 3 章: JAXB の使用」を参照してください。

目次

このページの内容は NetBeans IDE 6.0 および 6.1 が対象です

このチュートリアルに従うには、次のソフトウェアとリソースが必要です。

ソフトウェアまたはリソース 必須バージョン
NetBeans IDE 「すべて」インストール、version 6.0 または 6.1
SOA プラグインのインストールが必須。
Java Development Kit (JDK) version 6 または
version 5
Java EE 互換の Web サーバーまたはアプリケーションサーバー Tomcat Web サーバー 6.0 および/または
GlassFish アプリケーションサーバー v2
このチュートリアルで使用する WSDL ファイルCreditReportSimple.wsdl

Tomcat および GlassFish は、どちらも NetBeans IDE の Web および Java EE の配布とともにインストールできます。または、GlassFish のダウンロードページまたは Apache Tomcat のダウンロードページからダウンロードすることもできます。

XML ドキュメントからの Java オブジェクトの生成

この課題の目標は、プロジェクトを作成し、XML ドキュメントから Java オブジェクトを生成することです。

  1. 「ファイル」>「新規プロジェクト」を選択します。「カテゴリ」から「Java」を選択します。「プロジェクト」で「Java アプリケーション」を選択して、「次へ」をクリックします。
  2. 「プロジェクト名」に「JseSimpleClientReport」と入力して「完了」をクリックします。
  3. JseSimpleClientReport」ノードを右クリックし、「新規」>「その他」>「XML」>「JAXB 結合」を選択します。「次へ」をクリックします。「新規 JAXB 結合」ウィザードが表示されます。
    JAXB ウィザード

    このウィザードの設定は、次の目的のために使用されます。

    • 結合名。新しい JAXB 結合の名前を指定します。これは結合を識別するのに使用されます。
    • プロジェクト。現在のプロジェクトの名前を表示します。
    • スキーマファイル。作業対象のファイルは、ローカルまたはオンラインのどちらでも使用できます。
    • スキーマタイプ。次の種類の XML ドキュメントがサポートされています。
      • XML スキーマ
      • Relax NG
      • Relax NG Compact
      • XML DTD
      • WSDL
    • パッケージ名。Java オブジェクトの生成先となるパッケージを指定します。
    • コンパイラオプション。『Java EE 5 チュートリアル』で説明しているように、多くのコンパイラオプションが使用できます。ただし、JAXB ウィザードに関しては、次の項目だけが該当し、ウィザードのチェックボックスを使用して設定できます。
      • nv。入力スキーマの厳密な妥当性検査を行いません。デフォルトでは、ソーススキーマの厳密な妥当性検査は、処理前に実行されます。これは結合コンパイラが何の妥当性検査も実行しないという意味ではありません。単に厳密でない妥当性検査を実行するという意味です。
      • 読み取り専用。強制的にコンパイラが、生成される Java ソースを読み取り専用に指定するようにします。デフォルトでは、コンパイラは、生成する Java ソースファイルを書き込み保護しません。
      • npa。**/package-info.java」へのパッケージレベルの注釈の生成を無効にします。このスイッチを使用すると、生成されたコードが、別の生成されたクラスにこれらの注釈を取り込みます。
      • 詳細。進捗情報や警告など、コンパイラの出力を最大にします。
      • 非表示。進捗情報や警告など、コンパイラの出力を無効にします。
    • 拡張を使用。デフォルトでは、コンパイラは『JAXB 仕様』の「互換性」章で説明されているルールを厳密に実行します。またデフォルト (厳密) モードでは、この仕様で定義された結合カスタマイズだけを使用するように制限されます。このオプションにより、JAXB ベンダー拡張の使用が可能になります。
    • 結合ファイルを使用。1 つまたは複数の JAXB 結合カスタマイズファイルをインポートおよび編集できます。
    • カタログファイルを使用。OASIS カタログファイルをインポートおよび編集できます。
  4. 「結合名」に「CreditReport」、「パッケージ名」に「org.netbeans.j2ee.wsdl.creditreport」と入力します。
  5. 「ローカルファイルシステムから選択」の隣の「参照」をクリックし、このチュートリアルの最初にダウンロードした WSDL ファイルを開きます。
  6. 「スキーマタイプ」のドロップダウンリストから「WSDL」を選択します。画面は次のようになります。
    入力済みの JAXB ウィザード
  7. 「完了」をクリックします。

IDE は XML ドキュメントから Java オブジェクトを生成します。次の節では、IDE で Java オブジェクトを確認します。

JAXB ウィザードの出力の確認

この課題の目標は、NetBeans IDE のツールに慣れ、JAXB ウィザードの出力を処理することです。

  1. プロジェクトが構築されるたびに IDE が再生成するほかのアーティファクトと同様、Java オブジェクトは build フォルダに生成されます。次のように「ファイル」ウィンドウを開き、「generated」の Java オブジェクトの場所に移動します。
    「generated」の Java オブジェクトを表示しているプロジェクト
  2. 次のように「プロジェクト」ウィンドウでは、WSDL ファイルを格納している新しいノードが表示されます。「CreditReport」ノードを右クリックするとふたたびウィザードが開き、先ほど指定した設定を変更できます。
    「JAXB オプションを変更」オプションを表示している CreditReport のコンテキストメニュー

    また、ウィザードによって、アプリケーションの JDK 5 用クラスパスに JAXB ライブラリが追加されています。JDK 6 の場合、JDK 自体が JAXB ライブラリを提供するため、「ライブラリ」ノードに新しいノードは追加されません。

  3. ウィザードで設定を変更したとしても、次のようにすれば Java オブジェクトを再生成できます。
    「Java コードオプションを再生成」オプションを表示している「JAXB 結合」のコンテキストメニュー
  4. 「WSDL」ファイルを右クリックし、「開く」を選択します。ドキュメントがエディタで開き、「ソース」、「WSDL」、および「パートナー」という 3 つのタブが表示されます。「WSDL」をクリックするとビジュアルビューが開き、WSDL ファイルの分析と編集が簡単に行えます。
    WSDL エディタの CreditReportSimple の WSDL ファイル

XML ドキュメントで IDE が生成する内容について把握できたので、次はこれまで紹介したツールを使用して、生成した Java オブジェクトから何か実用的な処理をしてみます。

Java オブジェクトの使用

この課題の目標は、IDE が生成したファイルとコードで何か実用的な処理をすることです。生成した Java オブジェクトの 1 つに何か値を設定し、IDE の「出力」ウィンドウに整列化します。

  1. 「新規 Java アプリケーション」ウィザードで生成した Main クラスを開きます。
  2. 次のように、「generated」のルート JAXB クラスの 1 つである CreditReport をコンストラクタで宣言します。
    public static void main(String[] args) {
         CreditReport cr = new CreditReport();
            }
  3. この宣言を使用するには、ただ「cr.」と入力します。このとき Ctrl- スペースキーを押すと、次のように JAXB アーティファクトに関連するコード補完が IDE に表示されます。
    コード補完のオプション
  4. JAXB クラスについて、たとえば次のような値をいくつか設定します。
        cr.setFirstName("Butros Butros");
        cr.setLastName("Gali");
        cr.setDob("1930/05/30");
        cr.setScore("900");
        cr.setSsn("123-45-6789");
    
        cr.setLatestAddress1("2500 Some Ave");
        cr.setLatestAddress2("Suite 5000");
        cr.setCity("New York");
        cr.setState("New York");
        cr.setCountry("USA");
        cr.setPostalCode("NY 12345-6789");
    
        cr.setCurrency("USD");
        cr.setLiability(BigInteger.valueOf(2000000));
        cr.setLiquidAssests(BigInteger.valueOf(3000000));
        cr.setImmovableAssests(BigInteger.valueOf(5000000));
            
  5. エディタに「jaxbm」という文字を入力します。これは「JAXB Marshalling」の頭文字です。画面は次のようになります。
    赤い下線の付いた jaxbm を表示しているエディタのスニペット

    入力した文字は Java プログラミング言語の文法に従っていないため、赤い下線が表示されます。ただし、次の手順で使用する NetBeans のコードテンプレートになります。これに関連のあるコードテンプレートは「jaxbu」で、「JAXB Unmarshalling」を表します。

  6. Tab キーを押します。

    「jaxbm」の文字が拡張され、次のようなコードスニペットが表示されます。

    try {
        javax.xml.bind.JAXBContext jaxbCtx = javax.xml.bind.JAXBContext.newInstance(cr.getClass().getPackage().getName());
        javax.xml.bind.Marshaller marshaller = jaxbCtx.createMarshaller();
        marshaller.setProperty(javax.xml.bind.Marshaller.JAXB_ENCODING, "UTF-8"); //NOI18N
        marshaller.setProperty(javax.xml.bind.Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
        marshaller.marshal(cr, System.out);
    } catch (javax.xml.bind.JAXBException ex) {
        // XXXTODO Handle exception
        java.util.logging.Logger.getLogger("global").log(java.util.logging.Level.SEVERE, null, ex); //NOI18N
    }
  7. コード本文の任意の場所で右クリックし、「インポートを修正」を選択します。必要なパッケージのインポート文がコードに追加されます。エラー表示がある場合、消えるはずです。

    ここまでで、エディタで JAXB を扱うために IDE が提供する各種ツールを使用しました。これで、小規模なアプリケーションを配備する準備が整いました。

  8. アプリケーションを実行します。出力ウィンドウには、次のように表示されるはずです。
    JseSimpleClientReport の出力


関連項目

NetBeans IDE を使用した Java EE アプリケーションの開発方法についての詳細は、次のリソースを参照してください。

メーリングリストに登録することによって、NetBeans IDE Java EE 開発機能に関するご意見やご提案を送信したり、サポートを受けたり、最新の開発情報を入手したりできます。

Bookmark this page

del.icio.us furl simpy slashdot technorati digg
Companion
Projects:
MySQL Database Server   GlassFish Community: an Open Source Application Server   Open Solaris  Open JDK: an Open SourceJDK   Mobile & Embedded Community     Sponsored by 
Sponsored by Sun Microsystems