Apache AXIS解析中に追加要素を無視/スキップする

当社は第三者のウェブサービスを利用しています。新しい要素を追加するようなXMLスキーマを更新するたびに、次のエラーメッセージが表示されます。

"SAXException:無効な要素..."

XMLで受け取った追加要素を解析する際にAXISにスキップする方法はありますか?

私は以前AXISを使用してWebサービスクライアントを生成しました。私は以下のようにXMLを受け取るために使用しました


   AB 

すべてがうまくいっていた。しかし、今私は応答で追加のタグを取得しています。


   AB 
   XX 

そして、私は "無効な要素"例外を取得しています。

ありがとう

6
nl ru de
受け取ったコードと応答XMLのスナップショットを共有します。
追加された 著者 Rahul Agrawal,
@ラフル:私は私の質問を含めている。
追加された 著者 Ankur Raiyani,
新しいWSDLに基づいてクラスを提供および再生成するWSDLを使用することも、提供されたWSDLバージョンに基づいて「下位互換性」スキームをよりよく維持することもできます(これは、サーバーのバージョンを示す応答。
追加された 著者 pankar,

2 答え

Apache Axis2バージョン1.7.0-SNAPSHOTには、コンパイルによって rel="nofollow">予期しない要素を無視する機能があります -Eiu スイッチを使用してください。

1.7.0-スナップショット

3
追加された

Danielの答えが役立つはずですが、Axis2から得られる出力はAxisから得られる出力と大きく異なりますので、おそらく統合をやや書き直す必要があるでしょう。また、彼が提供したリンクはAxis2のサブセット用です。

You're going to need the whole shebang for it to work and that's available here since, as of this writing, I couldn't find this release managed on any maven repositories: https://repository.apache.org/content/groups/snapshots/org/apache/axis2/axis2/1.7.0-SNAPSHOT/

このバージョンは現在、依存関係を把握しているmavenでは管理されていないため、大きな苦痛です。ここに私が使ったgradleの依存関係のスナップショットがあります:

compile 'org.apache.ws.commons.schema:XmlSchema:1.4.7'
compile 'org.apache.ws.commons.axiom:axiom-api:1.2.15'
compile 'org.apache.neethi:neethi:3.0.1'
compile 'axis:axis-wsdl4j:1.6.3'
compile 'commons-logging:commons-logging:1.1.1'
compile files('C:\\temp\\wsdl\\axis2-1.7.0-SNAPSHOT.jar', 'C:\\temp\\wsdl\\axiom.jar')
compile group: 'commons-collections', name: 'commons-collections', version: '3.2'

公理依存は手動でダウンロードしなければならなかったものでした。なぜなら、リポジトリ管理バージョンを使用しようとすると、私には分かりません。

これを除いて、Axisテクノロジスタックと結婚していない場合は、スキップ構造を変更できるWebサービスに対応できる動的なWSDLとJavaフレームワークを統合することを避けてください。

0
追加された
私はmaven中央リポジトリを意味しました。しかし、それはあなたが提供したリンクがAxisライブラリの一部に過ぎないという事実も変わりません。私はこれらのばかげたdownvotesが何であるかわからない
追加された 著者 IcedDante,
申し訳ありませんが、「あなた」のリンクでは、私は受け入れられた回答に掲載されたリンクを参照していました。はい、リポジトリにはすべてのアーティファクトのjarが含まれていますが、そのアーティファクトを検索する必要があります。私はそれに直接リンクしました。もう一度 - 私はなぜこれが下落されたのか分かりません。私はこのバージョンを私のシステム上で動かすために長い時間を費やしていました。ここに書かれているドキュメントは、他の誰もが同じことをするのを忘れてしまいます。
追加された 著者 IcedDante,
「このリリースが任意のリポジトリで管理されていることはわかりませんでした」実際、リンクはMavenリポジトリを指しています。 Mavenセントラルリポジトリで見つからなかった可能性があります。これはリリースではなく、バージョン番号の "-SNAPSHOT"によって暗示されているように、スナップショットであるので、それは期待されています...
追加された 著者 Andreas Veithen,
「公理の依存関係は、私が手動でダウンロードしなければならないことでした。これは、リポジトリ管理バージョンを使用しようとすると、私には分かりません。これは、「公理api」を追加しただけで、「公理」は追加しないためです(後者はスコープ「ランタイム」の依存関係として追加する必要があります)。
追加された 著者 Andreas Veithen,
私はリンクを提供しませんでした。あなたの答えに投稿したリンクを参照していました。そのリンクは実際には様々なAxis2コンポーネントの部分集合であるuber-JARを指していますが、詳細を見ると、リポジトリにはすべての成果物が含まれていることがわかります。
追加された 著者 Andreas Veithen,
あなたが間違ったアプローチをとったので、あなたは多くの時間を費やしました。スナップショットリポジトリとして repository.apache.org/content/groups/snapshots を追加するだけですビルドとすべての依存関係が自動的にダウンロードされます。
追加された 著者 Andreas Veithen,