I've confirmed that the spring dependency can be dropped on the client side
too, if the JAXRSBindingFactory is registered with the bus explicitly, here
is the example :

http://cwiki.apache.org/confluence/display/CXF20DOC/JAX-RS#JAX-RS-ConfiguringJAXRSclientsprogrammaticallywithoutSpring

it is similar to the way it can be done on the server side

I'll try to enhance the code a bit to let users avoid doing this explicit
registration....

cheers, Sergey


Sergey Beryozkin wrote:
> 
> I've setup a custom Eclipse project and manually imported all the needed
> libs, one by one and eventually made it working, here is a list for a
> minimal JAXB-based client :
> 
> - cglib-nodep-2.1_3.jar (available from my local Maven repo, needed only
> if the class to be proxified is not an interface)
> - spring.jar (from Spring 2.5.5 distribution, alternatively add spring
> libs from the cxf distribution )
> 
> from cxf distribution :
> 
> - cxf-2.3.0-SNAPSHOT.jar
> - jsr311-api-1.0.jar
> - jaxb-impl-2.1.12.jar
> - jaxb-api-2.1.jar
> 
> - geronimo-annotation_1.0_spec-1.1.1.jar
> - geronimo-activation_1.1_spec-1.0.2.jar
> - geronimo-servlet_2.5_spec-1.2.jar
> - commons-logging-1.1.1.jar
> 
> - geronimo-stax_api_1.0_spec-1.0.1.jar
> - woodstox-core-asl-4.0.3.jar
> - stax2-api-3.0.1.jar
> 
> - geronimo-jaxws_2.1_spec-1.0.jar
> - wsdl4j-1.6.2.jar
> - XmlSchema-1.4.5.jar
> - neethi-2.0.4.jar
> 
> though I believe some users have said they used fewer dependencies....
> 
> With CXF 2.2.4-SNAPSHOT you'll need to
> 
> - add cxf-2.2.3.jar instead of cxf-2.3.0-SNAPSHOT.jar
> - do not add stax2-api-3.0.1.jar (won't be avaiable in distribution)
> - add wstx-asl-3.2.8.jar instead of woodstox-core-asl-4.0.3.jar
> - add saaj-api-1.3.jar
> 
> With 2.2.3 you may need to add FastInfoset.jar (available in the
> distribution) as well..
> 
> I'm hoping that in CXF 2.3 it won't be necessary to include
> geronimo-jaxws_2.1_spec-1.0.jar
> & wsdl4j-1.6.2.jar. We will likely need XmlSchema-1.4.5.jar and may be
> eventually even neethi.
> 
> I'll also see how the Spring dependency can be optionally dropped.
> 
> I've also updated 2.2.4-SNAPSHOT to an error message reported...
> Will be updating the docs next...
> 
> thanks, Sergey
> 
> 
> Pranab Verma wrote:
>> 
>> 
>> Hi Kiran/Sergey,
>> I am facing the same issue while using JAXRSClientFactory. I have created
>> a simple JAVA project. Here is the snippet :
>> 
>> import org.apache.cxf.jaxrs.client.JAXRSClientFactory;
>> import com.my.rest.RestResourceHandler;
>> 
>> public class ProxyClient {
>>      static public void main(String arg[]) {
>>              String baseAddress = "http://localhost:8443/network/";;
>>              RestResourceHandler proxy = 
>> JAXRSClientFactory.create(baseAddress,
>> RestResourceHandler.class);
>>      }
>> }
>> The error message is :
>> 
>> Creating proxy..Exception in thread "main"
>> javax.ws.rs.WebApplicationException
>>      at
>> org.apache.cxf.jaxrs.client.JAXRSClientFactoryBean.createWithValues(JAXRSClientFactoryBean.java:137)
>>      at
>> org.apache.cxf.jaxrs.client.JAXRSClientFactoryBean.create(JAXRSClientFactoryBean.java:113)
>>      at
>> org.apache.cxf.jaxrs.client.JAXRSClientFactory.create(JAXRSClientFactory.java:71)
>>      at
>> org.apache.cxf.jaxrs.client.JAXRSClientFactory.create(JAXRSClientFactory.java:56)
>>      at
>> org.apache.cxf.jaxrs.client.JAXRSClientFactory.create(JAXRSClientFactory.java:46)
>>      at ProxyClient.main(ProxyClient.java:13)
>> 
>> I have added cglib-nodep-2.1_3.jar library in project properties settings
>> but still am getting the same error. 
>> 
>> Kiran,
>> Were you able to resolve the problem?
>> 
>> Sergey,
>> Am I doing the right thing? If not, please tell me what needs to be done?
>> 
>> Thanks,
>> Pranab
>> 
>> 
>> Sergey Beryozkin wrote:
>>> 
>>> Hi Kiran
>>> 
>>> The error message is non-existent - I'll have to fix it.
>>> I think you need to add a cglib-nodeps dependency given that you're
>>> creating a proxy from a concrete class, it will fix it (will document it
>>> as well if it's  not documented yet)
>>> 
>>> cheers, Sergey 
>>> 
>>> kiran.sidhu wrote:
>>>> 
>>>> Hi,
>>>> 
>>>>                 I am getting a WebApplicationException when I try to
>>>> create a proxy using JAXRSClientFactory, I tried both create API and
>>>> fromClient API.
>>>> 
>>>> The WebClient API works fine.
>>>> 
>>>>  
>>>> 
>>>> Here is my Client code :
>>>> 
>>>>  
>>>> 
>>>> WebClient wc =
>>>> WebClient.create("http://localhost:8080/cxf-webservices/webservices/cust
>>>> omerservice/");
>>>> 
>>>>  
>>>> wc.accept("text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0
>>>> .8");
>>>> 
>>>>             wc.encoding("UTF-8");
>>>> 
>>>>             wc.header("accept-charset",
>>>> "ISO-8859-1,utf-8;q=0.7,*;q=0.7");
>>>> 
>>>>             
>>>> 
>>>>             
>>>> 
>>>>             CustomerService proxy = JAXRSClientFactory.create(
>>>> "http://localhost:8080/cxf-webservices/webservices/customerservice/",Cus
>>>> tomerService.class);
>>>> 
>>>>             List<Customer> ccoll = proxy.getCustomers();
>>>> 
>>>>  
>>>> 
>>>> Right at the create statement, I get the following exception :
>>>> 
>>>>  
>>>> 
>>>> javax.ws.rs.WebApplicationException
>>>> 
>>>>       at
>>>> org.apache.cxf.jaxrs.client.JAXRSClientFactoryBean.createWithValues(JAXR
>>>> SClientFactoryBean.java:149)
>>>> 
>>>>       at
>>>> org.apache.cxf.jaxrs.client.JAXRSClientFactoryBean.create(JAXRSClientFac
>>>> toryBean.java:118)
>>>> 
>>>>       at
>>>> org.apache.cxf.jaxrs.client.JAXRSClientFactory.create(JAXRSClientFactory
>>>> .java:71)
>>>> 
>>>>       at
>>>> org.apache.cxf.jaxrs.client.JAXRSClientFactory.create(JAXRSClientFactory
>>>> .java:56)
>>>> 
>>>>       at
>>>> org.apache.cxf.jaxrs.client.JAXRSClientFactory.create(JAXRSClientFactory
>>>> .java:46)
>>>> 
>>>>       at com.asipay.ws.client.Client.main(Client.java:82)
>>>> 
>>>>  
>>>> 
>>>> Here is my Service class :
>>>> 
>>>> @Path("/customerservice/")
>>>> 
>>>> public class CustomerService {
>>>> 
>>>>  
>>>> 
>>>>       private Map<Integer, Customer> customerMap = new TreeMap<Integer,
>>>> Customer>();
>>>> 
>>>>       public CustomerService() {
>>>> 
>>>>             //Hard coded for testing
>>>> 
>>>>             Customer customer = new Customer();
>>>> 
>>>>             customer.setId(0);
>>>> 
>>>>           customer.setName("Jane Doe");
>>>> 
>>>>           customer.setAddress("123 Howe Ave, Los Angeles, CA");
>>>> 
>>>>           addCustomer(customer);
>>>> 
>>>>     } 
>>>> 
>>>>  
>>>> 
>>>>         @GET
>>>> 
>>>>         @Path("/customers")
>>>> 
>>>>         @Produces("application/xml")
>>>> 
>>>>         //@Resource MessageContext jaxrsContext; 
>>>> 
>>>>         public List<Customer> getCustomers() {
>>>> 
>>>>           //return  new Customers(customerMap.values());
>>>> 
>>>>               return new ArrayList<Customer>(customerMap.values());
>>>> 
>>>>         }
>>>> 
>>>>  
>>>> 
>>>>         @GET
>>>> 
>>>>         @Path("/customers/{id}")
>>>> 
>>>>         @Produces("text/xml")
>>>> 
>>>>         public Customer getCustomer(@PathParam("id") int cId) {
>>>> 
>>>>               
>>>> 
>>>>           return customerMap.get(cId);
>>>> 
>>>>         }
>>>> 
>>>>  
>>>> 
>>>>         @PUT
>>>> 
>>>>         @Consumes("application/xml")
>>>> 
>>>>         @Produces("text/plain")
>>>> 
>>>>         @Path("/customers/update/{id}")   
>>>> 
>>>>         public String updateCustomer(@PathParam("id") Long id, Customer
>>>> customer) {  
>>>> 
>>>>                   customerMap.put(id.intValue(), customer);
>>>> 
>>>>               return "Customer " + customer.getName() + " updated.  Id
>>>> =
>>>> " + id;   
>>>> 
>>>>         }
>>>> 
>>>>  
>>>> 
>>>>         @POST
>>>> 
>>>>         @Path("/customers/add")
>>>> 
>>>>         @Produces("text/plain")
>>>> 
>>>>         @Consumes("application/xml")
>>>> 
>>>>         public String addCustomer(Customer customer) {
>>>> 
>>>>           int id = customerMap.size();
>>>> 
>>>>           customer.setId(id);
>>>> 
>>>>           customerMap.put(id, customer);
>>>> 
>>>>           return "Customer " + customer.getName() + " added with Id " +
>>>> id;
>>>> 
>>>>         }
>>>> 
>>>>  
>>>> 
>>>>         @DELETE
>>>> 
>>>>         @Path("/customers/delete/{id}")
>>>> 
>>>>         @Produces("text/plain")
>>>> 
>>>>         @Consumes("application/xml")
>>>> 
>>>>         public String deleteCustomer(@PathParam("id") Integer id) {
>>>> 
>>>>  
>>>> 
>>>>             Customer customer = customerMap.get(id);
>>>> 
>>>>           customerMap.remove(id);
>>>> 
>>>>           return "Customer " + customer.getName() + " removed with Id "
>>>> + id;
>>>> 
>>>>         }
>>>> 
>>>>  
>>>> 
>>>> Any idea if I am missing something ?
>>>> 
>>>>  
>>>> 
>>>> Thanks
>>>> 
>>>> Kiran
>>>> 
>>>> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
>>>> _ _
>>>> 
>>>> Notice: This information is intended only for the person(s) or
>>>> entity(ies) to which it is addressed. This information may contain
>>>> information that is confidential or otherwise protected from
>>>> disclosure. If you are not the intended recipient of this message, or
>>>> if this message has been addressed to you in error, please immediately
>>>> alert the sender by reply e-mail and then delete this message,
>>>> including any attachments. Any dissemination, distribution or other use
>>>> of the contents of this message by anyone other than the intended
>>>> recipient is strictly prohibited.
>>>> 
>>>> 
>>> 
>>> 
>> 
>> 
> 
> 

-- 
View this message in context: 
http://www.nabble.com/Trouble-creating-Proxy-on-the-Client-side-using-JAXRSClientFactory-tp24960821p25243687.html
Sent from the cxf-user mailing list archive at Nabble.com.

Reply via email to