In my attempts to use SOAP/XML with our local instance of the SIEM, I was using the guide, and its example below did not work for my Java Web Service Client code:
EsmApi api = new McAfeeEsmApiService().getMcAfeeEsmApiPort();
((BindingProvider)api).getRequestContext().put(BindingProvider.SESSION_MAINTAIN_ PROPERTY, true);
My IDE (Eclipse Mars) intellisenses the new McAfeeEsmApiService() as cannot instantiate (it is an abstract class). I changed this to:
EsmApi api = new McAfeeEsmApiServiceLocator().getMcAfeeEsmApiPort();
And the code compiled. When I executed the code, I received the following error:
java.lang.ClassCastException: com.mcafee.siem.api.v3.McAfeeEsmApiServiceSoapBindingStub cannot be cast to javax.xml.ws.BindingProvider
After some digging into superclasses, I found that the interface javax.xml.rpc.Stub applies and a casted EsmApi object can have its property set to maintain the session.
I was now able to log in and stay logged in.
I hope this helps other developers.