I've searched the archive about the problems I am having but didn't find anything similar to what I'll be reporting. So as a start, here's a brief background on what I've been doing.. I'm using the Globus toolkit which a grid middleware that uses the latest Axis release (without the Attachments support). Globus deploys a service called ManagedJobFactoryService and we want to get more information from this service that it is not currently publishing. Hacking the source won't be an option because we deploy Globus using it's binary release. The developers suggested that we write an Axis Handler to get the information we need and modify the SOAP message to include that information we've gathered. The MJFS service is supposed to handle the message if it's in a format that it can understand.
I followed their suggestions and wrote a handler, UserCredentialHandler which extends the BasicHandler. In it's invoke message, I access the information we need and put that in an "extensions" element inside the SOAPBody so when the message reaches the MJFS service, it can be handled properly. So here's the problem, the contents of the SOAPBody in MJFS doesn't show the extra information that I inserted into the message in my handler. I have a feeling that Axis is doing some caching of the message before it enters the Handler and uses that cached message when it gets to the Service.
I'm using a logger so I can verify that the SOAP message really got modified in my handler. But when it reached the MJFS service, the extra information isn't there anymore.
Here's the SOAPBody.toString() output before I modified the message in the UserCredentialHandler's invoke method:
<soapenv:Body xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
...
<ns08:extensions>
<test_hello>gerryjr</test_hello>
<ns0A:globusrunAnnotation ns04:type="ns0A:globusrunwsAnnotationType" .../>
</ns08:extensions>
...
</soapenv:Body>
Here's the SOAPBody.toString() output after I've inserted the extra information we need and just before the message left the Handler:
<soapenv:Body xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
...
<ns08:extensions>
<test_hello>gerryjr</test_hello>
<ns0A:globusrunAnnotation ns04:type="ns0A:globusrunwsAnnotationType" .../>
<usercert_dn>gerryjr</usercert_dn>
</ns08:extensions>
...
</soapenv:Body>
And here's the SOAPBody.toString() when it reached the MJFS service:
<soapenv:Body xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
...
<ns7:extensions>
<test_hello>gerryjr</test_hello>
<ns0A:globusrunAnnotation ns04:type="ns0A:globusrunwsAnnotationType" .../>
</ns7:extensions>
...
</soapenv:Body>
As you can see the step-by-step examples I've given above, the message got modified again and even the namespace prefix even got changed when it reached the MJFS service. I've attached the SOAPBody message just before it left the UserCredentialHandler (file: handler.xml) and when it reached the MJFS service (file: mjfs.xml) so you can have a more detailed look of what happened to the message.
I couldn't figure out why this would happen because there are no other handlers between the UserCredentialHandler and MJFS service that might modify the service. So to check/confirm that the SOAPBody in MJFS doesn't really have a reference to the extra usercert_dn element that I added in my handler anymore, I went through all its child elements (of SOAPBody) and found out that it (the usercert_dn element) actually is still there. So now, I'm totally clueless as to why the SOAPBody.toString() call in MJFS didn't show the new element that I added to the extensions element. Here's a printout of the extensions' SOAPElement when I went inside the elements inside the SOAPBody.
<ns08:extensions>
<test_hello>gerryjr</test_hello>
<ns0A:globusrunAnnotation ns04:type="ns0A:globusrunwsAnnotationType" .../>
<usercert_dn>gerryjr</usercert_dn>
</ns08:extensions>
Can you tell me why the SOAPBody (in MJFS) is not showing the modified SOAP message? Is there a way to fix this? Is this an Apache Axis bug?
BTW, here's how I've configured the deployment descriptor for the MJFS service so it uses the handler I've written:
<service name="ManagedJobFactoryService" provider="Handler"
use="literal" style="document">
<requestFlow>
<handler type="java:au.edu.sapac.axis.handler.UserCredentialHandler"/>
</requestFlow>
....
</service>
Thanks,
Gereson
<soapenv:Body xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <ns1:createManagedJob xmlns:ns1="http://www.globus.org/namespaces/2004/10/gram/job"> <ns1:InitialTerminationTime>2006-10-31T01:47:35.000Z</ns1:InitialTerminationTime> <ns1:JobID>uuid:9d80be80-67b8-11db-9e8e-00163ea00300</ns1:JobID> <ns2:Subscribe xmlns:ns2="http://docs.oasis-open.org/wsn/2004/06/wsn-WS-BaseNotification-1.2-draft-01.xsd"> <ns2:ConsumerReference> <ns3:Address xmlns:ns3="http://schemas.xmlsoap.org/ws/2004/03/addressing">https://grid.sapac.edu.au:46296/wsrf/services/NotificationConsumerService</ns3:Address> <ns4:ReferenceProperties xmlns:ns4="http://schemas.xmlsoap.org/ws/2004/03/addressing"> <ns06:ResourceID ns04:type="ns05:string" xmlns:ns04="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns05="http://www.w3.org/2001/XMLSchema" xmlns:ns06="http://www.globus.org/docs.oasis-open.org/wsn/2004/06/wsn-WS-BaseNotification-1.2-draft-01.wsdl">9d8377ec-67b8-11db-9e8e-00163ea00300</ns06:ResourceID> </ns4:ReferenceProperties> <ns5:ReferenceParameters xmlns:ns5="http://schemas.xmlsoap.org/ws/2004/03/addressing"/> </ns2:ConsumerReference> <ns2:TopicExpression ns2:Dialect="http://docs.oasis-open.org/wsn/2004/06/TopicExpression/Simple" xmlns:ns6="http://www.globus.org/namespaces/2004/10/gram/job/types">ns6:state</ns2:TopicExpression> <ns2:UseNotify>true</ns2:UseNotify> </ns2:Subscribe> <ns7:job xmlns:ns7="http://www.globus.org/namespaces/2004/10/gram/job/description"> <ns7:factoryEndpoint> <ns8:Address xmlns:ns8="http://schemas.xmlsoap.org/ws/2004/03/addressing">https://ng2dev:8443/wsrf/services/ManagedJobFactoryService</ns8:Address> <ns9:ReferenceProperties xmlns:ns9="http://schemas.xmlsoap.org/ws/2004/03/addressing"> <ns1:ResourceID ns04:type="ns05:string" xmlns:ns04="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns05="http://www.w3.org/2001/XMLSchema">PBS</ns1:ResourceID> </ns9:ReferenceProperties> <ns10:ReferenceParameters xmlns:ns10="http://schemas.xmlsoap.org/ws/2004/03/addressing"/> </ns7:factoryEndpoint> <ns7:jobCredentialEndpoint> <ns11:Address xmlns:ns11="http://schemas.xmlsoap.org/ws/2004/03/addressing">https://129.127.96.105:8443/wsrf/services/DelegationService</ns11:Address> <ns12:ReferenceProperties xmlns:ns12="http://schemas.xmlsoap.org/ws/2004/03/addressing"> <ns1:DelegationKey xmlns:ns1="http://www.globus.org/08/2004/delegationService">a74211d0-67b8-11db-9633-d4c197a0f287</ns1:DelegationKey> </ns12:ReferenceProperties> <ns13:ReferenceParameters xmlns:ns13="http://schemas.xmlsoap.org/ws/2004/03/addressing"/> </ns7:jobCredentialEndpoint> <ns7:stagingCredentialEndpoint> <ns14:Address xmlns:ns14="http://schemas.xmlsoap.org/ws/2004/03/addressing">https://129.127.96.105:8443/wsrf/services/DelegationService</ns14:Address> <ns15:ReferenceProperties xmlns:ns15="http://schemas.xmlsoap.org/ws/2004/03/addressing"> <ns1:DelegationKey xmlns:ns1="http://www.globus.org/08/2004/delegationService">a74211d0-67b8-11db-9633-d4c197a0f287</ns1:DelegationKey> </ns15:ReferenceProperties> <ns16:ReferenceParameters xmlns:ns16="http://schemas.xmlsoap.org/ws/2004/03/addressing"/> </ns7:stagingCredentialEndpoint> <ns17:holdState xmlns:ns17="http://www.globus.org/namespaces/2004/10/gram/job/types">CleanUp</ns17:holdState> <ns7:executable>/usr/bin/env</ns7:executable> <ns7:stdout>/${GLOBUS_USER_HOME}/9d80be80-67b8-11db-9e8e-00163ea00300.0.stdout</ns7:stdout> <ns7:stderr>/${GLOBUS_USER_HOME}/9d80be80-67b8-11db-9e8e-00163ea00300.0.stderr</ns7:stderr> <ns7:queue>[EMAIL PROTECTED]</ns7:queue> <ns7:maxWallTime>1</ns7:maxWallTime> <ns7:jobType>single</ns7:jobType> <ns7:fileCleanUp> <ns18:transferCredentialEndpoint xmlns:ns18="http://www.globus.org/namespaces/2004/10/rft"> <ns19:Address xmlns:ns19="http://schemas.xmlsoap.org/ws/2004/03/addressing">https://129.127.96.105:8443/wsrf/services/DelegationService</ns19:Address> <ns20:ReferenceProperties xmlns:ns20="http://schemas.xmlsoap.org/ws/2004/03/addressing"> <ns1:DelegationKey xmlns:ns1="http://www.globus.org/08/2004/delegationService">a74211d0-67b8-11db-9633-d4c197a0f287</ns1:DelegationKey> </ns20:ReferenceProperties> <ns21:ReferenceParameters xmlns:ns21="http://schemas.xmlsoap.org/ws/2004/03/addressing"/> </ns18:transferCredentialEndpoint> <ns22:deletion xmlns:ns22="http://www.globus.org/namespaces/2004/10/rft"> <ns22:file>file:///${GLOBUS_USER_HOME}/9d80be80-67b8-11db-9e8e-00163ea00300.0.stdout</ns22:file> </ns22:deletion> <ns23:deletion xmlns:ns23="http://www.globus.org/namespaces/2004/10/rft"> <ns23:file>file:///${GLOBUS_USER_HOME}/9d80be80-67b8-11db-9e8e-00163ea00300.0.stderr</ns23:file> </ns23:deletion> </ns7:fileCleanUp> <ns7:extensions> <test_hello xmlns="">gerryjr</test_hello> <ns0A:globusrunAnnotation ns04:type="ns0A:globusrunwsAnnotationType" xmlns:ns0A="http://www.globus.org/namespaces/2004/10/gram/globurunws" xmlns:ns04="http://www.w3.org/2001/XMLSchema-instance"> <ns0A:automaticJobDelegation ns04:type="ns05:boolean" xmlns:ns05="http://www.w3.org/2001/XMLSchema">true</ns0A:automaticJobDelegation> <ns0A:automaticStagingDelegation ns04:type="ns05:boolean" xmlns:ns05="http://www.w3.org/2001/XMLSchema">false</ns0A:automaticStagingDelegation> <ns0A:automaticStageInDelegation ns04:type="ns05:boolean" xmlns:ns05="http://www.w3.org/2001/XMLSchema">false</ns0A:automaticStageInDelegation> <ns0A:automaticStageOutDelegation ns04:type="ns05:boolean" xmlns:ns05="http://www.w3.org/2001/XMLSchema">false</ns0A:automaticStageOutDelegation> <ns0A:automaticCleanUpDelegation ns04:type="ns05:boolean" xmlns:ns05="http://www.w3.org/2001/XMLSchema">false</ns0A:automaticCleanUpDelegation> </ns0A:globusrunAnnotation> </ns7:extensions> </ns7:job> </ns1:createManagedJob></soapenv:Body>
<soapenv:Body xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <ns1:createManagedJob xmlns:ns1="http://www.globus.org/namespaces/2004/10/gram/job"> <ns1:InitialTerminationTime>2006-10-31T01:47:35Z</ns1:InitialTerminationTime> <ns1:JobID>uuid:9d80be80-67b8-11db-9e8e-00163ea00300</ns1:JobID> <ns02:Subscribe xmlns:ns02="http://docs.oasis-open.org/wsn/2004/06/wsn-WS-BaseNotification-1.2-draft-01.xsd"> <ns02:ConsumerReference> <ns03:Address xmlns:ns03="http://schemas.xmlsoap.org/ws/2004/03/addressing">https://grid.sapac.edu.au:46296/wsrf/services/NotificationConsumerService</ns03:Address> <ns03:ReferenceProperties xmlns:ns03="http://schemas.xmlsoap.org/ws/2004/03/addressing"> <ns06:ResourceID ns04:type="ns05:string" xmlns:ns04="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns05="http://www.w3.org/2001/XMLSchema" xmlns:ns06="http://www.globus.org/docs.oasis-open.org/wsn/2004/06/wsn-WS-BaseNotification-1.2-draft-01.wsdl">9d8377ec-67b8-11db-9e8e-00163ea00300</ns06:ResourceID> </ns03:ReferenceProperties> </ns02:ConsumerReference> <ns02:TopicExpression Dialect="http://docs.oasis-open.org/wsn/2004/06/TopicExpression/Simple" xmlns:ns07="http://www.globus.org/namespaces/2004/10/gram/job/types">ns07:state</ns02:TopicExpression> <ns02:UseNotify>true</ns02:UseNotify> </ns02:Subscribe> <ns08:job xmlns:ns08="http://www.globus.org/namespaces/2004/10/gram/job/description"> <ns08:factoryEndpoint> <ns03:Address xmlns:ns03="http://schemas.xmlsoap.org/ws/2004/03/addressing">https://ng2dev:8443/wsrf/services/ManagedJobFactoryService</ns03:Address> <ns03:ReferenceProperties xmlns:ns03="http://schemas.xmlsoap.org/ws/2004/03/addressing"> <ns1:ResourceID ns04:type="ns05:string" xmlns:ns04="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns05="http://www.w3.org/2001/XMLSchema">PBS</ns1:ResourceID> </ns03:ReferenceProperties> </ns08:factoryEndpoint> <ns08:jobCredentialEndpoint> <ns03:Address xmlns:ns03="http://schemas.xmlsoap.org/ws/2004/03/addressing">https://129.127.96.105:8443/wsrf/services/DelegationService</ns03:Address> <ns03:ReferenceProperties xmlns:ns03="http://schemas.xmlsoap.org/ws/2004/03/addressing"> <ns1:DelegationKey xmlns:ns1="http://www.globus.org/08/2004/delegationService">a74211d0-67b8-11db-9633-d4c197a0f287</ns1:DelegationKey> </ns03:ReferenceProperties> </ns08:jobCredentialEndpoint> <ns08:stagingCredentialEndpoint> <ns03:Address xmlns:ns03="http://schemas.xmlsoap.org/ws/2004/03/addressing">https://129.127.96.105:8443/wsrf/services/DelegationService</ns03:Address> <ns03:ReferenceProperties xmlns:ns03="http://schemas.xmlsoap.org/ws/2004/03/addressing"> <ns1:DelegationKey xmlns:ns1="http://www.globus.org/08/2004/delegationService">a74211d0-67b8-11db-9633-d4c197a0f287</ns1:DelegationKey> </ns03:ReferenceProperties> </ns08:stagingCredentialEndpoint> <ns07:holdState xmlns:ns07="http://www.globus.org/namespaces/2004/10/gram/job/types">CleanUp</ns07:holdState> <ns08:executable>/usr/bin/env</ns08:executable> <ns08:stdout>/${GLOBUS_USER_HOME}/9d80be80-67b8-11db-9e8e-00163ea00300.0.stdout</ns08:stdout> <ns08:stderr>/${GLOBUS_USER_HOME}/9d80be80-67b8-11db-9e8e-00163ea00300.0.stderr</ns08:stderr> <ns08:queue>[EMAIL PROTECTED]</ns08:queue> <ns08:maxWallTime>1</ns08:maxWallTime> <ns08:jobType>single</ns08:jobType> <ns08:fileCleanUp> <ns09:transferCredentialEndpoint xmlns:ns09="http://www.globus.org/namespaces/2004/10/rft"> <ns03:Address xmlns:ns03="http://schemas.xmlsoap.org/ws/2004/03/addressing">https://129.127.96.105:8443/wsrf/services/DelegationService</ns03:Address> <ns03:ReferenceProperties xmlns:ns03="http://schemas.xmlsoap.org/ws/2004/03/addressing"> <ns1:DelegationKey xmlns:ns1="http://www.globus.org/08/2004/delegationService">a74211d0-67b8-11db-9633-d4c197a0f287</ns1:DelegationKey> </ns03:ReferenceProperties> </ns09:transferCredentialEndpoint> <ns09:deletion xmlns:ns09="http://www.globus.org/namespaces/2004/10/rft"> <ns09:file>file:///${GLOBUS_USER_HOME}/9d80be80-67b8-11db-9e8e-00163ea00300.0.stdout</ns09:file> </ns09:deletion> <ns09:deletion xmlns:ns09="http://www.globus.org/namespaces/2004/10/rft"> <ns09:file>file:///${GLOBUS_USER_HOME}/9d80be80-67b8-11db-9e8e-00163ea00300.0.stderr</ns09:file> </ns09:deletion> </ns08:fileCleanUp> <ns08:extensions> <test_hello xmlns="">gerryjr</test_hello> <ns0A:globusrunAnnotation ns04:type="ns0A:globusrunwsAnnotationType" xmlns:ns0A="http://www.globus.org/namespaces/2004/10/gram/globurunws" xmlns:ns04="http://www.w3.org/2001/XMLSchema-instance"> <ns0A:automaticJobDelegation ns04:type="ns05:boolean" xmlns:ns05="http://www.w3.org/2001/XMLSchema">true</ns0A:automaticJobDelegation> <ns0A:automaticStagingDelegation ns04:type="ns05:boolean" xmlns:ns05="http://www.w3.org/2001/XMLSchema">false</ns0A:automaticStagingDelegation> <ns0A:automaticStageInDelegation ns04:type="ns05:boolean" xmlns:ns05="http://www.w3.org/2001/XMLSchema">false</ns0A:automaticStageInDelegation> <ns0A:automaticStageOutDelegation ns04:type="ns05:boolean" xmlns:ns05="http://www.w3.org/2001/XMLSchema">false</ns0A:automaticStageOutDelegation> <ns0A:automaticCleanUpDelegation ns04:type="ns05:boolean" xmlns:ns05="http://www.w3.org/2001/XMLSchema">false</ns0A:automaticCleanUpDelegation> </ns0A:globusrunAnnotation> <usercert_dn>gerry</usercert_dn> </ns08:extensions> </ns08:job> </ns1:createManagedJob> </soapenv:Body>
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
