私はXMLBeansを初めて使用し、それを使用してaxis2Webサービスの一部としてXMLドキュメントを作成しようとしています。コードを標準のJavaアプリケーションまたは標準のサーブレットとして実行すると、XMLが正しく生成されます。
<?xml version="1.0" encoding="UTF-8"?>
<c:BroadsoftDocument protocol="OCI" xmlns:c="C">
<sessionId>000000001</sessionId>
<command xsi:type="AuthenticationRequest" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<userId>admin</userId></command>
</c:BroadsoftDocument>
ただし、サーブレットのAxis2とTomcatでまったく同じコードを実行すると、次のようになります。
<?xml version="1.0" encoding="UTF-8"?>
<c:BroadsoftDocument protocol="OCI" xmlns:c="C">
<sessionId>000000001</sessionId>
<command>
<userId>admin</userId></command>
</c:BroadsoftDocument>
もちろん、これは有効ではありません。コードがTomcatで実行されると、「コマンド」要素のxsi:typeが削除されます。
Axis2で実行している場合にのみこのタイプの問題を引き起こす可能性がある、私が間違っている可能性があることについて誰かが提案していますか?最初はTomcatの問題だと思っていましたが、汎用サーブレットを作成してまったく同じコードを実行した後は、問題はありません。XMLBeansのXMLOptionsを試してみましたが、問題を解決できなかったようです。私が現在使用しているオプションは次のとおりです。
xmlOptions = new XmlOptions();
xmlOptions.setCharacterEncoding("UTF-8");
xmlOptions.setUseDefaultNamespace();
xmlOptions.setSaveAggressiveNamespaces();
xmlOptions.setSavePrettyPrint();