問題タブ [castor]
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.
java - Castor:Java階層をマップする方法
階層のマッピング中にこのJava-Castorの問題が発生しました。御時間ありがとうございます。
私はこのXMLファイルを持っています:
このJava階層:
そして、これらのCastorマッピング:
動作せず、次のエラーが発生します。
java - Spring と CastorMarshaller: 名前空間を XML ルートに追加
Java アプリケーションが Web サービスから情報を取得しようとしています。XML 要求には、XML ルート要素 (クラス名) で指定された名前空間が必要ですが、タグ (クラス フィールド) の名前空間は空 (null) である必要があります。そうでない場合、Web サービスは要求を拒否します。
Spring 3.0 および Spring WS 2.0 を CastorMarshaller (現在は Castor バージョン 1.3.1 を使用) と共に使用して、Java オブジェクトを XML に/からマーシャリング/アンマーシャリングする必要があります。
次のコード スニペットの__PREFIX__
との場所に注意してください。__NAMESPACE__
目的の整列化出力 (つまり、目的の生成された SOAP 要求)
現在マーシャリングされている出力(つまり、生成された SOAP 要求)
名前空間を追加しない
またはすべての要素に名前空間を追加する
どちらも Web サービスによって拒否されます。
私の構成
CastorMarshaller BeanのapplicationContext.xml
Castor マッピング ファイル castor-mapping.xml
名前空間を追加しない ( castorMarshaller
Bean スルーで指定された名前空間namespaceMappings
をルートに追加する必要があります)
またはすべての要素に名前空間を追加する
xsd - Castor によって生成されたクラス (XML マーシャリング) - XSD を使用できません
私は最近、いくつかのデータを XML として保存するという特定の要件があることに気付いたプロジェクトに移動しました。
以前のチームは、Castor によって生成されたクラスを使用して、データをマーシャリングおよびアンマーシャリングしました。
この XML に追加の (まだオプションの) フィールドを追加する必要がある新しい要件があります。しかし、以前のチームは XSD をまったくチェックインしていなかったと思われ、彼らに連絡する方法がないことに気付きました。
XSD は確かに大規模で複雑で、約 50 のクラスを生成する必要があります。そのため、XSD を再度作成するとエラーが発生しやすくなり、古い XML と互換性のある XML を作成することになるリスクもあります。
私が考えたもう 1 つの方法は、XML Spy のようなツールを使用して、XML から XSD をリバース エンジニアリングしようとすることでしたが、XSD を生成するために 20 個の奇妙な XML をリバース エンジニアリングし、これらすべての XSD をマージする必要があるため、これも少し難しいように思えます。 XML にはいくつかのオプションのセクションがあったため、1 つにまとめられました。このアプローチでは、まだエラーの可能性があります。
私が考えることができる最良のオプションは、クラスを XSD にリバース エンジニアリングすることですが、Castor はおそらくこの機能をサポートしていません。したがって、これらの Castor 生成クラスを XSD に変換する手段がありません! Castor によって生成されたクラスにはいくつかの Castor 固有のメソッドがありますが、Castor 固有のメソッドが無視される場合、本質的にそれらは Pojo です。
Java クラスから XSD を取得または生成するための提案はありますか? 私が議論した問題を解決するための他の提案はありますか?
ありがとうございました。
marshalling - nullフィールドを空のタグにマーシャリングするようキャスターに指示する方法は?
一部のフィールドを null に設定できるオブジェクトをマーシャリングしています。構成用の xml-mapping ファイルでキャスターを使用しています。私がマーシャリングしているクラスは次のようなものです:
...そして、次のようなマッピング ファイル:
フィールドがnullの場合、現時点で得ているもの(簡略化された例):
説明フィールドがnullであっても、結果のXMLに空のタグが必要です。
object - null オブジェクトに対して空のタグを返す Castor Marshaller
Castor を使用して、Castor オブジェクトを XML 文字列に非整列化します。Castor は、null オブジェクトの空のタグを生成しません。アンマーシャリング中にパラメーターとして設定できる API はありますか?
ハンドラーを使用してこれを処理し、convertUponGet メソッドをオーバーライドして空の文字列を返す方法があります。でも、やったほうがいいのかな?
どんな手がかりも役立ちます。
maven - Maven:Castor、antrun、earプラグインを処理するためのマーケットプレイスエントリが見つかりません
MavenプロジェクトをEclipseにインポートしています。m2eプラグインをインストールしていて、マシン上のmaven2.2.1を指しています。
次の3つのエラーが発生します。
- Eclipseでcastor-maven-plugin:1.0:generateを処理するマーケットプレイスエントリが見つかりません
- Eclipseでmaven-antrun-plugin:1.1:runを処理するマーケットプレイスエントリが見つかりません
- Eclipseでmaven-ear-plugin:2.3.1:generate-application-xmlを処理するためのマーケットプレイスエントリが見つかりません
提供されたリソースをいただければ幸いです。
ありがとう
java - Castor ライブラリの NoClassDefFoundError
Lizzy ライブラリ ( http://lizzy.sourceforge.net/ ) を使用してプレイリストを操作しようとしています。依存関係として、ビルド パスにCastor ライブラリ ( http://www.castor.org/ ) が必要です。そこで私はそのサイトに行き、Castor 1.3.1 をダウンロードしてから、.jar をビルド パスに入れました。
ただし、このコード行を実行して特定のプレイリスト ファイルを汎用プレイリスト オブジェクトに変換しようとすると、次のようになります。
最終的に NoClassDefFoundError が発生します。
.jar ファイルがありませんか? 私は CastorException クラスのインスタンスを作成することができました (しかし、それは例外が話しているパッケージとは別のパッケージにありました)。基本的な Castor-1.3.1.jar ファイルには、必要なすべてのクラスが含まれていると思いました。
追加情報: Lizzy でサポートされているはずの .wpl プレイリスト ファイルをデコードしようとしています。そして私のビルドパスは次のようになります:
助けてくれてありがとう。
java - Java から XML キャスターへのマッピング
POJO を xml にマップしようとしています。現在、POJO は、基本的な String/Integer などのいくつかの属性と、その他の POJO クラスであるいくつかの属性で構成されています。作成しようとしている xml マッピング ファイルでは、最上位の xml 要素に 2 レベルの深さの Java 属性を設定する必要があります。
たとえば、Java クラスが 2 つあるとします。
今、私のxmlマッピングは次のようになります
クルーズラインのマッピング
` ご覧のとおり、xml 要素 Sample の classC から var4 へのマッピングが必要です。sample要素の要素にしたいです。
`
`
助けてください!
validation - Axis/Castor Web サービスを取得して、XSD に対して要求を検証するにはどうすればよいですか?
私は、組織内の別のチームによって開発された XSD を使用して、契約優先 (トップダウン) 方式で小さな Web サービスを開発しました。私が抱えている問題は、リクエストの形式がわずかに間違っている場合でも、サービスが実行されることです。XSD に対して要求を検証するために本当に必要ですが、Axis または Castor にそれを強制する方法がわかりません。
「わずかに不正な形式」とは、リクエストに正しい要素が含まれているが、正しく配列されていないことを意味します。本当に不正なリクエストは、Castor のアンマーシャリング中に拒否されます。少し不正なリクエストは非整列化され、望ましくない結果になる可能性があります。次に例を示します。
有効なリクエストには、次のように表示されるアイテムのリストが含まれている必要があります。
これにより正しく非整列化され、Web サービスは 3 つの値すべてを処理します。
ただし、同じ値のセットが次のように表示される場合を発見しました。
次に、これも最初の例と同じ方法で非整列化され、3 つの値すべてが処理されます。この場合、最終結果は受け入れられますが、この構造は XSD によると正しくないため、エラーを作成することをお勧めします。
XSD から取得した要求定義は次のとおりです。
SoapUI は 2 番目の例を無効と報告しているため、XSD は正しいと確信しています。
XSD検証を強制的に実行するためにいくつかのことを試しましたが、これまでのところ効果がありません. Axis または Castor を強制的に検証する方法を知っている人はいますか?
歴史的な理由から、私はこれら 2 つのコンポーネントの古いバージョン (Axis 1.3 と Castor 1.1) を使用していますが、XSD 検証を機能させることができれば、アップグレードの苦労をいといません。
どうもありがとう
スティーブ
java - Castor を使用した循環エンティティのマーシャリング
静的マーシャル メソッドを使用して、Castor で次のエンティティをマーシャリングしたい。ただし、エンティティにはそれ自体への参照があるため、ループが開始され、クラッシュしない場合は 44 DB 行から 100MB のファイルが作成されます。プロパティの @XmlTransient は役に立ちませんでした。ORM は eclipseLink、EJB 3 (ADF 11.1.2.1.0)