You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cxf.apache.org by eanbiso <bi...@hotmail.it> on 2013/05/07 16:56:12 UTC

java.lang.NoClassDefFoundError exception loading a rest endPoint in particular condition

Hi at all,
I have the following problem loading a rest endPoint using cxf.
The operations I do to load the rest endPoint after its publication are the
following:
			
			JAXRSClientFactoryBean proxyFactory = new JAXRSClientFactoryBean();
			proxyFactory.setServiceClass(clazz);
			address += servName;
			proxyFactory.setAddress(address);
			proxy = proxyFactory.create();			
			.....
			
The "proxyFactory.create()" operation recall the "createWithValues" method
of JAXRSClientFactoryBean:
			
			public Client createWithValues(Object... varValues) {
			...
			    actualClient =
(Client)ProxyHelper.getProxy(Thread.currentThread().getContextClassLoader(),
                                new Class[]{cri.getServiceClass(),
Client.class, InvocationHandlerAware.class}, 
                                     proxyImpl);
			...
			}

Now I have the following anomalous behavior:
the "getProxy(...)" operation fails when the ws interface contains a method
that wants a "complex" input parameter like this:

	@GET
	@Consumes({MediaType.APPLICATION_XML})
	@Path("/getJsonGenericCommandDescriptor/{genericCommand}")
	public String getJsonGenericCommandDescriptor(
			@WebParam(name = "genericCommand") @PathParam("genericCommand")
GenCmdDescr genericCommand) throws InstantiationException;

If the ws interface contains this method, an exception
"java.lang.NoClassDefFoundError: ___.GenCmdDescr" occurs loading the
endPoint.
If I remove this method from the ws interface the loading operation is right
and no exceptions occurs.
I do not understand why it happens.
In fact in the same ws interface I have another method that returns a
GenCmdDescr and no NoClassDefFoundError exception occurs with this.
The exception seems to occur only if the GenCmdDescr is used like an input
parameters of one of the methods and no excpetions occurs for method that
return an object GenCmdDescr.
Someone can help me?
Thanks a lot,

Andrea


NOTE:
1.
The GenCmdDescr object is an object like this:

@XmlRootElement(name="GenCmdDescr", namespace="http://****/")
@XmlAccessorType(XmlAccessType.FIELD)
public class GenCmdDescr {
	
	@XmlAttribute private String name;
	@XmlAttribute private int a;
	@XmlAttribute private int b;
	@XmlAttribute private int c;
	@XmlAttribute private short d;
	...
}

2.
I'm using cxf 2.5.0 version



--
View this message in context: http://cxf.547215.n5.nabble.com/java-lang-NoClassDefFoundError-exception-loading-a-rest-endPoint-in-particular-condition-tp5727361.html
Sent from the cxf-user mailing list archive at Nabble.com.

RE: java.lang.NoClassDefFoundError exception loading a rest endPoint in particular condition

Posted by eanbiso <bi...@hotmail.it>.
Ok, I've found the problem.
I was using cxf (version 2.5.0) like an imported Project with its MANIFEST.MF file.
In the MANIFEST.MF I have added, under the "DynamicImport-Package: ...." section, the packages containing the classes that generated the exception "NoClassDefFoundError " during the loading.
Now it seems to be all right.
Thanks a lot for the support.

Andrea

Date: Wed, 8 May 2013 02:56:02 -0700
From: ml-node+s547215n5727421h71@n5.nabble.com
To: bisomagic@hotmail.it
Subject: Re: java.lang.NoClassDefFoundError exception loading a rest endPoint in particular condition



	On 08/05/13 10:18, eanbiso wrote:

> Thanks for the reply.

> What I've seen in last test is that moving the GenCmdDescr class in the same package with IModel interface the exception doesn't occurs anymore.

> But I am not clear what can be the reason: also the other package was visible and loading the ws as soap there aren't problems; only when loading the ws as rest the exception occurs, even if during the publication seems to be all right.

> Any idea?

Not really, may be you need to use cglib-nodep... Something is being 

affected at the code generation level...


Sergey

> Thanks,

>

> Andrea

>

>

> Date: Wed, 8 May 2013 02:07:59 -0700

> From: [hidden email]

> To: [hidden email]

> Subject: Re: java.lang.NoClassDefFoundError exception loading a rest endPoint in particular condition

>

>

>

> 	I've done a quick local test:

>

>

> @Test

>

>       public void testProxy() throws Exception {

>

>           IModel model =

>

> JAXRSClientFactory.create("http://localhost:8080", IModel.class);

>

>           assertNotNull(model);

>

>           model.getJsonGenericCommandDescriptor(new

>

> GenCmdDescr("description"));

>

>       }

>

>

> This throws HTTP level exception as expected, as no endpoint is

>

> listening. The proxy is created OK. The only thing I had to remove

>

> IPublishable from my example as you did not provide any source for it

>

>

> I suspect some of your dependencies affecting the proxy generation.

>

>

> Cheers, Sergey

>

>

> On 08/05/13 07:16, eanbiso wrote:

>

>> Good morning,

>

>> the GenCmdDescr code is a class like this:

>

>>

>

>> import javax.xml.bind.annotation.XmlAttribute;

>

>> import javax.xml.bind.annotation.XmlRootElement;

>

>> import javax.xml.bind.annotation.XmlAccessorType;

>

>> import javax.xml.bind.annotation.XmlAccessType;

>

>>

>

>> @XmlRootElement(name="GenCmdDescr", namespace="http://***/")

>

>> @XmlAccessorType(XmlAccessType.FIELD)

>

>> public class GenCmdDescr {

>

>>

>

>>       @XmlAttribute private String name;

>

>>       @XmlAttribute private int profileId;

>

>>       @XmlAttribute private int objIdHigh;

>

>>       @XmlAttribute private int objIdLow;

>

>>       @XmlAttribute private short protType;

>

>>

>

>>       public GenCmdDescr(){};

>

>>

>

>>       public GenCmdDescr(String name, short protType, int profileId, int objIdHigh, int objIdLow) {

>

>>           super();

>

>>           this.name = name;

>

>>           this.profileId = profileId;

>

>>           this.objIdHigh = objIdHigh;

>

>>           this.objIdLow = objIdLow;

>

>>           this.protType = protType;

>

>>       }

>

>>

>

>>       public String getName() {

>

>>           return this.name;

>

>>       }

>

>>       public void setName(String name) {

>

>>           this.name = name;

>

>>       }

>

>>       public int getProfileId() {

>

>>           return profileId;

>

>>       }

>

>>       public void setProfileId(int profileId) {

>

>>           this.profileId = profileId;

>

>>       }

>

>>       public int getObjIdHigh() {

>

>>           return objIdHigh;

>

>>       }

>

>>       public void setObjIdHigh(int objIdHigh) {

>

>>           this.objIdHigh = objIdHigh;

>

>>       }

>

>>       public int getObjIdLow() {

>

>>           return objIdLow;

>

>>       }

>

>>       public void setObjIdLow(int objIdLow) {

>

>>           this.objIdLow = objIdLow;

>

>>       }

>

>>       public short getProtType() {

>

>>           return protType;

>

>>       }

>

>>       public void setProtType(short protType) {

>

>>           this.protType = protType;

>

>>       }

>

>> }

>

>>

>

>> while the ws interface is similar to this (I have reported only the method with problems):

>

>>

>

>> @WebService(targetNamespace = "****")

>

>> public interface IModel extends IPublishable {

>

>>

>

>>       @CxfWSAuthorization(group=***, roles={***})

>

>>       @GET

>

>>       @Consumes({MediaType.APPLICATION_XML})

>

>>       @Path("/getJsonGenericCommandDescriptor/{genericCommand}")

>

>>       public String getJsonGenericCommandDescriptor(

>

>>               @WebParam(name = "genericCommand") @PathParam("genericCommand") GenCmdDescr genericCommand) throws InstantiationException;

>

>>

>

>> }

>

>>

>

>>

>

>> Andrea

>

>>

>

>> Date: Tue, 7 May 2013 09:45:46 -0700

>

>> From: [hidden email]

>

>> To: [hidden email]

>

>> Subject: Re: java.lang.NoClassDefFoundError exception loading a rest endPoint in particular condition

>

>>

>

>>

>

>>

>

>> 	Can you give me a favor and attach an interface and GenCmdDescr source

>

>>

>

>> to JIRA ? Or nabble ? I'll give it a try

>

>>

>

>>

>

>> Sergey

>

>>

>

>> On 07/05/13 17:29, eanbiso wrote:

>

>>

>

>>> Thanks for the fast reply.

>

>>

>

>>> I do not use a concrete class and when I create the proxyFactory I use the corresponding ws interface class as "clazz" value.

>

>>

>

>>>

>

>>

>

>>> Andrea

>

>>

>

>>>

>

>>

>

>>>

>

>>

>

>>>

>

>>

>

>>> Date: Tue, 7 May 2013 09:01:10 -0700

>

>>

>

>>> From: [hidden email]

>

>>

>

>>> To: [hidden email]

>

>>

>

>>> Subject: Re: java.lang.NoClassDefFoundError exception loading a rest endPoint in particular condition

>

>>

>

>>>

>

>>

>

>>>

>

>>

>

>>>

>

>>

>

>>> 	Hi

>

>>

>

>>>

>

>>

>

>>> On 07/05/13 15:56, eanbiso wrote:

>

>>

>

>>>

>

>>

>

>>>> Hi at all,

>

>>

>

>>>

>

>>

>

>>>> I have the following problem loading a rest endPoint using cxf.

>

>>

>

>>>

>

>>

>

>>>> The operations I do to load the rest endPoint after its publication are the

>

>>

>

>>>

>

>>

>

>>>> following:

>

>>

>

>>>

>

>>

>

>>>> 			

>

>>

>

>>>

>

>>

>

>>>> 			JAXRSClientFactoryBean proxyFactory = new JAXRSClientFactoryBean();

>

>>

>

>>>

>

>>

>

>>>> 			proxyFactory.setServiceClass(clazz);

>

>>

>

>>>

>

>>

>

>>>> 			address += servName;

>

>>

>

>>>

>

>>

>

>>>> 			proxyFactory.setAddress(address);

>

>>

>

>>>

>

>>

>

>>>> 			proxy = proxyFactory.create();			

>

>>

>

>>>

>

>>

>

>>>> 			.....

>

>>

>

>>>

>

>>

>

>>>> 			

>

>>

>

>>>

>

>>

>

>>>> The "proxyFactory.create()" operation recall the "createWithValues" method

>

>>

>

>>>

>

>>

>

>>>> of JAXRSClientFactoryBean:

>

>>

>

>>>

>

>>

>

>>>> 			

>

>>

>

>>>

>

>>

>

>>>> 			public Client createWithValues(Object... varValues) {

>

>>

>

>>>

>

>>

>

>>>> 			...

>

>>

>

>>>

>

>>

>

>>>> 			actualClient =

>

>>

>

>>>

>

>>

>

>>>> (Client)ProxyHelper.getProxy(Thread.currentThread().getContextClassLoader(),

>

>>

>

>>>

>

>>

>

>>>>                                     new Class[]{cri.getServiceClass(),

>

>>

>

>>>

>

>>

>

>>>> Client.class, InvocationHandlerAware.class},

>

>>

>

>>>

>

>>

>

>>>>                                          proxyImpl);

>

>>

>

>>>

>

>>

>

>>>> 			...

>

>>

>

>>>

>

>>

>

>>>> 			}

>

>>

>

>>>

>

>>

>

>>>>

>

>>

>

>>>

>

>>

>

>>>> Now I have the following anomalous behavior:

>

>>

>

>>>

>

>>

>

>>>> the "getProxy(...)" operation fails when the ws interface contains a method

>

>>

>

>>>

>

>>

>

>>>> that wants a "complex" input parameter like this:

>

>>

>

>>>

>

>>

>

>>>>

>

>>

>

>>>

>

>>

>

>>>> 	@GET

>

>>

>

>>>

>

>>

>

>>>> 	@Consumes({MediaType.APPLICATION_XML})

>

>>

>

>>>

>

>>

>

>>>> 	@Path("/getJsonGenericCommandDescriptor/{genericCommand}")

>

>>

>

>>>

>

>>

>

>>>> 	public String getJsonGenericCommandDescriptor(

>

>>

>

>>>

>

>>

>

>>>> 			@WebParam(name = "genericCommand") @PathParam("genericCommand")

>

>>

>

>>>

>

>>

>

>>>> GenCmdDescr genericCommand) throws InstantiationException;

>

>>

>

>>>

>

>>

>

>>>>

>

>>

>

>>>

>

>>

>

>>>> If the ws interface contains this method, an exception

>

>>

>

>>>

>

>>

>

>>>> "java.lang.NoClassDefFoundError: ___.GenCmdDescr" occurs loading the

>

>>

>

>>>

>

>>

>

>>>> endPoint.

>

>>

>

>>>

>

>>

>

>>>> If I remove this method from the ws interface the loading operation is right

>

>>

>

>>>

>

>>

>

>>>> and no exceptions occurs.

>

>>

>

>>>

>

>>

>

>>>> I do not understand why it happens.

>

>>

>

>>>

>

>>

>

>>>> In fact in the same ws interface I have another method that returns a

>

>>

>

>>>

>

>>

>

>>>> GenCmdDescr and no NoClassDefFoundError exception occurs with this.

>

>>

>

>>>

>

>>

>

>>>> The exception seems to occur only if the GenCmdDescr is used like an input

>

>>

>

>>>

>

>>

>

>>>> parameters of one of the methods and no excpetions occurs for method that

>

>>

>

>>>

>

>>

>

>>>> return an object GenCmdDescr.

>

>>

>

>>>

>

>>

>

>>>> Someone can help me?

>

>>

>

>>>

>

>>

>

>>> Do you use a concrete class to create a proxy ? Example, do you use say

>

>>

>

>>>

>

>>

>

>>> MyServiceImpl.class where MyServiceImpl is a root resource implementation ?

>

>>

>

>>>

>

>>

>

>>>

>

>>

>

>>> I can only think at the moment of CGLIB getting confused (which is used

>

>>

>

>>>

>

>>

>

>>> to create a proxy when a concrete class like MyServiceImpl is proxified)

>

>>

>

>>>

>

>>

>

>>>

>

>>

>

>>> Cheers, Sergey

>

>>

>

>>>

>

>>

>

>>>

>

>>

>

>>>> Thanks a lot,

>

>>

>

>>>

>

>>

>

>>>>

>

>>

>

>>>

>

>>

>

>>>> Andrea

>

>>

>

>>>

>

>>

>

>>>>

>

>>

>

>>>

>

>>

>

>>>>

>

>>

>

>>>

>

>>

>

>>>> NOTE:

>

>>

>

>>>

>

>>

>

>>>> 1.

>

>>

>

>>>

>

>>

>

>>>> The GenCmdDescr object is an object like this:

>

>>

>

>>>

>

>>

>

>>>>

>

>>

>

>>>

>

>>

>

>>>> @XmlRootElement(name="GenCmdDescr", namespace="http://****/")

>

>>

>

>>>

>

>>

>

>>>> @XmlAccessorType(XmlAccessType.FIELD)

>

>>

>

>>>

>

>>

>

>>>> public class GenCmdDescr {

>

>>

>

>>>

>

>>

>

>>>> 	

>

>>

>

>>>

>

>>

>

>>>> 	@XmlAttribute private String name;

>

>>

>

>>>

>

>>

>

>>>> 	@XmlAttribute private int a;

>

>>

>

>>>

>

>>

>

>>>> 	@XmlAttribute private int b;

>

>>

>

>>>

>

>>

>

>>>> 	@XmlAttribute private int c;

>

>>

>

>>>

>

>>

>

>>>> 	@XmlAttribute private short d;

>

>>

>

>>>

>

>>

>

>>>> 	...

>

>>

>

>>>

>

>>

>

>>>> }

>

>>

>

>>>

>

>>

>

>>>>

>

>>

>

>>>

>

>>

>

>>>> 2.

>

>>

>

>>>

>

>>

>

>>>> I'm using cxf 2.5.0 version

>

>>

>

>>>

>

>>

>

>>>>

>

>>

>

>>>

>

>>

>

>>>>

>

>>

>

>>>

>

>>

>

>>>>

>

>>

>

>>>

>

>>

>

>>>> --

>

>>

>

>>>

>

>>

>

>>>> View this message in context: http://cxf.547215.n5.nabble.com/java-lang-NoClassDefFoundError-exception-loading-a-rest-endPoint-in-particular-condition-tp5727361.html
>>>> Sent from the cxf-user mailing list archive at Nabble.com.

>

>>

>

>>>

>

>>

>

>>>

>

>>

>

>>

>

>



	
	
	
	

	

	
	
		If you reply to this email, your message will be added to the discussion below:
		http://cxf.547215.n5.nabble.com/java-lang-NoClassDefFoundError-exception-loading-a-rest-endPoint-in-particular-condition-tp5727361p5727421.html
	
	
		
		To unsubscribe from java.lang.NoClassDefFoundError exception loading a rest endPoint in particular condition, click here.

		NAML
	 		 	   		  



--
View this message in context: http://cxf.547215.n5.nabble.com/java-lang-NoClassDefFoundError-exception-loading-a-rest-endPoint-in-particular-condition-tp5727361p5727422.html
Sent from the cxf-user mailing list archive at Nabble.com.

Re: java.lang.NoClassDefFoundError exception loading a rest endPoint in particular condition

Posted by Sergey Beryozkin <sb...@gmail.com>.
On 08/05/13 10:18, eanbiso wrote:
> Thanks for the reply.
> What I've seen in last test is that moving the GenCmdDescr class in the same package with IModel interface the exception doesn't occurs anymore.
> But I am not clear what can be the reason: also the other package was visible and loading the ws as soap there aren't problems; only when loading the ws as rest the exception occurs, even if during the publication seems to be all right.
> Any idea?
Not really, may be you need to use cglib-nodep... Something is being 
affected at the code generation level...

Sergey
> Thanks,
>
> Andrea
>
>
> Date: Wed, 8 May 2013 02:07:59 -0700
> From: ml-node+s547215n5727417h47@n5.nabble.com
> To: bisomagic@hotmail.it
> Subject: Re: java.lang.NoClassDefFoundError exception loading a rest endPoint in particular condition
>
>
>
> 	I've done a quick local test:
>
>
> @Test
>
>       public void testProxy() throws Exception {
>
>           IModel model =
>
> JAXRSClientFactory.create("http://localhost:8080", IModel.class);
>
>           assertNotNull(model);
>
>           model.getJsonGenericCommandDescriptor(new
>
> GenCmdDescr("description"));
>
>       }
>
>
> This throws HTTP level exception as expected, as no endpoint is
>
> listening. The proxy is created OK. The only thing I had to remove
>
> IPublishable from my example as you did not provide any source for it
>
>
> I suspect some of your dependencies affecting the proxy generation.
>
>
> Cheers, Sergey
>
>
> On 08/05/13 07:16, eanbiso wrote:
>
>> Good morning,
>
>> the GenCmdDescr code is a class like this:
>
>>
>
>> import javax.xml.bind.annotation.XmlAttribute;
>
>> import javax.xml.bind.annotation.XmlRootElement;
>
>> import javax.xml.bind.annotation.XmlAccessorType;
>
>> import javax.xml.bind.annotation.XmlAccessType;
>
>>
>
>> @XmlRootElement(name="GenCmdDescr", namespace="http://***/")
>
>> @XmlAccessorType(XmlAccessType.FIELD)
>
>> public class GenCmdDescr {
>
>>
>
>>       @XmlAttribute private String name;
>
>>       @XmlAttribute private int profileId;
>
>>       @XmlAttribute private int objIdHigh;
>
>>       @XmlAttribute private int objIdLow;
>
>>       @XmlAttribute private short protType;
>
>>
>
>>       public GenCmdDescr(){};
>
>>
>
>>       public GenCmdDescr(String name, short protType, int profileId, int objIdHigh, int objIdLow) {
>
>>           super();
>
>>           this.name = name;
>
>>           this.profileId = profileId;
>
>>           this.objIdHigh = objIdHigh;
>
>>           this.objIdLow = objIdLow;
>
>>           this.protType = protType;
>
>>       }
>
>>
>
>>       public String getName() {
>
>>           return this.name;
>
>>       }
>
>>       public void setName(String name) {
>
>>           this.name = name;
>
>>       }
>
>>       public int getProfileId() {
>
>>           return profileId;
>
>>       }
>
>>       public void setProfileId(int profileId) {
>
>>           this.profileId = profileId;
>
>>       }
>
>>       public int getObjIdHigh() {
>
>>           return objIdHigh;
>
>>       }
>
>>       public void setObjIdHigh(int objIdHigh) {
>
>>           this.objIdHigh = objIdHigh;
>
>>       }
>
>>       public int getObjIdLow() {
>
>>           return objIdLow;
>
>>       }
>
>>       public void setObjIdLow(int objIdLow) {
>
>>           this.objIdLow = objIdLow;
>
>>       }
>
>>       public short getProtType() {
>
>>           return protType;
>
>>       }
>
>>       public void setProtType(short protType) {
>
>>           this.protType = protType;
>
>>       }
>
>> }
>
>>
>
>> while the ws interface is similar to this (I have reported only the method with problems):
>
>>
>
>> @WebService(targetNamespace = "****")
>
>> public interface IModel extends IPublishable {
>
>>
>
>>       @CxfWSAuthorization(group=***, roles={***})
>
>>       @GET
>
>>       @Consumes({MediaType.APPLICATION_XML})
>
>>       @Path("/getJsonGenericCommandDescriptor/{genericCommand}")
>
>>       public String getJsonGenericCommandDescriptor(
>
>>               @WebParam(name = "genericCommand") @PathParam("genericCommand") GenCmdDescr genericCommand) throws InstantiationException;
>
>>
>
>> }
>
>>
>
>>
>
>> Andrea
>
>>
>
>> Date: Tue, 7 May 2013 09:45:46 -0700
>
>> From: [hidden email]
>
>> To: [hidden email]
>
>> Subject: Re: java.lang.NoClassDefFoundError exception loading a rest endPoint in particular condition
>
>>
>
>>
>
>>
>
>> 	Can you give me a favor and attach an interface and GenCmdDescr source
>
>>
>
>> to JIRA ? Or nabble ? I'll give it a try
>
>>
>
>>
>
>> Sergey
>
>>
>
>> On 07/05/13 17:29, eanbiso wrote:
>
>>
>
>>> Thanks for the fast reply.
>
>>
>
>>> I do not use a concrete class and when I create the proxyFactory I use the corresponding ws interface class as "clazz" value.
>
>>
>
>>>
>
>>
>
>>> Andrea
>
>>
>
>>>
>
>>
>
>>>
>
>>
>
>>>
>
>>
>
>>> Date: Tue, 7 May 2013 09:01:10 -0700
>
>>
>
>>> From: [hidden email]
>
>>
>
>>> To: [hidden email]
>
>>
>
>>> Subject: Re: java.lang.NoClassDefFoundError exception loading a rest endPoint in particular condition
>
>>
>
>>>
>
>>
>
>>>
>
>>
>
>>>
>
>>
>
>>> 	Hi
>
>>
>
>>>
>
>>
>
>>> On 07/05/13 15:56, eanbiso wrote:
>
>>
>
>>>
>
>>
>
>>>> Hi at all,
>
>>
>
>>>
>
>>
>
>>>> I have the following problem loading a rest endPoint using cxf.
>
>>
>
>>>
>
>>
>
>>>> The operations I do to load the rest endPoint after its publication are the
>
>>
>
>>>
>
>>
>
>>>> following:
>
>>
>
>>>
>
>>
>
>>>> 			
>
>>
>
>>>
>
>>
>
>>>> 			JAXRSClientFactoryBean proxyFactory = new JAXRSClientFactoryBean();
>
>>
>
>>>
>
>>
>
>>>> 			proxyFactory.setServiceClass(clazz);
>
>>
>
>>>
>
>>
>
>>>> 			address += servName;
>
>>
>
>>>
>
>>
>
>>>> 			proxyFactory.setAddress(address);
>
>>
>
>>>
>
>>
>
>>>> 			proxy = proxyFactory.create();			
>
>>
>
>>>
>
>>
>
>>>> 			.....
>
>>
>
>>>
>
>>
>
>>>> 			
>
>>
>
>>>
>
>>
>
>>>> The "proxyFactory.create()" operation recall the "createWithValues" method
>
>>
>
>>>
>
>>
>
>>>> of JAXRSClientFactoryBean:
>
>>
>
>>>
>
>>
>
>>>> 			
>
>>
>
>>>
>
>>
>
>>>> 			public Client createWithValues(Object... varValues) {
>
>>
>
>>>
>
>>
>
>>>> 			...
>
>>
>
>>>
>
>>
>
>>>> 			actualClient =
>
>>
>
>>>
>
>>
>
>>>> (Client)ProxyHelper.getProxy(Thread.currentThread().getContextClassLoader(),
>
>>
>
>>>
>
>>
>
>>>>                                     new Class[]{cri.getServiceClass(),
>
>>
>
>>>
>
>>
>
>>>> Client.class, InvocationHandlerAware.class},
>
>>
>
>>>
>
>>
>
>>>>                                          proxyImpl);
>
>>
>
>>>
>
>>
>
>>>> 			...
>
>>
>
>>>
>
>>
>
>>>> 			}
>
>>
>
>>>
>
>>
>
>>>>
>
>>
>
>>>
>
>>
>
>>>> Now I have the following anomalous behavior:
>
>>
>
>>>
>
>>
>
>>>> the "getProxy(...)" operation fails when the ws interface contains a method
>
>>
>
>>>
>
>>
>
>>>> that wants a "complex" input parameter like this:
>
>>
>
>>>
>
>>
>
>>>>
>
>>
>
>>>
>
>>
>
>>>> 	@GET
>
>>
>
>>>
>
>>
>
>>>> 	@Consumes({MediaType.APPLICATION_XML})
>
>>
>
>>>
>
>>
>
>>>> 	@Path("/getJsonGenericCommandDescriptor/{genericCommand}")
>
>>
>
>>>
>
>>
>
>>>> 	public String getJsonGenericCommandDescriptor(
>
>>
>
>>>
>
>>
>
>>>> 			@WebParam(name = "genericCommand") @PathParam("genericCommand")
>
>>
>
>>>
>
>>
>
>>>> GenCmdDescr genericCommand) throws InstantiationException;
>
>>
>
>>>
>
>>
>
>>>>
>
>>
>
>>>
>
>>
>
>>>> If the ws interface contains this method, an exception
>
>>
>
>>>
>
>>
>
>>>> "java.lang.NoClassDefFoundError: ___.GenCmdDescr" occurs loading the
>
>>
>
>>>
>
>>
>
>>>> endPoint.
>
>>
>
>>>
>
>>
>
>>>> If I remove this method from the ws interface the loading operation is right
>
>>
>
>>>
>
>>
>
>>>> and no exceptions occurs.
>
>>
>
>>>
>
>>
>
>>>> I do not understand why it happens.
>
>>
>
>>>
>
>>
>
>>>> In fact in the same ws interface I have another method that returns a
>
>>
>
>>>
>
>>
>
>>>> GenCmdDescr and no NoClassDefFoundError exception occurs with this.
>
>>
>
>>>
>
>>
>
>>>> The exception seems to occur only if the GenCmdDescr is used like an input
>
>>
>
>>>
>
>>
>
>>>> parameters of one of the methods and no excpetions occurs for method that
>
>>
>
>>>
>
>>
>
>>>> return an object GenCmdDescr.
>
>>
>
>>>
>
>>
>
>>>> Someone can help me?
>
>>
>
>>>
>
>>
>
>>> Do you use a concrete class to create a proxy ? Example, do you use say
>
>>
>
>>>
>
>>
>
>>> MyServiceImpl.class where MyServiceImpl is a root resource implementation ?
>
>>
>
>>>
>
>>
>
>>>
>
>>
>
>>> I can only think at the moment of CGLIB getting confused (which is used
>
>>
>
>>>
>
>>
>
>>> to create a proxy when a concrete class like MyServiceImpl is proxified)
>
>>
>
>>>
>
>>
>
>>>
>
>>
>
>>> Cheers, Sergey
>
>>
>
>>>
>
>>
>
>>>
>
>>
>
>>>> Thanks a lot,
>
>>
>
>>>
>
>>
>
>>>>
>
>>
>
>>>
>
>>
>
>>>> Andrea
>
>>
>
>>>
>
>>
>
>>>>
>
>>
>
>>>
>
>>
>
>>>>
>
>>
>
>>>
>
>>
>
>>>> NOTE:
>
>>
>
>>>
>
>>
>
>>>> 1.
>
>>
>
>>>
>
>>
>
>>>> The GenCmdDescr object is an object like this:
>
>>
>
>>>
>
>>
>
>>>>
>
>>
>
>>>
>
>>
>
>>>> @XmlRootElement(name="GenCmdDescr", namespace="http://****/")
>
>>
>
>>>
>
>>
>
>>>> @XmlAccessorType(XmlAccessType.FIELD)
>
>>
>
>>>
>
>>
>
>>>> public class GenCmdDescr {
>
>>
>
>>>
>
>>
>
>>>> 	
>
>>
>
>>>
>
>>
>
>>>> 	@XmlAttribute private String name;
>
>>
>
>>>
>
>>
>
>>>> 	@XmlAttribute private int a;
>
>>
>
>>>
>
>>
>
>>>> 	@XmlAttribute private int b;
>
>>
>
>>>
>
>>
>
>>>> 	@XmlAttribute private int c;
>
>>
>
>>>
>
>>
>
>>>> 	@XmlAttribute private short d;
>
>>
>
>>>
>
>>
>
>>>> 	...
>
>>
>
>>>
>
>>
>
>>>> }
>
>>
>
>>>
>
>>
>
>>>>
>
>>
>
>>>
>
>>
>
>>>> 2.
>
>>
>
>>>
>
>>
>
>>>> I'm using cxf 2.5.0 version
>
>>
>
>>>
>
>>
>
>>>>
>
>>
>
>>>
>
>>
>
>>>>
>
>>
>
>>>
>
>>
>
>>>>
>
>>
>
>>>
>
>>
>
>>>> --
>
>>
>
>>>
>
>>
>
>>>> View this message in context: http://cxf.547215.n5.nabble.com/java-lang-NoClassDefFoundError-exception-loading-a-rest-endPoint-in-particular-condition-tp5727361.html
>>>> Sent from the cxf-user mailing list archive at Nabble.com.
>
>>
>
>>>
>
>>
>
>>>
>
>>
>
>>
>
>

RE: java.lang.NoClassDefFoundError exception loading a rest endPoint in particular condition

Posted by eanbiso <bi...@hotmail.it>.
Thanks for the reply.
What I've seen in last test is that moving the GenCmdDescr class in the same package with IModel interface the exception doesn't occurs anymore.
But I am not clear what can be the reason: also the other package was visible and loading the ws as soap there aren't problems; only when loading the ws as rest the exception occurs, even if during the publication seems to be all right.
Any idea?
Thanks,

Andrea


Date: Wed, 8 May 2013 02:07:59 -0700
From: ml-node+s547215n5727417h47@n5.nabble.com
To: bisomagic@hotmail.it
Subject: Re: java.lang.NoClassDefFoundError exception loading a rest endPoint in particular condition



	I've done a quick local test:


@Test

     public void testProxy() throws Exception {

         IModel model = 

JAXRSClientFactory.create("http://localhost:8080", IModel.class);

         assertNotNull(model);

         model.getJsonGenericCommandDescriptor(new 

GenCmdDescr("description"));

     }


This throws HTTP level exception as expected, as no endpoint is 

listening. The proxy is created OK. The only thing I had to remove 

IPublishable from my example as you did not provide any source for it


I suspect some of your dependencies affecting the proxy generation.


Cheers, Sergey


On 08/05/13 07:16, eanbiso wrote:

> Good morning,

> the GenCmdDescr code is a class like this:

>

> import javax.xml.bind.annotation.XmlAttribute;

> import javax.xml.bind.annotation.XmlRootElement;

> import javax.xml.bind.annotation.XmlAccessorType;

> import javax.xml.bind.annotation.XmlAccessType;

>

> @XmlRootElement(name="GenCmdDescr", namespace="http://***/")

> @XmlAccessorType(XmlAccessType.FIELD)

> public class GenCmdDescr {

>

>      @XmlAttribute private String name;

>      @XmlAttribute private int profileId;

>      @XmlAttribute private int objIdHigh;

>      @XmlAttribute private int objIdLow;

>      @XmlAttribute private short protType;

>

>      public GenCmdDescr(){};

>

>      public GenCmdDescr(String name, short protType, int profileId, int objIdHigh, int objIdLow) {

>          super();

>          this.name = name;

>          this.profileId = profileId;

>          this.objIdHigh = objIdHigh;

>          this.objIdLow = objIdLow;

>          this.protType = protType;

>      }

>

>      public String getName() {

>          return this.name;

>      }

>      public void setName(String name) {

>          this.name = name;

>      }

>      public int getProfileId() {

>          return profileId;

>      }

>      public void setProfileId(int profileId) {

>          this.profileId = profileId;

>      }

>      public int getObjIdHigh() {

>          return objIdHigh;

>      }

>      public void setObjIdHigh(int objIdHigh) {

>          this.objIdHigh = objIdHigh;

>      }

>      public int getObjIdLow() {

>          return objIdLow;

>      }

>      public void setObjIdLow(int objIdLow) {

>          this.objIdLow = objIdLow;

>      }

>      public short getProtType() {

>          return protType;

>      }

>      public void setProtType(short protType) {

>          this.protType = protType;

>      }

> }

>

> while the ws interface is similar to this (I have reported only the method with problems):

>

> @WebService(targetNamespace = "****")

> public interface IModel extends IPublishable {

>

>      @CxfWSAuthorization(group=***, roles={***})

>      @GET

>      @Consumes({MediaType.APPLICATION_XML})

>      @Path("/getJsonGenericCommandDescriptor/{genericCommand}")

>      public String getJsonGenericCommandDescriptor(

>              @WebParam(name = "genericCommand") @PathParam("genericCommand") GenCmdDescr genericCommand) throws InstantiationException;

>

> }

>

>

> Andrea

>

> Date: Tue, 7 May 2013 09:45:46 -0700

> From: [hidden email]

> To: [hidden email]

> Subject: Re: java.lang.NoClassDefFoundError exception loading a rest endPoint in particular condition

>

>

>

> 	Can you give me a favor and attach an interface and GenCmdDescr source

>

> to JIRA ? Or nabble ? I'll give it a try

>

>

> Sergey

>

> On 07/05/13 17:29, eanbiso wrote:

>

>> Thanks for the fast reply.

>

>> I do not use a concrete class and when I create the proxyFactory I use the corresponding ws interface class as "clazz" value.

>

>>

>

>> Andrea

>

>>

>

>>

>

>>

>

>> Date: Tue, 7 May 2013 09:01:10 -0700

>

>> From: [hidden email]

>

>> To: [hidden email]

>

>> Subject: Re: java.lang.NoClassDefFoundError exception loading a rest endPoint in particular condition

>

>>

>

>>

>

>>

>

>> 	Hi

>

>>

>

>> On 07/05/13 15:56, eanbiso wrote:

>

>>

>

>>> Hi at all,

>

>>

>

>>> I have the following problem loading a rest endPoint using cxf.

>

>>

>

>>> The operations I do to load the rest endPoint after its publication are the

>

>>

>

>>> following:

>

>>

>

>>> 			

>

>>

>

>>> 			JAXRSClientFactoryBean proxyFactory = new JAXRSClientFactoryBean();

>

>>

>

>>> 			proxyFactory.setServiceClass(clazz);

>

>>

>

>>> 			address += servName;

>

>>

>

>>> 			proxyFactory.setAddress(address);

>

>>

>

>>> 			proxy = proxyFactory.create();			

>

>>

>

>>> 			.....

>

>>

>

>>> 			

>

>>

>

>>> The "proxyFactory.create()" operation recall the "createWithValues" method

>

>>

>

>>> of JAXRSClientFactoryBean:

>

>>

>

>>> 			

>

>>

>

>>> 			public Client createWithValues(Object... varValues) {

>

>>

>

>>> 			...

>

>>

>

>>> 			actualClient =

>

>>

>

>>> (Client)ProxyHelper.getProxy(Thread.currentThread().getContextClassLoader(),

>

>>

>

>>>                                    new Class[]{cri.getServiceClass(),

>

>>

>

>>> Client.class, InvocationHandlerAware.class},

>

>>

>

>>>                                         proxyImpl);

>

>>

>

>>> 			...

>

>>

>

>>> 			}

>

>>

>

>>>

>

>>

>

>>> Now I have the following anomalous behavior:

>

>>

>

>>> the "getProxy(...)" operation fails when the ws interface contains a method

>

>>

>

>>> that wants a "complex" input parameter like this:

>

>>

>

>>>

>

>>

>

>>> 	@GET

>

>>

>

>>> 	@Consumes({MediaType.APPLICATION_XML})

>

>>

>

>>> 	@Path("/getJsonGenericCommandDescriptor/{genericCommand}")

>

>>

>

>>> 	public String getJsonGenericCommandDescriptor(

>

>>

>

>>> 			@WebParam(name = "genericCommand") @PathParam("genericCommand")

>

>>

>

>>> GenCmdDescr genericCommand) throws InstantiationException;

>

>>

>

>>>

>

>>

>

>>> If the ws interface contains this method, an exception

>

>>

>

>>> "java.lang.NoClassDefFoundError: ___.GenCmdDescr" occurs loading the

>

>>

>

>>> endPoint.

>

>>

>

>>> If I remove this method from the ws interface the loading operation is right

>

>>

>

>>> and no exceptions occurs.

>

>>

>

>>> I do not understand why it happens.

>

>>

>

>>> In fact in the same ws interface I have another method that returns a

>

>>

>

>>> GenCmdDescr and no NoClassDefFoundError exception occurs with this.

>

>>

>

>>> The exception seems to occur only if the GenCmdDescr is used like an input

>

>>

>

>>> parameters of one of the methods and no excpetions occurs for method that

>

>>

>

>>> return an object GenCmdDescr.

>

>>

>

>>> Someone can help me?

>

>>

>

>> Do you use a concrete class to create a proxy ? Example, do you use say

>

>>

>

>> MyServiceImpl.class where MyServiceImpl is a root resource implementation ?

>

>>

>

>>

>

>> I can only think at the moment of CGLIB getting confused (which is used

>

>>

>

>> to create a proxy when a concrete class like MyServiceImpl is proxified)

>

>>

>

>>

>

>> Cheers, Sergey

>

>>

>

>>

>

>>> Thanks a lot,

>

>>

>

>>>

>

>>

>

>>> Andrea

>

>>

>

>>>

>

>>

>

>>>

>

>>

>

>>> NOTE:

>

>>

>

>>> 1.

>

>>

>

>>> The GenCmdDescr object is an object like this:

>

>>

>

>>>

>

>>

>

>>> @XmlRootElement(name="GenCmdDescr", namespace="http://****/")

>

>>

>

>>> @XmlAccessorType(XmlAccessType.FIELD)

>

>>

>

>>> public class GenCmdDescr {

>

>>

>

>>> 	

>

>>

>

>>> 	@XmlAttribute private String name;

>

>>

>

>>> 	@XmlAttribute private int a;

>

>>

>

>>> 	@XmlAttribute private int b;

>

>>

>

>>> 	@XmlAttribute private int c;

>

>>

>

>>> 	@XmlAttribute private short d;

>

>>

>

>>> 	...

>

>>

>

>>> }

>

>>

>

>>>

>

>>

>

>>> 2.

>

>>

>

>>> I'm using cxf 2.5.0 version

>

>>

>

>>>

>

>>

>

>>>

>

>>

>

>>>

>

>>

>

>>> --

>

>>

>

>>> View this message in context: http://cxf.547215.n5.nabble.com/java-lang-NoClassDefFoundError-exception-loading-a-rest-endPoint-in-particular-condition-tp5727361.html
>>> Sent from the cxf-user mailing list archive at Nabble.com.

>

>>

>

>>

>

>


-- 

Sergey Beryozkin


Talend Community Coders

http://coders.talend.com/

Blog: http://sberyozkin.blogspot.com


	
	
	
	

	

	
	
		If you reply to this email, your message will be added to the discussion below:
		http://cxf.547215.n5.nabble.com/java-lang-NoClassDefFoundError-exception-loading-a-rest-endPoint-in-particular-condition-tp5727361p5727417.html
	
	
		
		To unsubscribe from java.lang.NoClassDefFoundError exception loading a rest endPoint in particular condition, click here.

		NAML
	 		 	   		  



--
View this message in context: http://cxf.547215.n5.nabble.com/java-lang-NoClassDefFoundError-exception-loading-a-rest-endPoint-in-particular-condition-tp5727361p5727418.html
Sent from the cxf-user mailing list archive at Nabble.com.

Re: java.lang.NoClassDefFoundError exception loading a rest endPoint in particular condition

Posted by Sergey Beryozkin <sb...@gmail.com>.
I've done a quick local test:

@Test
     public void testProxy() throws Exception {
         IModel model = 
JAXRSClientFactory.create("http://localhost:8080", IModel.class);
         assertNotNull(model);
         model.getJsonGenericCommandDescriptor(new 
GenCmdDescr("description"));
     }

This throws HTTP level exception as expected, as no endpoint is 
listening. The proxy is created OK. The only thing I had to remove 
IPublishable from my example as you did not provide any source for it

I suspect some of your dependencies affecting the proxy generation.

Cheers, Sergey

On 08/05/13 07:16, eanbiso wrote:
> Good morning,
> the GenCmdDescr code is a class like this:
>
> import javax.xml.bind.annotation.XmlAttribute;
> import javax.xml.bind.annotation.XmlRootElement;
> import javax.xml.bind.annotation.XmlAccessorType;
> import javax.xml.bind.annotation.XmlAccessType;
>
> @XmlRootElement(name="GenCmdDescr", namespace="http://***/")
> @XmlAccessorType(XmlAccessType.FIELD)
> public class GenCmdDescr {
>
>      @XmlAttribute private String name;
>      @XmlAttribute private int profileId;
>      @XmlAttribute private int objIdHigh;
>      @XmlAttribute private int objIdLow;
>      @XmlAttribute private short protType;
>
>      public GenCmdDescr(){};
>
>      public GenCmdDescr(String name, short protType, int profileId, int objIdHigh, int objIdLow) {
>          super();
>          this.name = name;
>          this.profileId = profileId;
>          this.objIdHigh = objIdHigh;
>          this.objIdLow = objIdLow;
>          this.protType = protType;
>      }
>
>      public String getName() {
>          return this.name;
>      }
>      public void setName(String name) {
>          this.name = name;
>      }
>      public int getProfileId() {
>          return profileId;
>      }
>      public void setProfileId(int profileId) {
>          this.profileId = profileId;
>      }
>      public int getObjIdHigh() {
>          return objIdHigh;
>      }
>      public void setObjIdHigh(int objIdHigh) {
>          this.objIdHigh = objIdHigh;
>      }
>      public int getObjIdLow() {
>          return objIdLow;
>      }
>      public void setObjIdLow(int objIdLow) {
>          this.objIdLow = objIdLow;
>      }
>      public short getProtType() {
>          return protType;
>      }
>      public void setProtType(short protType) {
>          this.protType = protType;
>      }
> }
>
> while the ws interface is similar to this (I have reported only the method with problems):
>
> @WebService(targetNamespace = "****")
> public interface IModel extends IPublishable {
>
>      @CxfWSAuthorization(group=***, roles={***})
>      @GET
>      @Consumes({MediaType.APPLICATION_XML})
>      @Path("/getJsonGenericCommandDescriptor/{genericCommand}")
>      public String getJsonGenericCommandDescriptor(
>              @WebParam(name = "genericCommand") @PathParam("genericCommand") GenCmdDescr genericCommand) throws InstantiationException;
>
> }
>
>
> Andrea
>
> Date: Tue, 7 May 2013 09:45:46 -0700
> From: ml-node+s547215n5727377h7@n5.nabble.com
> To: bisomagic@hotmail.it
> Subject: Re: java.lang.NoClassDefFoundError exception loading a rest endPoint in particular condition
>
>
>
> 	Can you give me a favor and attach an interface and GenCmdDescr source
>
> to JIRA ? Or nabble ? I'll give it a try
>
>
> Sergey
>
> On 07/05/13 17:29, eanbiso wrote:
>
>> Thanks for the fast reply.
>
>> I do not use a concrete class and when I create the proxyFactory I use the corresponding ws interface class as "clazz" value.
>
>>
>
>> Andrea
>
>>
>
>>
>
>>
>
>> Date: Tue, 7 May 2013 09:01:10 -0700
>
>> From: [hidden email]
>
>> To: [hidden email]
>
>> Subject: Re: java.lang.NoClassDefFoundError exception loading a rest endPoint in particular condition
>
>>
>
>>
>
>>
>
>> 	Hi
>
>>
>
>> On 07/05/13 15:56, eanbiso wrote:
>
>>
>
>>> Hi at all,
>
>>
>
>>> I have the following problem loading a rest endPoint using cxf.
>
>>
>
>>> The operations I do to load the rest endPoint after its publication are the
>
>>
>
>>> following:
>
>>
>
>>> 			
>
>>
>
>>> 			JAXRSClientFactoryBean proxyFactory = new JAXRSClientFactoryBean();
>
>>
>
>>> 			proxyFactory.setServiceClass(clazz);
>
>>
>
>>> 			address += servName;
>
>>
>
>>> 			proxyFactory.setAddress(address);
>
>>
>
>>> 			proxy = proxyFactory.create();			
>
>>
>
>>> 			.....
>
>>
>
>>> 			
>
>>
>
>>> The "proxyFactory.create()" operation recall the "createWithValues" method
>
>>
>
>>> of JAXRSClientFactoryBean:
>
>>
>
>>> 			
>
>>
>
>>> 			public Client createWithValues(Object... varValues) {
>
>>
>
>>> 			...
>
>>
>
>>> 			actualClient =
>
>>
>
>>> (Client)ProxyHelper.getProxy(Thread.currentThread().getContextClassLoader(),
>
>>
>
>>>                                    new Class[]{cri.getServiceClass(),
>
>>
>
>>> Client.class, InvocationHandlerAware.class},
>
>>
>
>>>                                         proxyImpl);
>
>>
>
>>> 			...
>
>>
>
>>> 			}
>
>>
>
>>>
>
>>
>
>>> Now I have the following anomalous behavior:
>
>>
>
>>> the "getProxy(...)" operation fails when the ws interface contains a method
>
>>
>
>>> that wants a "complex" input parameter like this:
>
>>
>
>>>
>
>>
>
>>> 	@GET
>
>>
>
>>> 	@Consumes({MediaType.APPLICATION_XML})
>
>>
>
>>> 	@Path("/getJsonGenericCommandDescriptor/{genericCommand}")
>
>>
>
>>> 	public String getJsonGenericCommandDescriptor(
>
>>
>
>>> 			@WebParam(name = "genericCommand") @PathParam("genericCommand")
>
>>
>
>>> GenCmdDescr genericCommand) throws InstantiationException;
>
>>
>
>>>
>
>>
>
>>> If the ws interface contains this method, an exception
>
>>
>
>>> "java.lang.NoClassDefFoundError: ___.GenCmdDescr" occurs loading the
>
>>
>
>>> endPoint.
>
>>
>
>>> If I remove this method from the ws interface the loading operation is right
>
>>
>
>>> and no exceptions occurs.
>
>>
>
>>> I do not understand why it happens.
>
>>
>
>>> In fact in the same ws interface I have another method that returns a
>
>>
>
>>> GenCmdDescr and no NoClassDefFoundError exception occurs with this.
>
>>
>
>>> The exception seems to occur only if the GenCmdDescr is used like an input
>
>>
>
>>> parameters of one of the methods and no excpetions occurs for method that
>
>>
>
>>> return an object GenCmdDescr.
>
>>
>
>>> Someone can help me?
>
>>
>
>> Do you use a concrete class to create a proxy ? Example, do you use say
>
>>
>
>> MyServiceImpl.class where MyServiceImpl is a root resource implementation ?
>
>>
>
>>
>
>> I can only think at the moment of CGLIB getting confused (which is used
>
>>
>
>> to create a proxy when a concrete class like MyServiceImpl is proxified)
>
>>
>
>>
>
>> Cheers, Sergey
>
>>
>
>>
>
>>> Thanks a lot,
>
>>
>
>>>
>
>>
>
>>> Andrea
>
>>
>
>>>
>
>>
>
>>>
>
>>
>
>>> NOTE:
>
>>
>
>>> 1.
>
>>
>
>>> The GenCmdDescr object is an object like this:
>
>>
>
>>>
>
>>
>
>>> @XmlRootElement(name="GenCmdDescr", namespace="http://****/")
>
>>
>
>>> @XmlAccessorType(XmlAccessType.FIELD)
>
>>
>
>>> public class GenCmdDescr {
>
>>
>
>>> 	
>
>>
>
>>> 	@XmlAttribute private String name;
>
>>
>
>>> 	@XmlAttribute private int a;
>
>>
>
>>> 	@XmlAttribute private int b;
>
>>
>
>>> 	@XmlAttribute private int c;
>
>>
>
>>> 	@XmlAttribute private short d;
>
>>
>
>>> 	...
>
>>
>
>>> }
>
>>
>
>>>
>
>>
>
>>> 2.
>
>>
>
>>> I'm using cxf 2.5.0 version
>
>>
>
>>>
>
>>
>
>>>
>
>>
>
>>>
>
>>
>
>>> --
>
>>
>
>>> View this message in context: http://cxf.547215.n5.nabble.com/java-lang-NoClassDefFoundError-exception-loading-a-rest-endPoint-in-particular-condition-tp5727361.html
>>> Sent from the cxf-user mailing list archive at Nabble.com.
>
>>
>
>>
>
>


-- 
Sergey Beryozkin

Talend Community Coders
http://coders.talend.com/

Blog: http://sberyozkin.blogspot.com

RE: java.lang.NoClassDefFoundError exception loading a rest endPoint in particular condition

Posted by eanbiso <bi...@hotmail.it>.
Good morning,
the GenCmdDescr code is a class like this:

import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAccessType;

@XmlRootElement(name="GenCmdDescr", namespace="http://***/")
@XmlAccessorType(XmlAccessType.FIELD)
public class GenCmdDescr {
    
    @XmlAttribute private String name;
    @XmlAttribute private int profileId;
    @XmlAttribute private int objIdHigh;
    @XmlAttribute private int objIdLow;
    @XmlAttribute private short protType;
    
    public GenCmdDescr(){}; 
        
    public GenCmdDescr(String name, short protType, int profileId, int objIdHigh, int objIdLow) {
        super();
        this.name = name;
        this.profileId = profileId;
        this.objIdHigh = objIdHigh;
        this.objIdLow = objIdLow;
        this.protType = protType;
    }
    
    public String getName() {
        return this.name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getProfileId() {
        return profileId;
    }
    public void setProfileId(int profileId) {
        this.profileId = profileId;
    }
    public int getObjIdHigh() {
        return objIdHigh;
    }
    public void setObjIdHigh(int objIdHigh) {
        this.objIdHigh = objIdHigh;
    }
    public int getObjIdLow() {
        return objIdLow;
    }
    public void setObjIdLow(int objIdLow) {
        this.objIdLow = objIdLow;
    }
    public short getProtType() {
        return protType;
    }
    public void setProtType(short protType) {
        this.protType = protType;
    }
}

while the ws interface is similar to this (I have reported only the method with problems):

@WebService(targetNamespace = "****")
public interface IModel extends IPublishable {

    @CxfWSAuthorization(group=***, roles={***})
    @GET
    @Consumes({MediaType.APPLICATION_XML})
    @Path("/getJsonGenericCommandDescriptor/{genericCommand}")
    public String getJsonGenericCommandDescriptor(
            @WebParam(name = "genericCommand") @PathParam("genericCommand") GenCmdDescr genericCommand) throws InstantiationException;

}


Andrea

Date: Tue, 7 May 2013 09:45:46 -0700
From: ml-node+s547215n5727377h7@n5.nabble.com
To: bisomagic@hotmail.it
Subject: Re: java.lang.NoClassDefFoundError exception loading a rest endPoint in particular condition



	Can you give me a favor and attach an interface and GenCmdDescr source 

to JIRA ? Or nabble ? I'll give it a try


Sergey

On 07/05/13 17:29, eanbiso wrote:

> Thanks for the fast reply.

> I do not use a concrete class and when I create the proxyFactory I use the corresponding ws interface class as "clazz" value.

>

> Andrea

>

>

>

> Date: Tue, 7 May 2013 09:01:10 -0700

> From: [hidden email]

> To: [hidden email]

> Subject: Re: java.lang.NoClassDefFoundError exception loading a rest endPoint in particular condition

>

>

>

> 	Hi

>

> On 07/05/13 15:56, eanbiso wrote:

>

>> Hi at all,

>

>> I have the following problem loading a rest endPoint using cxf.

>

>> The operations I do to load the rest endPoint after its publication are the

>

>> following:

>

>> 			

>

>> 			JAXRSClientFactoryBean proxyFactory = new JAXRSClientFactoryBean();

>

>> 			proxyFactory.setServiceClass(clazz);

>

>> 			address += servName;

>

>> 			proxyFactory.setAddress(address);

>

>> 			proxy = proxyFactory.create();			

>

>> 			.....

>

>> 			

>

>> The "proxyFactory.create()" operation recall the "createWithValues" method

>

>> of JAXRSClientFactoryBean:

>

>> 			

>

>> 			public Client createWithValues(Object... varValues) {

>

>> 			...

>

>> 			actualClient =

>

>> (Client)ProxyHelper.getProxy(Thread.currentThread().getContextClassLoader(),

>

>>                                   new Class[]{cri.getServiceClass(),

>

>> Client.class, InvocationHandlerAware.class},

>

>>                                        proxyImpl);

>

>> 			...

>

>> 			}

>

>>

>

>> Now I have the following anomalous behavior:

>

>> the "getProxy(...)" operation fails when the ws interface contains a method

>

>> that wants a "complex" input parameter like this:

>

>>

>

>> 	@GET

>

>> 	@Consumes({MediaType.APPLICATION_XML})

>

>> 	@Path("/getJsonGenericCommandDescriptor/{genericCommand}")

>

>> 	public String getJsonGenericCommandDescriptor(

>

>> 			@WebParam(name = "genericCommand") @PathParam("genericCommand")

>

>> GenCmdDescr genericCommand) throws InstantiationException;

>

>>

>

>> If the ws interface contains this method, an exception

>

>> "java.lang.NoClassDefFoundError: ___.GenCmdDescr" occurs loading the

>

>> endPoint.

>

>> If I remove this method from the ws interface the loading operation is right

>

>> and no exceptions occurs.

>

>> I do not understand why it happens.

>

>> In fact in the same ws interface I have another method that returns a

>

>> GenCmdDescr and no NoClassDefFoundError exception occurs with this.

>

>> The exception seems to occur only if the GenCmdDescr is used like an input

>

>> parameters of one of the methods and no excpetions occurs for method that

>

>> return an object GenCmdDescr.

>

>> Someone can help me?

>

> Do you use a concrete class to create a proxy ? Example, do you use say

>

> MyServiceImpl.class where MyServiceImpl is a root resource implementation ?

>

>

> I can only think at the moment of CGLIB getting confused (which is used

>

> to create a proxy when a concrete class like MyServiceImpl is proxified)

>

>

> Cheers, Sergey

>

>

>> Thanks a lot,

>

>>

>

>> Andrea

>

>>

>

>>

>

>> NOTE:

>

>> 1.

>

>> The GenCmdDescr object is an object like this:

>

>>

>

>> @XmlRootElement(name="GenCmdDescr", namespace="http://****/")

>

>> @XmlAccessorType(XmlAccessType.FIELD)

>

>> public class GenCmdDescr {

>

>> 	

>

>> 	@XmlAttribute private String name;

>

>> 	@XmlAttribute private int a;

>

>> 	@XmlAttribute private int b;

>

>> 	@XmlAttribute private int c;

>

>> 	@XmlAttribute private short d;

>

>> 	...

>

>> }

>

>>

>

>> 2.

>

>> I'm using cxf 2.5.0 version

>

>>

>

>>

>

>>

>

>> --

>

>> View this message in context: http://cxf.547215.n5.nabble.com/java-lang-NoClassDefFoundError-exception-loading-a-rest-endPoint-in-particular-condition-tp5727361.html
>> Sent from the cxf-user mailing list archive at Nabble.com.

>

>


-- 

Sergey Beryozkin


Talend Community Coders

http://coders.talend.com/

Blog: http://sberyozkin.blogspot.com


	
	
	
	

	

	
	
		If you reply to this email, your message will be added to the discussion below:
		http://cxf.547215.n5.nabble.com/java-lang-NoClassDefFoundError-exception-loading-a-rest-endPoint-in-particular-condition-tp5727361p5727377.html
	
	
		
		To unsubscribe from java.lang.NoClassDefFoundError exception loading a rest endPoint in particular condition, click here.

		NAML
	 		 	   		  



--
View this message in context: http://cxf.547215.n5.nabble.com/java-lang-NoClassDefFoundError-exception-loading-a-rest-endPoint-in-particular-condition-tp5727361p5727409.html
Sent from the cxf-user mailing list archive at Nabble.com.

Re: java.lang.NoClassDefFoundError exception loading a rest endPoint in particular condition

Posted by Sergey Beryozkin <sb...@gmail.com>.
Can you give me a favor and attach an interface and GenCmdDescr source 
to JIRA ? Or nabble ? I'll give it a try

Sergey
On 07/05/13 17:29, eanbiso wrote:
> Thanks for the fast reply.
> I do not use a concrete class and when I create the proxyFactory I use the corresponding ws interface class as "clazz" value.
>
> Andrea
>
>
>
> Date: Tue, 7 May 2013 09:01:10 -0700
> From: ml-node+s547215n5727365h35@n5.nabble.com
> To: bisomagic@hotmail.it
> Subject: Re: java.lang.NoClassDefFoundError exception loading a rest endPoint in particular condition
>
>
>
> 	Hi
>
> On 07/05/13 15:56, eanbiso wrote:
>
>> Hi at all,
>
>> I have the following problem loading a rest endPoint using cxf.
>
>> The operations I do to load the rest endPoint after its publication are the
>
>> following:
>
>> 			
>
>> 			JAXRSClientFactoryBean proxyFactory = new JAXRSClientFactoryBean();
>
>> 			proxyFactory.setServiceClass(clazz);
>
>> 			address += servName;
>
>> 			proxyFactory.setAddress(address);
>
>> 			proxy = proxyFactory.create();			
>
>> 			.....
>
>> 			
>
>> The "proxyFactory.create()" operation recall the "createWithValues" method
>
>> of JAXRSClientFactoryBean:
>
>> 			
>
>> 			public Client createWithValues(Object... varValues) {
>
>> 			...
>
>> 			actualClient =
>
>> (Client)ProxyHelper.getProxy(Thread.currentThread().getContextClassLoader(),
>
>>                                   new Class[]{cri.getServiceClass(),
>
>> Client.class, InvocationHandlerAware.class},
>
>>                                        proxyImpl);
>
>> 			...
>
>> 			}
>
>>
>
>> Now I have the following anomalous behavior:
>
>> the "getProxy(...)" operation fails when the ws interface contains a method
>
>> that wants a "complex" input parameter like this:
>
>>
>
>> 	@GET
>
>> 	@Consumes({MediaType.APPLICATION_XML})
>
>> 	@Path("/getJsonGenericCommandDescriptor/{genericCommand}")
>
>> 	public String getJsonGenericCommandDescriptor(
>
>> 			@WebParam(name = "genericCommand") @PathParam("genericCommand")
>
>> GenCmdDescr genericCommand) throws InstantiationException;
>
>>
>
>> If the ws interface contains this method, an exception
>
>> "java.lang.NoClassDefFoundError: ___.GenCmdDescr" occurs loading the
>
>> endPoint.
>
>> If I remove this method from the ws interface the loading operation is right
>
>> and no exceptions occurs.
>
>> I do not understand why it happens.
>
>> In fact in the same ws interface I have another method that returns a
>
>> GenCmdDescr and no NoClassDefFoundError exception occurs with this.
>
>> The exception seems to occur only if the GenCmdDescr is used like an input
>
>> parameters of one of the methods and no excpetions occurs for method that
>
>> return an object GenCmdDescr.
>
>> Someone can help me?
>
> Do you use a concrete class to create a proxy ? Example, do you use say
>
> MyServiceImpl.class where MyServiceImpl is a root resource implementation ?
>
>
> I can only think at the moment of CGLIB getting confused (which is used
>
> to create a proxy when a concrete class like MyServiceImpl is proxified)
>
>
> Cheers, Sergey
>
>
>> Thanks a lot,
>
>>
>
>> Andrea
>
>>
>
>>
>
>> NOTE:
>
>> 1.
>
>> The GenCmdDescr object is an object like this:
>
>>
>
>> @XmlRootElement(name="GenCmdDescr", namespace="http://****/")
>
>> @XmlAccessorType(XmlAccessType.FIELD)
>
>> public class GenCmdDescr {
>
>> 	
>
>> 	@XmlAttribute private String name;
>
>> 	@XmlAttribute private int a;
>
>> 	@XmlAttribute private int b;
>
>> 	@XmlAttribute private int c;
>
>> 	@XmlAttribute private short d;
>
>> 	...
>
>> }
>
>>
>
>> 2.
>
>> I'm using cxf 2.5.0 version
>
>>
>
>>
>
>>
>
>> --
>
>> View this message in context: http://cxf.547215.n5.nabble.com/java-lang-NoClassDefFoundError-exception-loading-a-rest-endPoint-in-particular-condition-tp5727361.html
>> Sent from the cxf-user mailing list archive at Nabble.com.
>
>


-- 
Sergey Beryozkin

Talend Community Coders
http://coders.talend.com/

Blog: http://sberyozkin.blogspot.com

RE: java.lang.NoClassDefFoundError exception loading a rest endPoint in particular condition

Posted by eanbiso <bi...@hotmail.it>.
Thanks for the fast reply.
I do not use a concrete class and when I create the proxyFactory I use the corresponding ws interface class as "clazz" value.

Andrea



Date: Tue, 7 May 2013 09:01:10 -0700
From: ml-node+s547215n5727365h35@n5.nabble.com
To: bisomagic@hotmail.it
Subject: Re: java.lang.NoClassDefFoundError exception loading a rest endPoint in particular condition



	Hi

On 07/05/13 15:56, eanbiso wrote:

> Hi at all,

> I have the following problem loading a rest endPoint using cxf.

> The operations I do to load the rest endPoint after its publication are the

> following:

> 			

> 			JAXRSClientFactoryBean proxyFactory = new JAXRSClientFactoryBean();

> 			proxyFactory.setServiceClass(clazz);

> 			address += servName;

> 			proxyFactory.setAddress(address);

> 			proxy = proxyFactory.create();			

> 			.....

> 			

> The "proxyFactory.create()" operation recall the "createWithValues" method

> of JAXRSClientFactoryBean:

> 			

> 			public Client createWithValues(Object... varValues) {

> 			...

> 			    actualClient =

> (Client)ProxyHelper.getProxy(Thread.currentThread().getContextClassLoader(),

>                                  new Class[]{cri.getServiceClass(),

> Client.class, InvocationHandlerAware.class},

>                                       proxyImpl);

> 			...

> 			}

>

> Now I have the following anomalous behavior:

> the "getProxy(...)" operation fails when the ws interface contains a method

> that wants a "complex" input parameter like this:

>

> 	@GET

> 	@Consumes({MediaType.APPLICATION_XML})

> 	@Path("/getJsonGenericCommandDescriptor/{genericCommand}")

> 	public String getJsonGenericCommandDescriptor(

> 			@WebParam(name = "genericCommand") @PathParam("genericCommand")

> GenCmdDescr genericCommand) throws InstantiationException;

>

> If the ws interface contains this method, an exception

> "java.lang.NoClassDefFoundError: ___.GenCmdDescr" occurs loading the

> endPoint.

> If I remove this method from the ws interface the loading operation is right

> and no exceptions occurs.

> I do not understand why it happens.

> In fact in the same ws interface I have another method that returns a

> GenCmdDescr and no NoClassDefFoundError exception occurs with this.

> The exception seems to occur only if the GenCmdDescr is used like an input

> parameters of one of the methods and no excpetions occurs for method that

> return an object GenCmdDescr.

> Someone can help me?

Do you use a concrete class to create a proxy ? Example, do you use say 

MyServiceImpl.class where MyServiceImpl is a root resource implementation ?


I can only think at the moment of CGLIB getting confused (which is used 

to create a proxy when a concrete class like MyServiceImpl is proxified)


Cheers, Sergey


> Thanks a lot,

>

> Andrea

>

>

> NOTE:

> 1.

> The GenCmdDescr object is an object like this:

>

> @XmlRootElement(name="GenCmdDescr", namespace="http://****/")

> @XmlAccessorType(XmlAccessType.FIELD)

> public class GenCmdDescr {

> 	

> 	@XmlAttribute private String name;

> 	@XmlAttribute private int a;

> 	@XmlAttribute private int b;

> 	@XmlAttribute private int c;

> 	@XmlAttribute private short d;

> 	...

> }

>

> 2.

> I'm using cxf 2.5.0 version

>

>

>

> --

> View this message in context: http://cxf.547215.n5.nabble.com/java-lang-NoClassDefFoundError-exception-loading-a-rest-endPoint-in-particular-condition-tp5727361.html
> Sent from the cxf-user mailing list archive at Nabble.com.


-- 

Sergey Beryozkin


Talend Community Coders

http://coders.talend.com/

Blog: http://sberyozkin.blogspot.com


	
	
	
	

	

	
	
		If you reply to this email, your message will be added to the discussion below:
		http://cxf.547215.n5.nabble.com/java-lang-NoClassDefFoundError-exception-loading-a-rest-endPoint-in-particular-condition-tp5727361p5727365.html
	
	
		
		To unsubscribe from java.lang.NoClassDefFoundError exception loading a rest endPoint in particular condition, click here.

		NAML
	 		 	   		  



--
View this message in context: http://cxf.547215.n5.nabble.com/java-lang-NoClassDefFoundError-exception-loading-a-rest-endPoint-in-particular-condition-tp5727361p5727369.html
Sent from the cxf-user mailing list archive at Nabble.com.

Re: java.lang.NoClassDefFoundError exception loading a rest endPoint in particular condition

Posted by Sergey Beryozkin <sb...@gmail.com>.
Hi
On 07/05/13 15:56, eanbiso wrote:
> Hi at all,
> I have the following problem loading a rest endPoint using cxf.
> The operations I do to load the rest endPoint after its publication are the
> following:
> 			
> 			JAXRSClientFactoryBean proxyFactory = new JAXRSClientFactoryBean();
> 			proxyFactory.setServiceClass(clazz);
> 			address += servName;
> 			proxyFactory.setAddress(address);
> 			proxy = proxyFactory.create();			
> 			.....
> 			
> The "proxyFactory.create()" operation recall the "createWithValues" method
> of JAXRSClientFactoryBean:
> 			
> 			public Client createWithValues(Object... varValues) {
> 			...
> 			    actualClient =
> (Client)ProxyHelper.getProxy(Thread.currentThread().getContextClassLoader(),
>                                  new Class[]{cri.getServiceClass(),
> Client.class, InvocationHandlerAware.class},
>                                       proxyImpl);
> 			...
> 			}
>
> Now I have the following anomalous behavior:
> the "getProxy(...)" operation fails when the ws interface contains a method
> that wants a "complex" input parameter like this:
>
> 	@GET
> 	@Consumes({MediaType.APPLICATION_XML})
> 	@Path("/getJsonGenericCommandDescriptor/{genericCommand}")
> 	public String getJsonGenericCommandDescriptor(
> 			@WebParam(name = "genericCommand") @PathParam("genericCommand")
> GenCmdDescr genericCommand) throws InstantiationException;
>
> If the ws interface contains this method, an exception
> "java.lang.NoClassDefFoundError: ___.GenCmdDescr" occurs loading the
> endPoint.
> If I remove this method from the ws interface the loading operation is right
> and no exceptions occurs.
> I do not understand why it happens.
> In fact in the same ws interface I have another method that returns a
> GenCmdDescr and no NoClassDefFoundError exception occurs with this.
> The exception seems to occur only if the GenCmdDescr is used like an input
> parameters of one of the methods and no excpetions occurs for method that
> return an object GenCmdDescr.
> Someone can help me?

Do you use a concrete class to create a proxy ? Example, do you use say 
MyServiceImpl.class where MyServiceImpl is a root resource implementation ?

I can only think at the moment of CGLIB getting confused (which is used 
to create a proxy when a concrete class like MyServiceImpl is proxified)

Cheers, Sergey

> Thanks a lot,
>
> Andrea
>
>
> NOTE:
> 1.
> The GenCmdDescr object is an object like this:
>
> @XmlRootElement(name="GenCmdDescr", namespace="http://****/")
> @XmlAccessorType(XmlAccessType.FIELD)
> public class GenCmdDescr {
> 	
> 	@XmlAttribute private String name;
> 	@XmlAttribute private int a;
> 	@XmlAttribute private int b;
> 	@XmlAttribute private int c;
> 	@XmlAttribute private short d;
> 	...
> }
>
> 2.
> I'm using cxf 2.5.0 version
>
>
>
> --
> View this message in context: http://cxf.547215.n5.nabble.com/java-lang-NoClassDefFoundError-exception-loading-a-rest-endPoint-in-particular-condition-tp5727361.html
> Sent from the cxf-user mailing list archive at Nabble.com.


-- 
Sergey Beryozkin

Talend Community Coders
http://coders.talend.com/

Blog: http://sberyozkin.blogspot.com