A hunch: AEGIS is using toString() to serialize the enum.  If so, AEGIS needs 
to use name()...

http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Enum.html


--- On Mon, 10/27/08, Coder One <[EMAIL PROTECTED]> wrote:

> From: Coder One <[EMAIL PROTECTED]>
> Subject: Weird Error Condition with AEGIS ? Re: CXF 2.1.3 & Simple Front End 
> & Spring
> To: [email protected]
> Date: Monday, October 27, 2008, 8:20 PM
> So, this class triggers a problem using aegis.  Instead of
> using "A_A" and "B_B", one can use
> "A", and "B" and that would work. 
> Anyone knows if this is a java enum problem or if it is due
> to aegis?
> 
> Thanks...
> 
> public enum MyEnum
> {
>     A("A_A"),
>     B("B_B");
>     
>     MyEnum(String aMsg)
>     {
>         msg = aMsg;
>     }
> 
>     @Override
>     public String toString()
>     {
>         return(msg);
>     }
> 
>     private String msg;
> }
> 
> 
> org.apache.cxf.interceptor.Fault: No enum const class
> xyz.domain.MyEnum.B_B
>         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)
> 
> --- On Sun, 10/26/08, Coder One <[EMAIL PROTECTED]>
> wrote:
> 
> > From: Coder One <[EMAIL PROTECTED]>
> > Subject: Re: CXF 2.1.3 & Simple Front End &
> Spring
> > To: [email protected]
> > Date: Sunday, October 26, 2008, 11:20 PM
> > My enum had a special construct XyzEnumType(String a);
> I
> > think that messed up a few things for the enum
> valueOf().  I
> > stripped the Enum to a regular/bare enum with no enum
> member
> > variables and it worked.
> > 
> > --- On Sun, 10/26/08, Coder One
> <[EMAIL PROTECTED]>
> > wrote:
> > 
> > > From: Coder One <[EMAIL PROTECTED]>
> > > Subject: Re: CXF 2.1.3 & Simple Front End
> &
> > Spring
> > > To: [email protected]
> > > Date: Sunday, October 26, 2008, 10:31 PM
> > > Thanks!!!...it worked...some minor hickup
> though...
> > > 
> > > If I stay with the default jaxb databinding, a
> simple
> > call
> > > ping(String msg) showed msg=null on the server
> side.
> > > 
> > > If I use aegis, then ping works with the msg
> passed
> > through
> > > to the server, but then a problem on the enum
> popped
> > up...
> > > 
> > >  <bean id="aegisDataBinding"
> > >
> >
> class="org.apache.cxf.aegis.databinding.AegisDatabinding"/>
> > > 
> > >     <bean
> id="mgmtServiceClientFactory"
> > >
> >
> class="org.apache.cxf.frontend.ClientProxyFactoryBean">
> > >         <property
> name="serviceClass"
> > > value="xyz.services.MgmtService"/>
> > >         <property name="address"
> > >
> >
> value="http://localhost:8084/xyz-services/mgmtService"/>
> > >         <property name="dataBinding"
> > > ref="aegisDataBinding"/>
> > >     </bean>
> > > 
> > > My enum class is sync'ed between the server
> and
> > client,
> > > so I have no idea why that would happen...any
> idea?
> > > 
> > > Thanks again!!!
> > > 
> > > java.lang.IllegalArgumentException: No enum const
> > class
> > >         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)
> > > 
> > > 
> > > 
> > > --- On Sun, 10/26/08, Willem Jiang
> > > <[EMAIL PROTECTED]> wrote:
> > > 
> > > > From: Willem Jiang
> <[EMAIL PROTECTED]>
> > > > Subject: Re: CXF 2.1.3 & Simple Front
> End
> > &
> > > Spring
> > > > To: [email protected]
> > > > Date: Sunday, October 26, 2008, 9:05 PM
> > > > Oh, you are still using the jaxws front on
> the
> > client
> > > side.
> > > > 
> > > > Please change the clientFactory's class
> to be
> > > >
> org.apache.cxf.frontend.ClientProxyFactoryBean
> > > > 
> > > > > ---Client Spring Context---
> > > > > WSDL:
> > > >
> > http://localhost:8084/xyz-services/mgmtService?wsdl
> > > > >
> > > > >     <bean id="mgmtService"
> > > > >          
> > > class="xyz.services.MgmtService"
> > > > >          
> > factory-bean="clientFactory"
> > > > factory-method="create"/>
> > > > >
> > > > >     <bean
> id="clientFactory"
> > > >
> > >
> >
> class="org.apache.cxf.jaxws.JaxWsProxyFactoryBean">
> > > > 
> > > > *** it should be
> > > >
> > >
> >
> "org.apache.cxf.frontend.ClientProxyFactoryBean"
> > > > 
> > > > >         <property
> > > name="serviceClass"
> > > >
> value="xyz.services.MgmtService"/>
> > > > >         <property
> > name="address"
> > > >
> > >
> >
> value="http://localhost:8084/xyz-services/mgmtService"/>
> > > > >     </bean>
> > > > 
> > > > Willem
> > > > 
> > > > Coder One wrote:
> > > > > javax.xml.ws.WebServiceException: Could
> not
> > find
> > > > wsdl:binding operation info for web method
> > createRole.
> > > > >         at
> > > >
> > >
> >
> org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:113)
> > > > > 
> > > > > 
> > > > > I got the above exceptions trying to
> use
> > simple
> > > front
> > > > end with Spring.  With 2.1.1, I got the same
> > problem,
> > > but
> > > > the line number was 150 instead of 113.
> > > > > 
> > > > > I have included by server-side and
> > client-side
> > > Spring
> > > > context files.  Both projects
> (server/client)
> > include
> > > cxf as
> > > > a separate maven project.  Ie. I created a
> > common-cxf
> > > maven
> > > > project that included all the regular CXF
> jars,
> > then
> > > my
> > > > server/client maven projects declared a
> > dependency on
> > > > common-cxf.
> > > > > 
> > > > > The WSDL comes up alright with ?wsdl,
> so I
> > am at
> > > a
> > > > dead-end.  I read some post about someone
> > patching
> > > 2.1.1 to
> > > > fix this issue, but it seems to have not
> been
> > fixed
> > > ?!?
> > > > > 
> > > > > Please help...appreciate all pointers! 
> > Thanks...
> > > > > 
> > > > > 
> > > > > ---Server Spring Context---
> > > > > WAR context: /xyz-services
> > > > > 
> > > > >       <import
> > > >
> > resource="classpath:META-INF/cxf/cxf.xml"
> > > />
> > > > >       <import
> > > >
> > >
> >
> resource="classpath:META-INF/cxf/cxf-extension-soap.xml"
> > > > />
> > > > >       <import
> > > >
> > >
> >
> resource="classpath:META-INF/cxf/cxf-servlet.xml"
> > > > />
> > > > > 
> > > > >     <simple:server
> > id="roleMgmtWS"
> > > > >                   
> > > >
> serviceClass="xyz.services.MgmtService"
> > > > >                   
> > > > address="/mgmtService">
> > > > >         <simple:serviceBean>
> > > > >             <bean
> > > >
> class="xyz.serviceimpl.MgmtServiceImpl"
> > > />
> > > > >         </simple:serviceBean>
> > > > >         <simple:dataBinding>
> > > > >             <bean
> > > >
> > >
> >
> class="org.apache.cxf.aegis.databinding.AegisDatabinding"
> > > > />
> > > > >         </simple:dataBinding>
> > > > >     </simple:server>
> > > > > 
> > > > > ---Client Spring Context---
> > > > > WSDL:
> > > >
> > http://localhost:8084/xyz-services/mgmtService?wsdl
> > > > > 
> > > > >     <bean id="mgmtService"
> > > > >          
> > > class="xyz.services.MgmtService"
> > > > >          
> > factory-bean="clientFactory"
> > > > factory-method="create"/>
> > > > > 
> > > > >     <bean
> id="clientFactory"
> > > >
> > >
> >
> class="org.apache.cxf.jaxws.JaxWsProxyFactoryBean">
> > > > >         <property
> > > name="serviceClass"
> > > >
> value="xyz.services.MgmtService"/>
> > > > >         <property
> > name="address"
> > > >
> > >
> >
> value="http://localhost:8084/xyz-services/mgmtService"/>
> > > > >     </bean>
> > > > > 
> > > > > 
> > > > >       
> > > > > 
> > > > >


      

Reply via email to