5

NetBeans 7.2 (Windows 7 環境) を使用して Web アプリケーションから war ファイルを作成しました。これは、NetBeans コンテキスト内の GlassFish 3.1.2 サーバーでテスト段階で正しく実行されます。

ファイル内で定義された名前空間package-info.javaは、xml ファイルに正しく追加されます。

ただし、Linux マシンで個別に実行されている GlassFish サーバーに war ファイルをデプロイすると、名前空間はデフォルトの ns1 に設定され、package-info.java ファイルで定義されたものには設定されませんか?

私は何を間違っていますか?

よろしく、ジェラルド

4

1 に答える 1

5

xmlのJAXB名前空間がデフォルトのns1に設定されているのはなぜですか?

ns1名前空間ではなくプレフィックスです。プレフィックスは重要ではありません。たとえば、次のドキュメントはすべて同等です。foo要素はFOO名前空間にあり、要素barBAR名前空間にあります。

<a:foo xmlns:a="FOO" xmlns:b="BAR>
    <b:bar>Hello World</b:bar>
</a:foo>
<ns1:foo xmlns:ns1="FOO" xmlns:ns2="BAR>
    <ns2:bar>Hello World</ns2:bar>
</ns1:foo>
<foo xmlns="FOO" xmlns:b="BAR>
    <b:bar>Hello World</b:bar>
</foo>

私は何が間違っているのですか?

何もない。注釈 で指定されたプレフィックスを使用するために、JAXB(JSR-222)実装は必要ありません。EclipseLink JAXB(MOXy)はそうし、JAXBRIの最近のバージョンはそう見えます。NetBeans 7.2でのJAXBのバージョン/実装は表示されますが、GlassFish3.1.2が使用するJAXBのバージョン/実装はそうではありません。@XmlSchema

以下は、私が書いた記事へのリンクです。これはもう少し詳しく説明し、NamespacePrefixMapperここで役立つ可能性のある拡張機能について説明しています。

于 2013-01-29T10:37:37.280 に答える