I'm stuck with this problem. Please help.

To make it short:

Given the following method in a published service interface:

Object getResult();

 and a service implementation and some class Foo:

public Object getResult(){
return new Foo();
}


When the remote consumer tries calling getResult via the service proxy it 
gets this akin exception:
org.apache.cxf.interceptor.Fault: Could not determine how to read type: 
{..some qname..}  Foo


I tried to let aegis know about the extra  type (Foo) customizing the 
AegisConext object by putting the following code in 
my_bundle/META-INF/spring/context.xml:

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans";
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xmlns:context="http://www.springframework.org/schema/context";
        xmlns:cxf="http://cxf.apache.org/core"; xmlns:jaxws="
http://cxf.apache.org/jaxws";
        xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
        http://www.springframework.org/schema/context
        
http://www.springframework.org/schema/context/spring-context-2.5.xsd
        http://cxf.apache.org/core
        http://cxf.apache.org/schemas/core.xsd
        http://cxf.apache.org/jaxws
        http://cxf.apache.org/schemas/jaxws.xsd";
        default-autowire="byName"> 
        <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" /> 

        <bean id="aegisDatabinding" 
class="org.apache.cxf.aegis.databinding.AegisDatabinding">
                <property name="aegisContext">
                        <bean class="org.apache.cxf.aegis.AegisContext">
                                <property name="writeXsiTypes" 
value="true" />
                                <property name="rootClassNames">
                                        <set>
 <value>some.package.Foo</value>

                                        </set>
                                </property>
                        </bean>
                </property>
        </bean>
</beans>

When debugging it seems this is picked up by spring, so an AegisContext 
object is instantiated with the good values of  writeXsiTypes and 
rootClassNames props. Yet another instance of AegisDatabinding with the 
"wrong" AegisContext  is created, bound to my service then used when the 
remote consumer is interacting with my  osgi service through the proxy! 

Is this the right way to solve such problems under DOSGi? if so what am I 
doing wrong? 

Please help, we're initially stuck at this very point while integrating 
DOSGi with our osgi app. 


- We are using DOSGi snapshot 1.1 with zooKeeper  based discovery.
- The only point our osgi app comes in touch with Spring or cxf 
webservices is through DOSGi. 
- I didn't change any xml file in the META-INF/cxf/  of the Snapshot DSW.

Any help is kindly  appreciated :)
Many thanks.





Reply via email to