You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cxf.apache.org by ku...@yahoo.fr on 2009/03/11 21:08:53 UTC
jaxb + spring + complex object
Hi,
I am using following Framework / library:
- Spring 2.5.6
- CXF 2.1.3
- jaxb for databinding (cxf default)
I declare the following service:
@WebService(serviceName = "PerValueObjectService",portName = "PerValueObjectServicePort",targetNamespace="http://pper.foo.com/pervalueobjectservice";)
public class PerValueObjectServiceEndPoint implements PerValueObjectService {
...
@Override
@WebResult(name="DomainValueObject")
public DomainValueObject getDomain(@WebParam(name = "domainId")int domainId) throws PerException {
...
}
I declare DomainValueObject class as:
@XmlRootElement(name="DomainValueObject")
@XmlType(name="DomainValueObject")
public class DomainValueObject extends AbstractBaseValueObject {
...
}
and I define into my Spring context the service as:
<!-- Value object service -->
<bean id="perValueObjectServiceEndPoint" class="ch.ciip.per.service.ws.PerValueObjectServiceEndPoint">
<property name="perValueObjectService" ref="perValueObjectService"/>
</bean>
<jaxws:endpoint id="perValueObjectServiceWs" implementor="#perValueObjectServiceEndPoint" address="/ValueObjectService"/>
My problem is the jaxb doesn't define complex type DomainValueObject into wsdl and got the error:
Marshalling Error: com.per.valueobject.DomainValueObject is not known to this context
How to tell jaxb where/how to find my class DomainValueObject?
Thanks for help or advice
Willy
Re : jaxb + spring + complex object
Posted by ku...@yahoo.fr.
Hi,
I found the issue all objects use as type should have
- A default constructor (without parameters), note it don't use the parent default constructor
- Getter and setter for each attributs
So You don't need any factory class for marchaling or unmarchaling just XmlType and XmlRootElement annotations.
Willy
----- Message d'origine ----
De : "kurdy_ch-forum@yahoo.fr" <ku...@yahoo.fr>
À : users@cxf.apache.org
Envoyé le : Mercredi, 11 Mars 2009, 21h08mn 53s
Objet : jaxb + spring + complex object
Hi,
I am using following Framework / library:
- Spring 2.5.6
- CXF 2.1.3
- jaxb for databinding (cxf default)
I declare the following service:
@WebService(serviceName = "PerValueObjectService",portName = "PerValueObjectServicePort",targetNamespace="http://pper.foo.com/pervalueobjectservice";)
public class PerValueObjectServiceEndPoint implements PerValueObjectService {
...
@Override
@WebResult(name="DomainValueObject")
public DomainValueObject getDomain(@WebParam(name = "domainId")int domainId) throws PerException {
...
}
I declare DomainValueObject class as:
@XmlRootElement(name="DomainValueObject")
@XmlType(name="DomainValueObject")
public class DomainValueObject extends AbstractBaseValueObject {
...
}
and I define into my Spring context the service as:
<!-- Value object service -->
<bean id="perValueObjectServiceEndPoint" class="ch.ciip.per.service.ws.PerValueObjectServiceEndPoint">
<property name="perValueObjectService" ref="perValueObjectService"/>
</bean>
<jaxws:endpoint id="perValueObjectServiceWs" implementor="#perValueObjectServiceEndPoint" address="/ValueObjectService"/>
My problem is the jaxb doesn't define complex type DomainValueObject into wsdl and got the error:
Marshalling Error: com.per.valueobject.DomainValueObject is not known to this context
How to tell jaxb where/how to find my class DomainValueObject?
Thanks for help or advice
Willy