Details
-
Bug
-
Status: Closed
-
Blocker
-
Resolution: Fixed
-
2.0.1
-
None
-
None
Description
I am trying to migrate from xfire to cxf but need to re-use the aegis mapping files we already have. I have tried using both the simple frontend and the jax-ws front end but I get the same problem. Here is my config:
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:simple="http://cxf.apache.org/simple"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://cxf.apache.org/simple http://cxf.apache.org/schemas/simple.xsd">
<import resource="classpath:services_definition.xml" />
<import resource="classpath:META-INF/cxf/cxf.xml" />
<import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" />
<import resource="classpath:META-INF/cxf/cxf-servlet.xml" />
<simple:server id="spatialQuery" serviceClass="ISpatialQuery" address="/SpatialQuery">
<simple:dataBinding>
<bean class="org.apache.cxf.aegis.databinding.AegisDatabinding" />
</simple:dataBinding>
<simple:serviceBean>
<ref bean="spatialqueryService" /><!-- defined in services_definition.xml -->
</simple:serviceBean>
<!-- did not help...
<simple:serviceFactory>
<ref bean="serviceFactory"/>
</simple:serviceFactory>
-->
</simple:server>
</bens>
The aegis mapping files are taking effect for the object model and the schema for all objects look as they should. The problem is limited to method parameters. What I get in the wsdl for one of the methods looks like this:
<complexType name="findFeaturesByExtent">
<sequence>
<element minOccurs="0" name="arg0" type="ns0:Envelope" />
<element minOccurs="0" name="arg1" type="ns0:SpatialQueryOptions" />
<element minOccurs="0" name="arg2" type="string" />
</sequence>
</complexType>
but it should be (based on the aegis mapping files and the wsdl from xfire with those same mapping files):
<xsd:element name="findFeaturesByExtent">
<xsd:complexType>
<xsd:sequence>
<xsd:element maxOccurs="1" minOccurs="1" name="extent" nillable="true" type="tns:Envelope" />
<xsd:element maxOccurs="1" minOccurs="1" name="spatialQueryOptions" nillable="true" type="tns:SpatialQueryOptions" />
<xsd:element maxOccurs="1" minOccurs="1" name="token" nillable="true" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
Note that I do see that the mapping file for the service is being read but it is just not reflecting on the wsdl:
[01 Sep 07 09:35:25][main XMLTypeCreator DEBUG][getDocument:112] Found mapping file : /ISpatialQuery.aegis.xml
Thank you