If the JAXB class is not directly or indirectly referenced from the interface, you'll need to use @XmlSeeAlso at the JAXB class or interface.
Raymond Feng Sent from my iPhone On Oct 13, 2010, at 4:34 AM, Blue Diamond <[email protected]> wrote: > Hi all, > > we developed our services on tuscany 1.6 and are able to inject our objects > containing business logic into SCA service objects. but this is not working > in 2.0 for when I am invoking my "addReference(object)" on my service, it is > using JAXB binding (probably invoking on WS instead of SCA binding?). > > service composite has <binding.sca/> defined. > > code looks something like this: > > Node node = NodeFactory.newInstance().createNode(new > StringReader(compositeXml), contrib1, contrib2); > ServiceInterface obj = (ServiceInterface) node.getService(serviceInterface, > serviceName); > obj.addReference(businessObject); > > and the last line throws this exception: > > javax.xml.bind.JAXBException: class > my.domain.sca.server.PersistentDomainManager nor any of its super class is > known to this context.] > at > com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java:318) > at > com.sun.xml.bind.v2.runtime.MarshallerImpl.marshal(MarshallerImpl.java:244) > at > javax.xml.bind.helpers.AbstractMarshallerImpl.marshal(AbstractMarshallerImpl.java:110) > at > org.apache.tuscany.sca.databinding.jaxb.JAXBDataBinding.copy(JAXBDataBinding.java:118) > ... 25 more > Caused by: javax.xml.bind.JAXBException: class > my.domain.sca.server.PersistentDomainManager nor any of its super class is > known to this context. > at > com.sun.xml.bind.v2.runtime.XMLSerializer.reportError(XMLSerializer.java:246) > at > com.sun.xml.bind.v2.runtime.XMLSerializer.reportError(XMLSerializer.java:261) > at > com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(XMLSerializer.java:653) > at > com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl$1.serializeBody(ElementBeanInfoImpl.java:152) > at > com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl$1.serializeBody(ElementBeanInfoImpl.java:189) > at > com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeBody(ElementBeanInfoImpl.java:315) > at > com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeRoot(ElementBeanInfoImpl.java:322) > at > com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeRoot(ElementBeanInfoImpl.java:72) > at > com.sun.xml.bind.v2.runtime.XMLSerializer.childAsRoot(XMLSerializer.java:494) > at > com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java:315) > ... 28 more > Caused by: javax.xml.bind.JAXBException: class > my.domain.sca.server.PersistentDomainManager nor any of its super class is > known to this context. > at > com.sun.xml.bind.v2.runtime.JAXBContextImpl.getBeanInfo(JAXBContextImpl.java:590) > at > com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(XMLSerializer.java:648) > ... 35 more > > > can somebody help. i m hoping that this support is present in 2.0. but why is > it failing? is there anything explicitly that needs to be defined to get this > working? can someone throws some light on API is i m using it incorrectly? > > thanks & regards, > Anil > > >
