You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cxf.apache.org by weuw <we...@yahoo.com> on 2010/02/24 17:25:14 UTC

java.lang.ClassCastException with CXF 2.2.5 JAX-RS

Hi there.
 
I'm trying to migrate a working CXF web service from Jboss 4.2.3 with CXF
2.1 to Jonas 5.1 with CXF 2.2.5 / Spring 2.5.6 with Maven integration. The
source code should be identical between the two platforms. Well, I hope so.
 
So I managed to maven compile my new cxf.war and deployed it successfully
into J2EE application server Jonas 5.1.

For that, I was obliged to use classloader-default-filtering.xml with this :
 <filter-name>org.apache.commons.digester.*</filter-name>
 <filter-name>org.springframework.*</filter-name>
 <filter-name>net.sf.cglib.*</filter-name>
 <filter-name>org.objectweb.asm.*</filter-name>
 <filter-name>org.apache.cxf.*</filter-name>

My CXF project is a module of a project called OrangeOpenCloud Here are some
extract of POM.XML :

<parent>
    <artifactId>OrangeOpenCloud</artifactId>
    <groupId>com.francetelecom.orange-open-cloud</groupId>
    <version>3.0</version>
 </parent>
 <groupId>com.francetelecom.orange-open-cloud</groupId>
 <artifactId>OrangeOpenCloud-cxf</artifactId>
 <version>1.1</version>
 <packaging>war</packaging>
 <name>OrangeOpenCloud CXF project</name>  <properties>
		<cxf.version>2.2.5</cxf.version>
		<spring.version>2.5.6</spring.version>
</properties>
...

My RESTful Web Service is defined in beans.xml <bean id="restflexiblecloud"
class="com.francetelecom.flexiblecloud.rest.RestFlexibleCloud" />

And now what's happened :

Into the class RestFlexibleCloud there is this method for example :
@GET
@Path("/servers")
@Produces( { "application/xml", "application/json" })
public VmInfos listServers(@HeaderParam("Authorization") String authHeader)
{ ... }
Which calls another method here : for (ServerInfo serverInfo :
flexibleCloudWS.listServers(authentication, null)) 

The so called class is defined like this :
public class FlexibleCloudWS implements IFlexibleCloudWS { ... }

When I called my WS with a client, there is
java.lang.ClassCastException:
com.francetelecom.virt.integration.VirtualServerVO at
com.francetelecom.flexiblecloud.impl.FlexibleCloudWS.listServers(FlexibleCloudWS.java:90)
at
com.francetelecom.flexiblecloud.rest.RestFlexibleCloud.listServers(RestFlexibleCloud.java:112)

VirtualServerVO is a POJO business class which is packaged in a jar
accessible into the classpath. Nothing particular with it.

The java.lang.ClassCastException occured exactly here :
for (VirtualServerVO virtualServerVO : arrayVS) {... } With
ArrayList<VirtualServerVO> arrayVS = new ArrayList<VirtualServerVO>();

I didn't have this problem with Jboss. CXF version was 2.1, but I tried this
version too with Jonas and same error... I tried to decompose the foreach,
and the exception occured when I did something like
arrayVS.get(0).getDescription;

I am really tired of searching the solution after two days...
Thanks for your help.

Serge
-- 
View this message in context: http://old.nabble.com/java.lang.ClassCastException-with-CXF-2.2.5-JAX-RS-tp27714241p27714241.html
Sent from the cxf-user mailing list archive at Nabble.com.


Re: java.lang.ClassCastException with CXF 2.2.5 JAX-RS

Posted by Sergey Beryozkin <sb...@progress.com>.
Hi

So, given something like this :

@GET
@Path("/servers")
@Produces( { "application/xml", "application/json" })
public VmInfos listServers(@HeaderParam("Authorization") String authHeader)
{
  for (ServerInfo serverInfo : flexibleCloudWS.listServers(authentication, null)) {
        ....
  }
}

you see an class loading exception happening in flexibleCloudWS.listServers ?

I'm not sure how I can help. It does seem like Jonas has some constraints of its own which are not met and this exception is thrpwn 
as a result ? Seems like a deployment/configuration issue. At this stage (when exception occurs) CXF JAXRS is not even involved...

cheers, Sergey



Hi there.

I'm trying to migrate a working CXF web service from Jboss 4.2.3 with CXF
2.1 to Jonas 5.1 with CXF 2.2.5 / Spring 2.5.6 with Maven integration. The
source code should be identical between the two platforms. Well, I hope so.

So I managed to maven compile my new cxf.war and deployed it successfully
into J2EE application server Jonas 5.1.

For that, I was obliged to use classloader-default-filtering.xml with this :
 <filter-name>org.apache.commons.digester.*</filter-name>
 <filter-name>org.springframework.*</filter-name>
 <filter-name>net.sf.cglib.*</filter-name>
 <filter-name>org.objectweb.asm.*</filter-name>
 <filter-name>org.apache.cxf.*</filter-name>

My CXF project is a module of a project called OrangeOpenCloud Here are some
extract of POM.XML :

<parent>
    <artifactId>OrangeOpenCloud</artifactId>
    <groupId>com.francetelecom.orange-open-cloud</groupId>
    <version>3.0</version>
 </parent>
 <groupId>com.francetelecom.orange-open-cloud</groupId>
 <artifactId>OrangeOpenCloud-cxf</artifactId>
 <version>1.1</version>
 <packaging>war</packaging>
 <name>OrangeOpenCloud CXF project</name>  <properties>
<cxf.version>2.2.5</cxf.version>
<spring.version>2.5.6</spring.version>
</properties>
...

My RESTful Web Service is defined in beans.xml <bean id="restflexiblecloud"
class="com.francetelecom.flexiblecloud.rest.RestFlexibleCloud" />

And now what's happened :

Into the class RestFlexibleCloud there is this method for example :
@GET
@Path("/servers")
@Produces( { "application/xml", "application/json" })
public VmInfos listServers(@HeaderParam("Authorization") String authHeader)
{ ... }
Which calls another method here : for (ServerInfo serverInfo :
flexibleCloudWS.listServers(authentication, null))

The so called class is defined like this :
public class FlexibleCloudWS implements IFlexibleCloudWS { ... }

When I called my WS with a client, there is
java.lang.ClassCastException:
com.francetelecom.virt.integration.VirtualServerVO at
com.francetelecom.flexiblecloud.impl.FlexibleCloudWS.listServers(FlexibleCloudWS.java:90)
at
com.francetelecom.flexiblecloud.rest.RestFlexibleCloud.listServers(RestFlexibleCloud.java:112)

VirtualServerVO is a POJO business class which is packaged in a jar
accessible into the classpath. Nothing particular with it.

The java.lang.ClassCastException occured exactly here :
for (VirtualServerVO virtualServerVO : arrayVS) {... } With
ArrayList<VirtualServerVO> arrayVS = new ArrayList<VirtualServerVO>();

I didn't have this problem with Jboss. CXF version was 2.1, but I tried this
version too with Jonas and same error... I tried to decompose the foreach,
and the exception occured when I did something like
arrayVS.get(0).getDescription;

I am really tired of searching the solution after two days...
Thanks for your help.

Serge
-- 
View this message in context: http://old.nabble.com/java.lang.ClassCastException-with-CXF-2.2.5-JAX-RS-tp27714241p27714241.html
Sent from the cxf-user mailing list archive at Nabble.com.