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: [email protected]
To: [email protected]
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.

Reply via email to