私は Oracle 11g データベース (つまり JDK 1.5) を使用しており、SOAP で Web サービスを呼び出そうとしています。ws-security を使用する必要があるため、次のドキュメントに従いました: http://docs.oracle.com/cd/E15523_01/security.1111/e10037/wss.htm
ドキュメントのすべてを実行しましたが、setWsuID メソッドを使用して X509BinarySecurityToken に WsuID を設定しようとすると、次のスタックトレースで AbstractMethodError が発生します。
org.apache.axis.SOAPPart.getUserData(Ljava/lang/String;)Ljava/lang/Object;
oracle.security.xmlsec.util.IDCache.getIdCache(IDCache.java:139)
oracle.security.xmlsec.util.IDCache.addToIDCache(IDCache.java:199)
oracle.security.xmlsec.wss.util.WSSUtils.addWsuIdToElement(WSSUtils.java:476)
oracle.security.xmlsec.wss.WSSElement.setWsuId(WSSElement.java:107)
Discimus.generateSoapMessage(Discimus.java:162)
それが起こるコード:
X509BinarySecurityToken x509token = ws.createBST_X509((X509Certificate)certificate);
x509token.setWsuId("MyCert");
ws.addX509CertificateToken(x509token);
JDK 1.7 を使用してコードを実行しようとすると、すべてが完全に機能するので、ライブラリの問題だと思いますか? org.apache.axis.SOAPPart ファイルは axis.jar にあり、org.w3c.dom.Node から getUserData メソッドを継承します ( http://www.docjar.com/docs/api/org/apache/axis/SOAPPart .html )。
私がどこを見ることができるか、またはどこが間違っているか、誰かが知っていますか? 他のバージョンの axis.jar を使用してみましたが、それでも同じエラーが発生します。
前もって感謝します!