Hi,

We implemented a simple service containing the following echoStringMap method:
----------------------------------------------------------------------------------------------------------
@WebMethod(operationName = "echoStringMap", action = "urn:echoStringMap")
@WebResult(name = "echoStringMapResponse")
public Map<String, String> echoStringMap(Map<String, String> a) {
        return a;
}
----------------------------------------------------------------------------------------------------------

and this is how the method description looks like in service.aegis.xml:

----------------------------------------------------------------------------------------------------------
<method name="echoStringMap">
        <parameter index="1" class="java.util.Map" 
componentType="java.lang.String" keyType="java.lang.String" />
        <return-type componentType="java.lang.String" class="java.util.Map" 
keyType="java.lang.String"/>
</method>
----------------------------------------------------------------------------------------------------------

The problem is that the generated WSDL is incorrect. For the returned type it 
puts correctly string2stringMap, but for the parameter no (it puts 
anyType2anyTypeMap).

Also, even if we replaced that type in the WSDL with the correct one registered 
a corresponding Type for marshalling at the client side and unmarshalling at 
the server side, at runtime XFire logs something like:

xsi:type="{http://example.com}string2stringMap"; was specified, but no 
corresponding Type was registered; defaulting to 
{http://example.com}anyType2anyTypeMap

Any clue if this is a bug, or we did something wrong?

Thanks a lot.

Cheers,
Tudor

Reply via email to