問題タブ [jaxbelement]
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 - JAXBElement の JSON を作成するには?
背景
PersonResource. addPerson
承ります{"firstName":"Alfred","lastName":"Bell"}
がお断りさせて頂き{"person":{"firstName":"Alfred","lastName":"Bell"}}
ます。
そのため、次の問題があります。
問題:
与えられた
JAXBElement<Car> jaxbCar
JSON を認識できるようにフォーマットするにはどうすればよいですか? 車には 4 つのタイヤとエアバッグが必要です。
詳細:
Jersey (Java REST-API)を使用しています。
java - 例外: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: 列 'dog_id' を null にすることはできません
親子関係を持つエンティティが 2 つあります。犬は明らかに親で、子犬は子です。エラーなしで Dog-and-puppies を永続化するにはどうすればよいですか?
基本的に、ユーザーは Dog を子犬とともに jaxbElement として渡します。
繰り返しになりますが、子犬に親犬の dog_id を表示させるにはどうすればよいですか?
java - Store JAXBelementを文字列に取得する方法は?
こんにちは、JAXBelement 値を String 変数に格納したいのですが、どうすればよいか教えてください。次のメソッドがあります。
上記のメソッドは sessiondata クラスにあります。以下のような sessiodata クラスのオブジェクトを作成しました。
以下のようなsessiondataクラスのgetsessionメソッドを呼び出しています。
今、セッション ID を文字列変数に格納したいと考えています。しかし、そのタイプは JAXBelment で、文字列に格納する方法を教えてください。
今、私は sessionId を One String 変数に保存したいと思います。別のメソッドに渡します。親切に私を助けてください。
json - MOXy を使用した Jersey 2.2 で JAXBElement を使用した JSON 処理に関する問題
jersey-examples-moxyコードを拡張して、JAXB アノテーション付き Bean の代わりに XML スキーマ定義を使用しました。xjc でコンパイルされた XML スキーマは、元の例と同じ XML および JSON エンコーディングを生成します。
jersey の指示に従い、ObjectFactoryを使用して、CustomerResource.java 内にJAXBElement Customerオブジェクト表現を生成しました。説明どおりにクライアントも変更しました。また、 Jersey 2.2 と MOXy で JAXB を使用した JSON 処理に関する PUT の問題で説明されている修正も組み込みました。
MediaType.APPLICATION_XMLは完全に機能し、MediaType.APPLICATION_JSONは GET に対して機能しますが、クライアントは「MessageBodyWriter が見つかりません」で PUT で JSON をマーシャリングできません。次の例外がスローされます。
CustomerResource.java の変更方法は次のとおりです。
PUT リクエストの作成方法は次のとおりです (機能している XML と同じです)。
ご協力ありがとうございました!
soap - JAXBElement の処理SpringWS のソープリクエスト
以下の enpoint メソッドを使用しています。Soaprequest を処理する構造体を次に示します。
私の Web サービスは上記のエンドポイントにヒットし、Soap リクエストには base64Binary オブジェクトの JAXBElement byte[] があります。上記の JAXBElement リクエスト オブジェクトを処理し、そこから実際のリクエストを取得する際に問題に直面しています。誰か助けてください。
java - JAXB - 一部のオブジェクト情報を取得できません
XJC を介して Java コードを作成した XSD がいくつかあります。XJC が提供する「ダイレクト マッピング」POJO を介して多くの情報を取得できます。残りのほとんどは、JAXBElements を介して取得できます。ただし、それらに話しかける方法がわからない要素がいくつかあります。つまり、'transaction/description' 親の下の 'cost' 要素です。
ご覧のとおり、Transaction.java には「description」要素が含まれており、それを JAXBElement.class にマップしています。
Transaction.java の上で、スキーマ フラグメントは次のように述べています。
したがって、「説明」のタイプは JAXBElement<TextType> である必要があります。TextType.java は次のようになります。
トランザクションから情報を取得するために、トランザクション オブジェクトを作成し、その内容を取得します。
これにより、JAXBElement オブジェクトを探すリストが表示されます。
しかし、ここで「コスト」要素の内容を取得する方法がわからないという問題があります。TextType.java の getContent() メソッドの上には、次のように書かれています。
「説明」の親の下に複数の要素が存在する可能性があるため、「コスト」要素の内容は何らかのリストに格納する必要があります。
java - JAXBElementRef は nillable="true" を生成しません
null
Web サービスのリクエストで、リクエストされた値と欠落しているタグを区別したいと考えました。つまり、次の要素定義が必要でした。
私は Web サービス コードを最初に開発したので、以下を使用して要素を定義しましたJAXBElementRef
。
今、私nillable = "true"
は要素の定義で見ることを期待していました. 代わりに、私は得ました:
nillable = "true"
Java コードからどのように生成できますか? ...そして、私のコードとそのメソッドでまだJAXBElementを使用していますisNil()
...
更新:私はコードをグラスフィッシュにデプロイするので、グラスフィッシュは wsdl と xsd を生成するものです。
java - JAXBはJavaからnillable = "true"を生成します
これはバグですか?
nillable = "true"
xsd スキーマに必要です。私の Java コードからそのような要素を生成する唯一の方法は、 を使用すること@XmlElement(nillable = true)
ですよね? ただし、この場合、この定義を利用することはできません。要素が に設定されているかどうかを確認することはできませんnil
。メソッドisNil()
はJAXBElement
ラッパー クラスにあります。
では、ここでのオプションは何nillable = "true"
ですか-xsdスキーマで生成し、それがJavaコードから設定されているかどうかを確認できるようにしたいです。
jaxb - JAXB 回避 JAXBElement
XSD ファイルから JAXB を使用して Java クラスを生成したいと考えています。
問題は、私が常にこのようないくつかのクラスを取得することです (名前空間は削除されています):
ご覧のとおり、JAXB は JAXBElement を使用します。そのようなクラスは私には使えません。
いくつかの調査の結果、JAXB には問題があることがわかりましたが、どこでも nillable を使用nillable="true"
しminOccurs="0"
ていません。minOccurs
問題は と に関連していると確信していmaxOccurs
ます。
正確な問題を知っていたとしても、外部の人から XSD を取得し、それを変更することは許可されていないため、問題になります。
XSD スニペット:
そこで、別の解決策を探しました。XSD からクラスを生成するときに jaxb-binding.xml を追加すれば、問題を解決できるという結論に常に達しました。
いくつかのバインディングを試しましたが、うまくいきませんでした。
このバインディングでは、取得する JAXBElement は少なくなりますが、クラスではなくインターフェースを取得します。
そして今、誰かが解決策を知っているかどうか尋ねていますか? 最善の解決策は、誰かが機能する jaxb-binding.xml を提供してくれることです。
xjc コンパイラのバージョン 2.2.4-2 を使用しています。
前もって感謝します!