You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cxf.apache.org by Marco <mp...@imolinfo.it> on 2008/12/13 11:59:17 UTC
A regression from CXF2.0* to CXF 2.1.*?
Hi guys,
I have integrated CXF 2.0.3 into one of my projects because i need a
jax-ws runtime. It seems that there are some problems with arrays
marshalling (not present in 2.0.*). For example if the return type is an
int[], the mapping is correct:
<xs:element name="setUserProfileArrayResponse">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="0" name="return"
type="xs:int"/>
</xs:sequence>
</xs:complexType>
But at runtime i get a Marshalling Error:
org.apache.cxf.interceptor.Fault: Marshalling Error: [I is not known to
this context
at
org.apache.cxf.jaxb.JAXBEncoderDecoder.marshall(JAXBEncoderDecoder.java:173)
at
org.apache.cxf.jaxb.io.DataWriterImpl.write(DataWriterImpl.java:169)
at
org.apache.cxf.interceptor.AbstractOutDatabindingInterceptor.writeParts(AbstractOutDatabindingInterceptor.java:104)
at
org.apache.cxf.interceptor.BareOutInterceptor.handleMessage(BareOutInterceptor.java:68)
at
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:226)
This is quite strange, since the int[] as a parameter (and not a return
type) works.
I tested that with 2.1.3 and 2.1.4-SNAPSHOT (same behaviour)
Marco.
Re: A regression from CXF2.0* to CXF 2.1.*?
Posted by Daniel Kulp <dk...@apache.org>.
>
> If you need i can send you a test case to reproduce the issue.
>
Please do. That's definitely the best way to make sure we're on the same
page. You can send it privately to me if that works best or log a jira and
attach it there.
Actually if you could test with 2.1.4-SNAPSHOT as well, that would also be
great. :-)
Dan
On Wednesday 17 December 2008 4:09:30 pm Marco wrote:
> Hi Dan,
>
> Asm is alreasy in our classpath, by the way i noticed that we have a
> very similar problem problem even if we have an array inside an
> exception.
> For example, if i define an exception:
>
> public class ArrayException extends Exception {
> private int[] reason;
> private String name;
> (...public getters/setters...)
> }
>
> In the service interface:
> @WebMethod
> public String echoTest() throws ArrayException ;
>
> ...the WSDL of the service generated has the type:
>
> <xs:complexType name="ArrayException">
> −
> <xs:sequence>
> <xs:element name="name" nillable="true" type="xs:string"/>
> </xs:sequence>
> </xs:complexType>
>
> ...so the array field is lost! Does your tests cover exceptions with
> array? This happens with CXF-2.1.3.
>
> If you need i can send you a test case to reproduce the issue.
>
> Marco.
>
> On Wed, 2008-12-17 at 14:03 -0500, Daniel Kulp wrote:
> > Not sure what would cause this considering we have a system tests that
> > explicitly tests the array things:
> > http://svn.eu.apache.org/repos/asf/cxf/trunk/systests/src/test/java/org/a
> >pache/cxf/systest/jaxws/DocLitWrappedCodeFirstService.java
> >
> > One thing to try: add an asm jar to your classpath. That may help.
> >
> > Dan
> >
> > On Saturday 13 December 2008 5:59:17 am Marco wrote:
> > > Hi guys,
> > > I have integrated CXF 2.0.3 into one of my projects because i need a
> > > jax-ws runtime. It seems that there are some problems with arrays
> > > marshalling (not present in 2.0.*). For example if the return type is
> > > an int[], the mapping is correct:
> > >
> > > <xs:element name="setUserProfileArrayResponse">
> > > <xs:complexType>
> > > <xs:sequence>
> > > <xs:element maxOccurs="unbounded" minOccurs="0" name="return"
> > > type="xs:int"/>
> > > </xs:sequence>
> > > </xs:complexType>
> > >
> > > But at runtime i get a Marshalling Error:
> > > org.apache.cxf.interceptor.Fault: Marshalling Error: [I is not known to
> > > this context
> > > at
> > > org.apache.cxf.jaxb.JAXBEncoderDecoder.marshall(JAXBEncoderDecoder.java
> > >:173 ) at
> > > org.apache.cxf.jaxb.io.DataWriterImpl.write(DataWriterImpl.java:169)
> > > at
> > > org.apache.cxf.interceptor.AbstractOutDatabindingInterceptor.writeParts
> > >(Abs tractOutDatabindingInterceptor.java:104) at
> > > org.apache.cxf.interceptor.BareOutInterceptor.handleMessage(BareOutInte
> > >rcep tor.java:68) at
> > > org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptor
> > >Chai n.java:226)
> > >
> > > This is quite strange, since the int[] as a parameter (and not a return
> > > type) works.
> > > I tested that with 2.1.3 and 2.1.4-SNAPSHOT (same behaviour)
> > >
> > > Marco.
--
Daniel Kulp
dkulp@apache.org
http://dankulp.com/blog
Re: A regression from CXF2.0* to CXF 2.1.*?
Posted by Marco <mp...@imolinfo.it>.
Hi Dan,
Asm is alreasy in our classpath, by the way i noticed that we have a
very similar problem problem even if we have an array inside an
exception.
For example, if i define an exception:
public class ArrayException extends Exception {
private int[] reason;
private String name;
(...public getters/setters...)
}
In the service interface:
@WebMethod
public String echoTest() throws ArrayException ;
...the WSDL of the service generated has the type:
<xs:complexType name="ArrayException">
−
<xs:sequence>
<xs:element name="name" nillable="true" type="xs:string"/>
</xs:sequence>
</xs:complexType>
...so the array field is lost! Does your tests cover exceptions with
array? This happens with CXF-2.1.3.
If you need i can send you a test case to reproduce the issue.
Marco.
On Wed, 2008-12-17 at 14:03 -0500, Daniel Kulp wrote:
> Not sure what would cause this considering we have a system tests that
> explicitly tests the array things:
> http://svn.eu.apache.org/repos/asf/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxws/DocLitWrappedCodeFirstService.java
>
> One thing to try: add an asm jar to your classpath. That may help.
>
> Dan
>
>
>
> On Saturday 13 December 2008 5:59:17 am Marco wrote:
> > Hi guys,
> > I have integrated CXF 2.0.3 into one of my projects because i need a
> > jax-ws runtime. It seems that there are some problems with arrays
> > marshalling (not present in 2.0.*). For example if the return type is an
> > int[], the mapping is correct:
> >
> > <xs:element name="setUserProfileArrayResponse">
> > <xs:complexType>
> > <xs:sequence>
> > <xs:element maxOccurs="unbounded" minOccurs="0" name="return"
> > type="xs:int"/>
> > </xs:sequence>
> > </xs:complexType>
> >
> > But at runtime i get a Marshalling Error:
> > org.apache.cxf.interceptor.Fault: Marshalling Error: [I is not known to
> > this context
> > at
> > org.apache.cxf.jaxb.JAXBEncoderDecoder.marshall(JAXBEncoderDecoder.java:173
> >) at
> > org.apache.cxf.jaxb.io.DataWriterImpl.write(DataWriterImpl.java:169)
> > at
> > org.apache.cxf.interceptor.AbstractOutDatabindingInterceptor.writeParts(Abs
> >tractOutDatabindingInterceptor.java:104) at
> > org.apache.cxf.interceptor.BareOutInterceptor.handleMessage(BareOutIntercep
> >tor.java:68) at
> > org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChai
> >n.java:226)
> >
> > This is quite strange, since the int[] as a parameter (and not a return
> > type) works.
> > I tested that with 2.1.3 and 2.1.4-SNAPSHOT (same behaviour)
> >
> > Marco.
>
>
>
Re: A regression from CXF2.0* to CXF 2.1.*?
Posted by Daniel Kulp <dk...@apache.org>.
Not sure what would cause this considering we have a system tests that
explicitly tests the array things:
http://svn.eu.apache.org/repos/asf/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxws/DocLitWrappedCodeFirstService.java
One thing to try: add an asm jar to your classpath. That may help.
Dan
On Saturday 13 December 2008 5:59:17 am Marco wrote:
> Hi guys,
> I have integrated CXF 2.0.3 into one of my projects because i need a
> jax-ws runtime. It seems that there are some problems with arrays
> marshalling (not present in 2.0.*). For example if the return type is an
> int[], the mapping is correct:
>
> <xs:element name="setUserProfileArrayResponse">
> <xs:complexType>
> <xs:sequence>
> <xs:element maxOccurs="unbounded" minOccurs="0" name="return"
> type="xs:int"/>
> </xs:sequence>
> </xs:complexType>
>
> But at runtime i get a Marshalling Error:
> org.apache.cxf.interceptor.Fault: Marshalling Error: [I is not known to
> this context
> at
> org.apache.cxf.jaxb.JAXBEncoderDecoder.marshall(JAXBEncoderDecoder.java:173
>) at
> org.apache.cxf.jaxb.io.DataWriterImpl.write(DataWriterImpl.java:169)
> at
> org.apache.cxf.interceptor.AbstractOutDatabindingInterceptor.writeParts(Abs
>tractOutDatabindingInterceptor.java:104) at
> org.apache.cxf.interceptor.BareOutInterceptor.handleMessage(BareOutIntercep
>tor.java:68) at
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChai
>n.java:226)
>
> This is quite strange, since the int[] as a parameter (and not a return
> type) works.
> I tested that with 2.1.3 and 2.1.4-SNAPSHOT (same behaviour)
>
> Marco.
--
Daniel Kulp
dkulp@apache.org
http://dankulp.com/blog