Chris, for advanced JAXB questions, you might just want to go ahead and
ask on the Sun forum[1].  We use their JAXB, and the JAXB specialists
tend to congregate on that site.

Regards,
Glen

[1] http://forums.java.net/jive/forum.jspa?forumID=46

Am Freitag, den 11.04.2008, 14:33 -0700 schrieb
[EMAIL PROTECTED]:
> I've begun to play with this type of implementation, using the @XmlIDREF 
> and @XmlAttribute annotations and I've found a few issues.
> 
> 1) As stated below, your client generated classes have the references to 
> parent objects defined as data type Object. (an annoyance but workable)
> 2) As stated in the documentation: You'd also need to ensure that the 
> referenced objects are contained somewhere else (like in the Root class in 
> this case), or else Bar objects will never be marshalled. 
> 
> This one is difficult. I have a parent class that I return from my 
> Services methods that contain all the information associated to the user 
> and the request:
> UserAcct -> Quote -> SalesResp
> 
> When this gets returned to the client the objects are just as the server 
> sent them back.  But when I send a child object back over to the server 
> all the references to the parents are lost.
> 
> Example:  addSalesRep(SalesRepDTO salesRep) {
> ...
> 
> The SalesRep object no longer has the parent Quote. That is because the 
> original container no longer exists. I would need to define a new contain 
> to be used to hold the object structure. 
> 
> I've tried several things to get around this, like placing a 
> @XmlRootElement on my SalesRepDTO class on both the server and client 
> classes but to no avail. There just doesn't seem to be a way to make this 
> work how I would expect it to. The references to the parents are always 
> lost when sending the objects from the client to the server.
> 
> Any suggestions?
> 
> Chris Mathrusse
> [EMAIL PROTECTED]
> Sybase, Inc
> One Sybase Drive
> Dublin, CA 94568
> (925) 236-5553
> 
> 
> 
> [EMAIL PROTECTED] 
> 04/11/2008 12:50 PM
> Please respond to
> [email protected]
> 
> 
> To
> [email protected]
> cc
> 
> Subject
> Re: bi-directional relationships
> 
> 
> 
> 
> 
> 
> I've started playing with this and it seems to work correctly. (More 
> testing needed) But one issue I came across was in the generated Client 
> objects. 
> 
> My server side object looks as follows:
> 
> public class QuoteDTO {
> @XmlAttribute @XmlIDREF
>         protected CustomerDTO customer;
> 
> 
> But my generated Client object looks as follows:
> public class QuoteDTO {
>     @XmlAttribute
>     @XmlIDREF
>     protected Object customer;
> 
> 
> So now when my client attempts to access the customer the specific data 
> type is lost. Is there any work around for this?
> 
> Thanks...
> 
> Chris Mathrusse
> [EMAIL PROTECTED]
> Sybase, Inc
> One Sybase Drive
> Dublin, CA 94568
> (925) 236-5553
> 
> 
> 
> Daniel Kulp <[EMAIL PROTECTED]> 
> 04/11/2008 12:44 PM
> Please respond to
> [email protected]
> 
> 
> To
> [email protected]
> cc
> 
> Subject
> Re: bi-directional relationships
> 
> 
> 
> 
> 
> 
> 
> Wow.   This is neet.   I didn't know about this one at all.  I honestly 
> though JAXB wouldn't do it.   I learned something today.  :-)
> 
> Thanks Glen!
> Dan
> 
> 
> On Thursday 10 April 2008, Glen Mazza wrote:
> > Here you go:
> > https://jaxb.dev.java.net/guide/Mapping_cyclic_references_to_XML.html
> >
> > Glen
> >
> > Am Donnerstag, den 10.04.2008, 16:12 -0700 schrieb
> >
> > [EMAIL PROTECTED]:
> > > I'm using CXF 2.0.5. My Web Service is as follows:
> > > @WebService(endpointInterface = "com.sybase.it.quoting.QuoteBroker",
> > > portName = "QuoteBroker", targetNamespace =
> > > "http://quoting.it.sybase.com";, name = "QuoteBroker")
> > > @SOAPBinding(parameterStyle = ParameterStyle.WRAPPED, style =
> > > Style.DOCUMENT, use = Use.LITERAL)
> > > @Service("quoteBroker")
> > > public abstract class QuoteBrokerImpl implements QuoteBroker ...
> > >
> > >
> > > I am returning DTO's from my web service that are populated with
> > > data from my Hibernate objects. The problem that I am running into
> > > now is the following exception:
> > >
> > > INFO: Interceptor has thrown exception, unwinding now
> > > org.apache.cxf.interceptor.Fault: Marshalling Error: A cycle is
> > > detected in the object graph. This will cause infinitely deep XML:
> > > [EMAIL PROTECTED] ->
> > > [EMAIL PROTECTED] ->
> > > [EMAIL PROTECTED]
> > >
> > > This is due to the relationship that is defined.  Quote ->
> > > QuoteLineItem -> Quote
> > > Because the relationship is bi-directional I am seeing this
> > > exception occurring. The Web Service is a replacement of an old Axis
> > > 1.0 RPC/Encoded web service. Now that I have it running with CXF
> > > using
> > > Document/Literal/Wrapped I am seeing this issue.
> > >
> > > How have others resolved/worked around this issue?
> > >
> > > Thanks...
> > >
> > > Chris Mathrusse
> > > [EMAIL PROTECTED]
> > > Sybase, Inc
> > > One Sybase Drive
> > > Dublin, CA 94568
> > > (925) 236-5553
> 
> 
> 

Reply via email to