wsdl と xsd から Web サービス クライアント (JAX-WS) とモデルを生成しました。石鹸本体内の名前空間に問題があります。
2 つのクラスがあるとします。
@XmlRootElement(namespace="aNamespace") class A {
@XmlAnyElement(lax = true) Object obj;
}
@XmlRootElement(namespace="bNamespace") class B {...}
送信したいオブジェクトは「a」です。
A a = new A();
a.obj = new B();
私が呼び出しているサービスは、V1 または V3 リクエストのいずれかを想定しています。
V1
...
<soapenv:Body>
<A xmlns="aNamespace">
<B xmlns="bNamespace">
<B1>...</B1>
<B2>...</B2>
</B>
</A>
</soapenv:Body>
...
V3
...
<soapenv:Body>
<a:A xmlns:a="aNamespace">
<b:B xmlns:b="bNamespace">
<b:B1>...</b:B1>
<b:B2>...</b:B2>
</b:B>
</a:A>
</soapenv:Body>
...
サービスを呼び出そうとすると、次のリクエストが生成されます。
V2
...
<soapenv:Body>
<a:A xmlns:a="aNamespace", xmlns:b="bNamespace">
<b:B>
<b:B1>...</b:B1>
<b:B2>...</b:B2>
</b:B>
</a:A>
</soapenv:Body>
...
そして、サービスはエラーを返します。
どうにかしてデフォルトの名前空間を B に設定できますか (そうすれば が表示されます<B xmlns="bNamespace">
)?