tags:

views:

6

answers:

0

The problem I'm facing is that the client of my service will never send me a SOAPAction header.

How can I tell Axis to still map to the incomming call to my service implementation anyway. I did bump into tricks like adding a Handler like this:

<handler name="ReportMapper" type="java:com.mycompany.project.ReportMapper"/>

<transport name="http">
    <requestFlow>
        <handler type="ReportMapper"/>
        <handler type="URLMapper"/>
        <handler type="java:org.apache.axis.handlers.http.HTTPAuthHandler"/>
    </requestFlow>
    <parameter name="qs:list" value="org.apache.axis.transport.http.QSListHandler"/>
    <parameter name="qs:wsdl" value="org.apache.axis.transport.http.QSWSDLHandler"/>
    <parameter name="qs.list" value="org.apache.axis.transport.http.QSListHandler"/>
    <parameter name="qs.method" value="org.apache.axis.transport.http.QSMethodHandler"/>
    <parameter name="qs:method" value="org.apache.axis.transport.http.QSMethodHandler"/>
    <parameter name="qs.wsdl" value="org.apache.axis.transport.http.QSWSDLHandler"/>
</transport>

but that did not help. The mapper is found during the creation of the WSDL but when calling the service, the invoke of the handler is not used.

I do need to note that when I simulate the SOAP-call using @curl@ and I do add the SOAPAction header, the invoke is called.

Any help would be most appreciated.