You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cxf.apache.org by Coder One <co...@yahoo.com> on 2008/11/03 00:58:42 UTC
No Write Method for Property
Using AEGIS, CXF 2.1.3, and Simple Front End on both Server/Client and received the following error.
org.apache.cxf.interceptor.Fault: No write method for property {http://regmgmt.services.xyz}success
That's because by response class extends from a response base class that has a isSuccess() method. The isSuccess() checks a few other instance members to decide whether to return true or false. Ie. there is no success instance member.
It looks like I have to make a no-op setSuccess() method, but that's kind of ugly. Is there a way to get around this? To get AEGIS to ignore certain methods? I'd rather avoid direct annotation and stay with Spring, but if there is no other options, then I can go with annotation.
Thanks...
JIRA Filed Re: AEGIS StackOverflow
Posted by Coder One <co...@yahoo.com>.
https://issues.apache.org/jira/browse/CXF-1899
Check out the maven projects...
--- On Mon, 11/3/08, Coder One <co...@yahoo.com> wrote:
> From: Coder One <co...@yahoo.com>
> Subject: Re: AEGIS StackOverflow
> To: users@cxf.apache.org
> Date: Monday, November 3, 2008, 10:53 PM
> So, I was trying to setup the object graph to reproduce the
> problem. The orginal graph was created by Hibernate
> with/without Beanlib, but my handcrafted object graph (which
> should be equivalent to the original 2 graphs) gave this
> exception...huh...
>
> com.ctc.wstx.exc.WstxEOFException: Unexpected EOF in
> attribute value
>
>
> Nov 3, 2008 10:48:32 PM
> org.apache.cxf.phase.PhaseInterceptorChain doIntercept
> INFO: Interceptor has thrown exception, unwinding now
> org.apache.cxf.interceptor.Fault: Error parsing document..
> Nested exception is com.ctc.wstx.exc.WstxEOFException:
> Unexpected EOF in attribute value
> at [row,col {unknown-source}]: [1,615384]
> at
> org.apache.cxf.aegis.databinding.XMLStreamDataReader.read(XMLStreamDataReader.java:49)
> at
> org.apache.cxf.aegis.databinding.XMLStreamDataReader.read(XMLStreamDataReader.java:34)
> at
> org.apache.cxf.interceptor.DocLiteralInInterceptor.getPara(DocLiteralInInterceptor.java:235)
> at
> org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(DocLiteralInInterceptor.java:120)
> at
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:220)
> at
> org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:633)
> at
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:2064)
> at
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1942)
> at
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1867)
> at
> org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:66)
> at
> org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:595)
> at
> org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
> at
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:220)
> at
> org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:466)
>
>
> --- On Mon, 11/3/08, Benson Margulies
> <bi...@gmail.com> wrote:
>
> > From: Benson Margulies <bi...@gmail.com>
> > Subject: Re: AEGIS StackOverflow
> > To: users@cxf.apache.org, coder_lol@yahoo.com
> > Date: Monday, November 3, 2008, 5:13 AM
> > This shouldn't be possible. Care to post a test
> case to
> > JIRA.
> >
> > On Sun, Nov 2, 2008 at 10:48 PM, Coder One
> > <co...@yahoo.com> wrote:
> > > I turned on debug, but could not pinpoint what
> may
> > have gone wrong...Anyone with a good pointer? Thanks,
> > >
> > > ===
> > > log4j.logger.org.apache.cxf.aegis=DEBUG,STDOUT
> > > log4j.additivity.org.apache.cxf.aegis=false
> > >
> > >
> log4j.logger.org.apache.cxf.staxutils=DEBUG,STDOUT
> > > log4j.additivity.org.apache.cxf.staxutils=false
> > >
> > > log4j.logger.com.ctc.wstx=DEBUG,STDOUT
> > > log4j.additivity.com.ctc.wstx=false
> > > ===
> > >
> > > Caused by: java.lang.StackOverflowError
> > > at
> >
> com.ctc.wstx.sr.NsAttributeCollector.resolveNamespaces(NsAttributeCollector.java:239)
> > > at
> >
> com.ctc.wstx.sr.NsInputElementStack.resolveAndValidateElement(NsInputElementStack.java:374)
> > > at
> >
> com.ctc.wstx.sr.BasicStreamReader.handleStartElem(BasicStreamReader.java:2945)
> > > at
> >
> com.ctc.wstx.sr.BasicStreamReader.nextFromTree(BasicStreamReader.java:2846)
> > > at
> >
> com.ctc.wstx.sr.BasicStreamReader.next(BasicStreamReader.java:1019)
> > > at
> >
> org.apache.cxf.staxutils.DepthXMLStreamReader.next(DepthXMLStreamReader.java:220)
> > > at
> >
> org.apache.cxf.aegis.xml.stax.ElementReader.getValue(ElementReader.java:132)
> > > at
> >
> org.apache.cxf.aegis.type.basic.StringType.readObject(StringType.java:36)
> > > at
> >
> org.apache.cxf.aegis.type.basic.BeanType.readObject(BeanType.java:146)
> > > at
> >
> org.apache.cxf.aegis.type.basic.BeanType.readObject(BeanType.java:146)
> > > at
> >
> org.apache.cxf.aegis.type.basic.ArrayType.readCollection(ArrayType.java:89)
> > > at
> >
> org.apache.cxf.aegis.type.collection.CollectionType.readObject(CollectionType.java:50)
> > > at
> >
> org.apache.cxf.aegis.type.basic.BeanType.readObject(BeanType.java:146)
> > > at
> >
> org.apache.cxf.aegis.type.basic.BeanType.readObject(BeanType.java:146)
> > > at
> >
> org.apache.cxf.aegis.type.basic.ArrayType.readCollection(ArrayType.java:89)
> > > at
> >
> org.apache.cxf.aegis.type.collection.CollectionType.readObject(CollectionType.java:50)
> > > at
> >
> org.apache.cxf.aegis.type.basic.BeanType.readObject(BeanType.java:146)
> > > at
> >
> org.apache.cxf.aegis.type.basic.BeanType.readObject(BeanType.java:146)
> > > at
> >
> org.apache.cxf.aegis.type.basic.ArrayType.readCollection(ArrayType.java:89)
> > >
> > >
> > >
> > >
> > >
> > >
Re: AEGIS StackOverflow
Posted by Coder One <co...@yahoo.com>.
So, I was trying to setup the object graph to reproduce the problem. The orginal graph was created by Hibernate with/without Beanlib, but my handcrafted object graph (which should be equivalent to the original 2 graphs) gave this exception...huh...
com.ctc.wstx.exc.WstxEOFException: Unexpected EOF in attribute value
Nov 3, 2008 10:48:32 PM org.apache.cxf.phase.PhaseInterceptorChain doIntercept
INFO: Interceptor has thrown exception, unwinding now
org.apache.cxf.interceptor.Fault: Error parsing document.. Nested exception is com.ctc.wstx.exc.WstxEOFException: Unexpected EOF in attribute value
at [row,col {unknown-source}]: [1,615384]
at org.apache.cxf.aegis.databinding.XMLStreamDataReader.read(XMLStreamDataReader.java:49)
at org.apache.cxf.aegis.databinding.XMLStreamDataReader.read(XMLStreamDataReader.java:34)
at org.apache.cxf.interceptor.DocLiteralInInterceptor.getPara(DocLiteralInInterceptor.java:235)
at org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(DocLiteralInInterceptor.java:120)
at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:220)
at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:633)
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:2064)
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1942)
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1867)
at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:66)
at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:595)
at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:220)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:466)
--- On Mon, 11/3/08, Benson Margulies <bi...@gmail.com> wrote:
> From: Benson Margulies <bi...@gmail.com>
> Subject: Re: AEGIS StackOverflow
> To: users@cxf.apache.org, coder_lol@yahoo.com
> Date: Monday, November 3, 2008, 5:13 AM
> This shouldn't be possible. Care to post a test case to
> JIRA.
>
> On Sun, Nov 2, 2008 at 10:48 PM, Coder One
> <co...@yahoo.com> wrote:
> > I turned on debug, but could not pinpoint what may
> have gone wrong...Anyone with a good pointer? Thanks,
> >
> > ===
> > log4j.logger.org.apache.cxf.aegis=DEBUG,STDOUT
> > log4j.additivity.org.apache.cxf.aegis=false
> >
> > log4j.logger.org.apache.cxf.staxutils=DEBUG,STDOUT
> > log4j.additivity.org.apache.cxf.staxutils=false
> >
> > log4j.logger.com.ctc.wstx=DEBUG,STDOUT
> > log4j.additivity.com.ctc.wstx=false
> > ===
> >
> > Caused by: java.lang.StackOverflowError
> > at
> com.ctc.wstx.sr.NsAttributeCollector.resolveNamespaces(NsAttributeCollector.java:239)
> > at
> com.ctc.wstx.sr.NsInputElementStack.resolveAndValidateElement(NsInputElementStack.java:374)
> > at
> com.ctc.wstx.sr.BasicStreamReader.handleStartElem(BasicStreamReader.java:2945)
> > at
> com.ctc.wstx.sr.BasicStreamReader.nextFromTree(BasicStreamReader.java:2846)
> > at
> com.ctc.wstx.sr.BasicStreamReader.next(BasicStreamReader.java:1019)
> > at
> org.apache.cxf.staxutils.DepthXMLStreamReader.next(DepthXMLStreamReader.java:220)
> > at
> org.apache.cxf.aegis.xml.stax.ElementReader.getValue(ElementReader.java:132)
> > at
> org.apache.cxf.aegis.type.basic.StringType.readObject(StringType.java:36)
> > at
> org.apache.cxf.aegis.type.basic.BeanType.readObject(BeanType.java:146)
> > at
> org.apache.cxf.aegis.type.basic.BeanType.readObject(BeanType.java:146)
> > at
> org.apache.cxf.aegis.type.basic.ArrayType.readCollection(ArrayType.java:89)
> > at
> org.apache.cxf.aegis.type.collection.CollectionType.readObject(CollectionType.java:50)
> > at
> org.apache.cxf.aegis.type.basic.BeanType.readObject(BeanType.java:146)
> > at
> org.apache.cxf.aegis.type.basic.BeanType.readObject(BeanType.java:146)
> > at
> org.apache.cxf.aegis.type.basic.ArrayType.readCollection(ArrayType.java:89)
> > at
> org.apache.cxf.aegis.type.collection.CollectionType.readObject(CollectionType.java:50)
> > at
> org.apache.cxf.aegis.type.basic.BeanType.readObject(BeanType.java:146)
> > at
> org.apache.cxf.aegis.type.basic.BeanType.readObject(BeanType.java:146)
> > at
> org.apache.cxf.aegis.type.basic.ArrayType.readCollection(ArrayType.java:89)
> >
> >
> >
> >
> >
> >
Re: AEGIS StackOverflow
Posted by Benson Margulies <bi...@gmail.com>.
This shouldn't be possible. Care to post a test case to JIRA.
On Sun, Nov 2, 2008 at 10:48 PM, Coder One <co...@yahoo.com> wrote:
> I turned on debug, but could not pinpoint what may have gone wrong...Anyone with a good pointer? Thanks,
>
> ===
> log4j.logger.org.apache.cxf.aegis=DEBUG,STDOUT
> log4j.additivity.org.apache.cxf.aegis=false
>
> log4j.logger.org.apache.cxf.staxutils=DEBUG,STDOUT
> log4j.additivity.org.apache.cxf.staxutils=false
>
> log4j.logger.com.ctc.wstx=DEBUG,STDOUT
> log4j.additivity.com.ctc.wstx=false
> ===
>
> Caused by: java.lang.StackOverflowError
> at com.ctc.wstx.sr.NsAttributeCollector.resolveNamespaces(NsAttributeCollector.java:239)
> at com.ctc.wstx.sr.NsInputElementStack.resolveAndValidateElement(NsInputElementStack.java:374)
> at com.ctc.wstx.sr.BasicStreamReader.handleStartElem(BasicStreamReader.java:2945)
> at com.ctc.wstx.sr.BasicStreamReader.nextFromTree(BasicStreamReader.java:2846)
> at com.ctc.wstx.sr.BasicStreamReader.next(BasicStreamReader.java:1019)
> at org.apache.cxf.staxutils.DepthXMLStreamReader.next(DepthXMLStreamReader.java:220)
> at org.apache.cxf.aegis.xml.stax.ElementReader.getValue(ElementReader.java:132)
> at org.apache.cxf.aegis.type.basic.StringType.readObject(StringType.java:36)
> at org.apache.cxf.aegis.type.basic.BeanType.readObject(BeanType.java:146)
> at org.apache.cxf.aegis.type.basic.BeanType.readObject(BeanType.java:146)
> at org.apache.cxf.aegis.type.basic.ArrayType.readCollection(ArrayType.java:89)
> at org.apache.cxf.aegis.type.collection.CollectionType.readObject(CollectionType.java:50)
> at org.apache.cxf.aegis.type.basic.BeanType.readObject(BeanType.java:146)
> at org.apache.cxf.aegis.type.basic.BeanType.readObject(BeanType.java:146)
> at org.apache.cxf.aegis.type.basic.ArrayType.readCollection(ArrayType.java:89)
> at org.apache.cxf.aegis.type.collection.CollectionType.readObject(CollectionType.java:50)
> at org.apache.cxf.aegis.type.basic.BeanType.readObject(BeanType.java:146)
> at org.apache.cxf.aegis.type.basic.BeanType.readObject(BeanType.java:146)
> at org.apache.cxf.aegis.type.basic.ArrayType.readCollection(ArrayType.java:89)
>
>
>
>
>
>
AEGIS StackOverflow
Posted by Coder One <co...@yahoo.com>.
I turned on debug, but could not pinpoint what may have gone wrong...Anyone with a good pointer? Thanks,
===
log4j.logger.org.apache.cxf.aegis=DEBUG,STDOUT
log4j.additivity.org.apache.cxf.aegis=false
log4j.logger.org.apache.cxf.staxutils=DEBUG,STDOUT
log4j.additivity.org.apache.cxf.staxutils=false
log4j.logger.com.ctc.wstx=DEBUG,STDOUT
log4j.additivity.com.ctc.wstx=false
===
Caused by: java.lang.StackOverflowError
at com.ctc.wstx.sr.NsAttributeCollector.resolveNamespaces(NsAttributeCollector.java:239)
at com.ctc.wstx.sr.NsInputElementStack.resolveAndValidateElement(NsInputElementStack.java:374)
at com.ctc.wstx.sr.BasicStreamReader.handleStartElem(BasicStreamReader.java:2945)
at com.ctc.wstx.sr.BasicStreamReader.nextFromTree(BasicStreamReader.java:2846)
at com.ctc.wstx.sr.BasicStreamReader.next(BasicStreamReader.java:1019)
at org.apache.cxf.staxutils.DepthXMLStreamReader.next(DepthXMLStreamReader.java:220)
at org.apache.cxf.aegis.xml.stax.ElementReader.getValue(ElementReader.java:132)
at org.apache.cxf.aegis.type.basic.StringType.readObject(StringType.java:36)
at org.apache.cxf.aegis.type.basic.BeanType.readObject(BeanType.java:146)
at org.apache.cxf.aegis.type.basic.BeanType.readObject(BeanType.java:146)
at org.apache.cxf.aegis.type.basic.ArrayType.readCollection(ArrayType.java:89)
at org.apache.cxf.aegis.type.collection.CollectionType.readObject(CollectionType.java:50)
at org.apache.cxf.aegis.type.basic.BeanType.readObject(BeanType.java:146)
at org.apache.cxf.aegis.type.basic.BeanType.readObject(BeanType.java:146)
at org.apache.cxf.aegis.type.basic.ArrayType.readCollection(ArrayType.java:89)
at org.apache.cxf.aegis.type.collection.CollectionType.readObject(CollectionType.java:50)
at org.apache.cxf.aegis.type.basic.BeanType.readObject(BeanType.java:146)
at org.apache.cxf.aegis.type.basic.BeanType.readObject(BeanType.java:146)
at org.apache.cxf.aegis.type.basic.ArrayType.readCollection(ArrayType.java:89)
Re: No Write Method for Property
Posted by Coder One <co...@yahoo.com>.
Yeah, I RTFM'ed, but I missed the section...thanks...:)
Link included for reference...
http://cwiki.apache.org/CXF20DOC/introduction-to-aegis-21.html
--- On Sun, 11/2/08, Benson Margulies <bi...@gmail.com> wrote:
> From: Benson Margulies <bi...@gmail.com>
> Subject: Re: No Write Method for Property
> To: users@cxf.apache.org, coder_lol@yahoo.com
> Date: Sunday, November 2, 2008, 4:13 PM
> Use a .aegis.xml file to ignore the method.
>
> On Sun, Nov 2, 2008 at 6:58 PM, Coder One
> <co...@yahoo.com> wrote:
> > Using AEGIS, CXF 2.1.3, and Simple Front End on both
> Server/Client and received the following error.
> >
> > org.apache.cxf.interceptor.Fault: No write method for
> property {http://regmgmt.services.xyz}success
> >
> > That's because by response class extends from a
> response base class that has a isSuccess() method. The
> isSuccess() checks a few other instance members to decide
> whether to return true or false. Ie. there is no success
> instance member.
> >
> > It looks like I have to make a no-op setSuccess()
> method, but that's kind of ugly. Is there a way to get
> around this? To get AEGIS to ignore certain methods?
> I'd rather avoid direct annotation and stay with Spring,
> but if there is no other options, then I can go with
> annotation.
> >
> > Thanks...
> >
> >
> >
> >
> >
> >
> >
Re: No Write Method for Property
Posted by Benson Margulies <bi...@gmail.com>.
Use a .aegis.xml file to ignore the method.
On Sun, Nov 2, 2008 at 6:58 PM, Coder One <co...@yahoo.com> wrote:
> Using AEGIS, CXF 2.1.3, and Simple Front End on both Server/Client and received the following error.
>
> org.apache.cxf.interceptor.Fault: No write method for property {http://regmgmt.services.xyz}success
>
> That's because by response class extends from a response base class that has a isSuccess() method. The isSuccess() checks a few other instance members to decide whether to return true or false. Ie. there is no success instance member.
>
> It looks like I have to make a no-op setSuccess() method, but that's kind of ugly. Is there a way to get around this? To get AEGIS to ignore certain methods? I'd rather avoid direct annotation and stay with Spring, but if there is no other options, then I can go with annotation.
>
> Thanks...
>
>
>
>
>
>
>