If you are trying to add header using the tips provided here Example Custom Headers and where as you are using rampart to engage then you are like to face the above problem.
Solution for that is to add your own module.xml in the META-INF and add the out flow where you are adding your custom header
<module name="test" class="exampleClass">
<OutFlow>
<handler name="handle" class="exampleClass">
<order phase="Security" />
</handler>
</OutFlow>
</module>
==================================================================================
public class exampleClass AbstractHandler implements org.apache.axis2.modules.Module {
public InvocationResponse invoke(MessageContext ctx) throws AxisFault {
SOAPEnvelope env = ctx.getEnvelope();
SOAPHeader hdr = env.getHeader();
SOAPFactory factory = (SOAPFactory) env.getOMFactory();
OMNamespace ns = factory.createOMNamespace("http://google.com", "cor");
//SOAPHeader head = factory.createSOAPHeader(env);
hdr.addHeaderBlock("india", ns).setText("value here");
return InvocationResponse.CONTINUE;
}
public void applyPolicy(Policy arg0, AxisDescription arg1) throws AxisFault {
// TODO Auto-generated method stub
}
public boolean canSupportAssertion(Assertion arg0) {
// TODO Auto-generated method stub
return false;
}
public void engageNotify(AxisDescription arg0) throws AxisFault {
// TODO Auto-generated method stub
}
public void init(ConfigurationContext arg0, AxisModule arg1) throws AxisFault {
// TODO Auto-generated method stub
}
public void shutdown(ConfigurationContext arg0) throws AxisFault {
// TODO Auto-generated method stub
} }
================================================================================
In the client engage your module before rampart like
Options options = serviceClient.getOptions();
serviceClient.engageModule("test");
options.setProperty(RampartMessageData.KEY_RAMPART_POLICY,loadPolicy("policy.xml"));
serviceClient.engageModule("rampart");
..
..