Hi folks, I am facing a severe performance problem while using "Axis" along with "Apache xml security".
Basically I am trying to develop a proxy, which does the following things: - 1) Intercepts the incoming message 2) Authneticates the client 3) Invokes another axis soap service by making new soap call. The points (1) and (3) are realized using the Axis and point (2) by Apache xml security. The proxy contains a handler and a back end component. Here is the wsdd file for your reference <deployment name="ProxyService" xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java" xmlns:xsd="http://www.w3.org/2000/10/XMLSchema" xmlns:xsi="http://www.w3.org/2000/10/XMLSchema-instance"> <service name="proxy" provider="java:RPC"> <namespace>http://tempuri.org/</namespace> <parameter name="className" value="tests.security.ProxyService" /> <parameter name="allowedMethods" value="*" /> <requestFlow> <handler type="java:security.AuthenticationHandler"/> </requestFlow> <responseFlow> <handler type="java:security.AuthenticationHandler"/> </responseFlow> </service> </deployment> The authentication handler intercepts the xml message, extracts the certificate and verifies it using apache xml security API. If the certificate is valid, the back end component will make a fresh soap invocation to another mapped soap service. The functionality works fine for me. But I am very much worried about the PERFORMANCE. After "org.apache.xml.security.Init.init()" of xml security is called (during authentication), calling Call.invoke method takes more time. The difference is in the order of multiples of 5. Have any of you faced this problem? Why org.apache.xml.security.Init.init() slows down the Call.invoke() Your help is much appreciated. Regards, Ayyappan Gandhirajan