古い機器をテストするには、(開発しなかった)古いソフトウェアを入手する必要がありました。機器は、Webサービスによってサーバーと「通信」します。これらのWebサービスはaxisによって自動生成されます(Axisはクラスを取得し、そのメソッドからWebサービスを作成します)。
問題は次のとおりです。機器は次のようなxmlを読み取るように開発されました。
<ns:getReferenceCurveResponse xmlns:ns="http://services.teste.org" xmlns:ax22="http://data.teste.org/xsd" xmlns:ax23="http://util.java/xsd">
<ns:return type="org.teste.ReferenceCurve">
<ax21:createdOn>2012-08-16 17:00:59.0</ax21:createdOn>
<ax21:endPoint>9.2</ax21:endPoint>
<ax21:fiberId>21</ax21:fiberId>
<ax21:id>42</ax21:id>
そして今、Webサービスは次のようになっています。
<ns:getReferenceCurveResponse xmlns:ns="http://services.teste.org" xmlns:ax22="http://data.teste.org/xsd" xmlns:ax23="http://util.java/xsd">
<ns:return type="org.teste.ReferenceCurve">
<ax22:createdOn>2012-08-16 17:00:59.0</ax22:createdOn>
<ax22:endPoint>9.2</ax22:endPoint>
<ax22:fiberId>21</ax22:fiberId>
<ax22:id>42</ax22:id>
お気づきのとおり、名前空間のプレフィックスがax21からax22に変更されました。これは、機器がプレフィックスax21にコーディングされているため、エラーが発生しています。
私は解決策を探しましたが、見つかりませんでした。サーバー側を再コンパイルしましたが、これも成功しませんでした。Axis2によって自動生成されるため、この名前空間プレフィックスを変更する場所が見つかりませんでした