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.
