nexus oss plugin を書いています。私のサーバーは、nexus oss が応答を送信するこの nexus oss アプリに休憩要求を出します。しかし、残りの応答で空の uri で提案したように、そこに提案されているようにエラーがスローされます。@Blaise Doughan に感謝します。したがって、回答者の@Blaise Doughanは、サーバーにあるパッケージ名と一致するように、応答に対応するパッケージ名を作成することを提案しました。だから私はそれをしました。これで、将来起こりうる潜在的な問題(パッケージ名の問題)が解決されました。しかし、それでも同じエラーがスローされます。
したがって、デバッグするために、サーバーがそのようなエラーをスローしない他のアプリ(「apache cxf」を使用する)を使用しました.xml応答が
<ns2:com.collabnet.teamforge.ia.GetConfigurationParametersResponse
xmlns:ns2="http://www.collab.net/teamforge/integratedapp"/>
しかし、私のアプリ(サーバーにエラーをスローさせる)の場合、応答は
<com.collabnet.teamforge.ia.GetConfigurationParametersResponse/>
したがって、これらの応答で見つかった唯一の潜在的な違いは、名前空間 " http://www.collab.net/teamforge/integratedapp " です。リンクされた回答で、@Blaise Doughan は、応答が xstream からのものであるように思われることを示唆しました。その後、nexus oss が内部で xstream を使用していることを後で確認しました。
ここで問題が発生します.xstream Webサイトで、このメモを見つけました:
XStream に名前空間のサポートがないのはなぜですか?
すべての XML パーサーが名前空間をサポートしているわけではなく、名前空間をサポートするすべての XML パーサーがそれらを使用するように XStream 内で構成できるわけではありません。基本的に、名前空間はさまざまな XML パーサーに対して個別にサポートする必要があり、現在 XStream で実装されている名前空間のサポートは StAX パーサーのみです。したがって、名前空間を使用するには、XStream の StaxDriver を使用および構成します。
これにより、xstream は名前空間をサポートしていないため、応答で名前空間を送信しないことがわかります。したがって、私のサーバーは、名前空間 " http://www.collab.net/teamforge/integratedapp " で設定された uri を望んでいます。ただし、xstream を使用する nexus oss は、応答で名前空間を送信しません。
質問 1: 注 で提案されているように、ドライバー (StaxDriver) を構成するための強力な機能がプラグインに与えられるとは思いません。これは nexus oss のコード ウォークスルーに基づいています。プラグイン自体からこれを行う他の方法はありますか?
質問 2: 質問 1 の解決策がない場合、nexus oss コードを微調整する必要があることを示唆していますか? http://blog.bdoughan.com/2010/10/how-does-jaxb-compare-to-xstream.htmlの「Applying Namespaces」という見出しの下で提案されているように、デフォルトの名前空間を作成します。これが最終的な解決策ですか?nexus oss のアップグレード中に問題が発生するため、コア nexus oss を変更することはお勧めできません。
質問 3: 解決策として balise の staxDriver を呼び出す方法が提案されたとしても、問題は私の nexus oss が内部で XppDriver を使用していることです。
アプリは内部的に XppDriver のみを使用するため、ブレーズがブログで述べたことを適用することは可能ですか?. Blaise はそのブログで StaxDriver を使用して名前空間を設定するため (そして、彼は StaxDriver のみがこの名前空間の設定を許可し、上記の「XStream に名前空間のサポートがないのはなぜですか?」トピックの下にある公式の xstream ノートでもそれを確認していると付け加えています)。
助けてください。
ありがとう