問題タブ [jaxb]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
xml - EJB とのインターフェース - JAXB インターフェースを使用した XML
XML スキーマを既存の EJB プロジェクトに追加しようとしていました。JAXB は、XML スキーマを Java クラスにバインドするために使用されます。EJB がセッション中の場合、検索エンジンを使用して DTO をクロールします。
エンティティ クラス ファイルを XML スキーマにマップするための直接的な方法は見つかりませんでした。
これまでに達成できた唯一の方法は、Web サービスを作成し、xml-schema (XSD) を生成する WSDL を生成し、JAXB (xjc コマンド) を介して XSD ファイルを解析して Java クラス ファイルを作成することです。mapping-binding.xml ファイルを使用して、XML と Java クラス ファイルの両方をマップできます。
しかし、ここでも問題は、これをエンティティ クラスにマップする方法です。
これが私たちが達成したいことです:
- XML スキーマを持つ XML データ オブジェクト (これは JAXB 仕様に既に存在します)。
- エンティティ Bean は、この JAXB オブジェクトへのインターフェースを拡張するか、または持っています。
- すべての永続化機能はエンティティ Bean によって管理されます...
- エンティティ Bean には、JAXB にある XML マーシャリング機能とアンマーシャリング機能が含まれます。
- 値オブジェクトは、エンティティ Bean オブジェクトからバイナリ形式または XML 形式で取得できます。
- JSP は、値オブジェクトから XML スキーマと XML データを簡単に抽出し、XSL 変換などの操作を実行できます。
私の主張は、Entity Beans には JAXB オブジェクトとのインターフェースのための標準的な方法がないということです。
Castor が解決策になるかもしれませんが、Web サービスを実装するか、Castor JDO を使用する必要があります。
XStream は、エンティティ Bean クラス オブジェクトを呼び出して xml ファイルを生成できるコンバーター クラスを使用するため、非常に便利であることがわかりました。しかし、私は別のクラスを使用することを好みませんでしたが、既存の Bean クラスに関数を組み込みました。
この点で私を助けてもらえますか?
私が実際に達成しようとしていることをお伝えします。EJB のセッション中に呼び出され、DTO を介してクローラーを使用し、XML 形式でスナップショットを取得する検索エンジンを作成しています。検索は異なる基準で行われます。
Lucene は検索エンジン ツールの 1 つですが、独自のプロパティとファイルを使用します (スタンドアロンのように動作します)。
PHPとJavaアプリケーション(EJBレイヤー)の間で通信するためにWebサービスで使用されるDTOがすでにあります。jaxb でこれらの DTO をクローラーとして再利用して、XML のテーブルから出力を取得したかったのですが、JAXB は xml-schema を介して独自に生成されたクラスを使用するため、これを行うことができませんでした。あなたが言ったように、JAXBにBeanクラスを指示する方法をまだ見つけていません。
java - Oracle 10g Web アプリケーションの JAXB 2
JAXB 2を使用する Web アプリケーションがあります。Oracle 10g Application Serverにデプロイすると、XML ファイルをマーシャリングしようとするとすぐにエラーが発生します。Oracle はJAXB 1を、密かに「xml.jar」という名前に変更された jar に組み込んでいることが判明しました。
WEB-INF/lib
コード内のクラスローダーをいじる必要がなく、理想的には構成を通じて、Oracleがクラスパスに強制したバージョンよりもデプロイしたjaxb jarのバージョンを使用するようにwebappに強制するにはどうすればよいですか?
java - Oracle 10g の webapp から「javax/xml/namespace/QName クラスをリンクするときにローダーの制約に違反しました」
Oracle 10g を含む多くのアプリケーション サーバーにデプロイできる Web アプリケーションがあります。ただし、そのプラットフォームでは、クラスパスの問題があります。webapp は JAXB 2 を使用していますが、Oracle 10g は JAXB 1 で出荷されており、これがエラーの原因でした。これらを回避するために、Web アプリケーションでクラスを優先するように Oracle を構成しましたが、JAXB コンテキストをインスタンス化しようとすると、上記のエラーが発生します。
「ローダー制約違反」例外を調べます。あるクラスローダーでロードされたクラスが、同じパッケージ内のパッケージプライベートであるが別のクラスローダーによってロードされたものにアクセスしようとすると、スローされるようです。javax.xml.namespace.QName を含む webapp 内のすべての jar を削除しようとしましたが、ピックアップされているのは Oracle に含まれているインスタンスであることを確認しましたが、それでもエラーが発生します。何か案は?
(これは、10g と JAXB 2 に関する以前の質問の続きです。)
java - HttpRequest から XML を読み取る XMLEntityScanner.peekChar の ArrayIndexOutOfBoundsException
サーブレット doPost() で HttpServletRequest から XML データを読み取り、リーダーを req.getReader() から JAXB unmarshaller に渡しています。いくつかの異なる入力 XML を試しましたが、常にこの例外が発生します。
これは、ローカル開発マシンではなく、Live Web サーバーでのみ発生します。入力が何であれ (私は約 90k の入力しか試していませんが)、スタック トレースのメッセージ部分は常に "8192" と表示されます。XMLEntityScanner.java の 491 行目を調べたところ、バッファーが読み取られていることがわかります。バッファーは実際には配列です。8192 のゼロベースのインデックスを使用して 8k バッファを読み取れないことは理にかなっています。これはバグに違いありませんが、原因は何ですか?どうすればよいですか?
私は、多くの探偵の仕事を通じて、すでに答えを見つけたので、これを尋ねています。Apache はすでに修正を拒否しているので、次のかわいそうな人を手間から救いたかったのです。
xml - JAXB を使用したブール型プロパティの getter
jax-ws を使用してサービスを公開しようとしていますが、最初に驚いたのは、Weblogic が要求/応答オブジェクトの内部クラスをサポートしていないことでした。ここでこの状況を乗り越えた後、私は別の課題に直面しています:
getXXX()
メソッドではなく/メソッドに追加して生成しisXXX()
ます。
このメソッドを生成する必要があるのは、サービスを開始したときに次のメッセージが表示されるためです。
カスタマイズを試みました:
効果なし。:(
何か助けはありますか?
java - Java XML バインディング
XML を Java にバインドするために何を使用していますか? JAXB、Castor、および XMLBeans は、利用可能な選択肢の一部です。私が見た比較はすべて 3 ~ 4 年前のものです。私は他の提案を受け入れます。マーシャリング/アンマーシャリングのパフォーマンスと使いやすさが特に重要です。
明確化: あなたが使用しているフレームワークだけでなく、他のフレームワークよりも 1 つを使用する理由を知りたいです。
xsd - JAXB - XJC - 生成されたタイプセーフな列挙型クラスとメンバーに影響を与える
次の simpleType を XJC コンパイル (JAXB パッケージから) でコンパイルすると...
私はJavaで次の列挙型になります(インポートステートメントとコメントは削除されました)
これはまさに私が欲しいものです...public String value()
メソッドを除いて。public String getValue()
このメソッドは、Sun の命名規則に従って呼び出されることを期待しています。そうすれば、EL を使用して JSP ページで簡単に使用できます。今、私はそれを回避する必要があります。
getValue()
メソッドの代わりにメソッドを使用して、XJC コンパイルをより便利な列挙にさらに微調整した経験がある人はいますvalue()
か? または、メソッドなどを追加できますか?
PS これは JAXB の v2.0.3 で発生しました。最新バージョンv2.1.8をダウンロードしましたが、同じです...
java - JAXB または StAX メッセージの制限
現在、Axis 2 実装を使用して Bea Websphere 6.1 環境で WebService を開発しています。現在の Web サービスの標準 (JAXB、JAXWS、StAX...) を尊重しようとしています。
このプラットフォームでの XML メッセージの長さは?
私は周りを検索しましたが、このトピックに関連するものは何も見つかりませんでした.
java - jaxb を使用して生成された (マルチリファレンスを含む) 軸の SOAP 応答をアンマーシャリングする
jaxb アノテーションを使用してドメイン オブジェクトにアンマーシャリングしたい SOAP 応答を返す軸 1.4 Web サービスを使用しています。返されたメッセージの一部に multiRef 要素が含まれるまで、最初のテストは非常にうまく機能しました。multiRef を使用してマーシャリングされたオブジェクトが、クライアント側の注釈付きモデル オブジェクトで null として表示されていました。
私の質問は、JAXB は multiRef 要素を使用した SOAP 応答のアンマーシャリングをサポートしていますか? もしそうなら、どのように?そうでない場合は、軸 1.4 の SOAP 応答を Java のドメイン モデルにアンマーシャリングするより良い方法を知っている人はいますか?