سؤال

لدي مشكلة في AXIS2-Client Inside Jax-WS Web Service. خدمة WEB JAX-WS هذه داخل حاوية Tomcat. يتم استرجاع KeyStorefile ديناميكيا من قاعدة البيانات. عندما أبدأ Tomcat، يمكنني استخدام WS-Client بشكل طبيعي ويعمل بشكل جيد، ولكن إذا قمت بتغيير المفاتيح، فافشل مع StackTrace الموضحة أدناه. إذا قمت بإعادة تشغيل Tomcat، فإنه يعمل بشكل جيد. هل لدى Rampart أو Tomcat بعض المتغيرات الثابتة التي لا يتم مسحها حتى يتم إعادة تشغيل Tomcat؟ يمكنني استخدام Rampart-Module 1.3 لتوقيع رسالة لخدمة ويب آمنة. أعتقد أن التدفق والتعديلات الخارجية صحيحة منذ أن تم طباعةها في السجل.

The StackTrace في Domcat Catalina Log:

 org.apache.axis2.AxisFault: Error during Signature: ; nested exception is:
        org.apache.ws.security.WSSecurityException: General security error (No certificates for user user1 were found for signature)
        at org.apache.rampart.handler.WSDoAllSender.processMessage(WSDoAllSender.java:67)
        at org.apache.rampart.handler.WSDoAllHandler.invoke(WSDoAllHandler.java:72)
        at org.apache.axis2.engine.Phase.invoke(Phase.java:318)
        at org.apache.axis2.engine.AxisEngine.invoke(AxisEngine.java:251)
        at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:416)
        at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:402)
        at org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:229)
        at org.apache.axis2.client.OperationClient.execute(OperationClient.java:165)
هل كانت مفيدة؟

المحلول

حسنا اكتشفت الحل. كانت الحيلة لاستخدام تكوين السياسة. كنت أستخدم التكوين القديم مع المعلمات. هنا هو رابط إلى بلوق رائع من خلال Thilina:

كيفية بناء Rampart- التكوين برمجيا ..

تذكر أن تحدد ملف Policy.xml عند اتباع هذا البرنامج التعليمي. كان هذا شيئا ما قد نسيت أولا القيام به :)

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top