Creating Web services using Apache CXF (Part 4): Testing

To test this we can follow the same client program which is given in the CXF site.

Just create a simple Java class and execute it.

 1: package com.your.company.service.client;
 2:
 3: import java.util.List;
 4:
 5: import org.apache.cxf.interceptor.LoggingInInterceptor;
 6: import org.apache.cxf.interceptor.LoggingOutInterceptor;
 7: import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;
 8:
 9: import com.your.company.service.Product;
 10: import com.your.company.service.ProductService;
 11:
 12: public final class Client {
 13:
 14:     private Client() {
 15:     }
 16:
 17:     public static void main(String args[]) throws Exception {
 18:
 19:         JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
 20:
 21:         factory.getInInterceptors().add(new LoggingInInterceptor());
 22:         factory.getOutInterceptors().add(new LoggingOutInterceptor());
 23:         factory.setServiceClass(ProductService.class);
 24:         factory.setAddress("http://localhost:8080/CXFExample/productservice");
 25:         ProductService client = (ProductService) factory.create();
 26:
 27:         List<Product> products = client.getProducts();
 28:         if (products != null && products.size() > 0)
 29:             System.out.println("Product Name : "
 30:                     + products.get(0).getItemName() + ", Price: "
 31:                     + products.get(0).getPrice());
 32:         System.exit(0);
 33:
 34:     }
 35:
 36: }

Other related posts:

1. Creating Web services using Apache CXF (Part 1) : The Basics.

2. Creating Web services using Apache CXF (Part 2) : Development.

3. Creating Web services using Apache CXF (Part 3) : Configuration.

4. Creating Web services using Apache CXF (Part 4): Testing.

19 thoughts on “Creating Web services using Apache CXF (Part 4): Testing

  1. Ok, looks like I answered my own question … kinda of

    for JAXB use:
    factory.getServiceFactory().setDataBinding(new JAXBDataBinding());

    and comment out parts of applicationContext.xml


    both beans under this

    and
    <!–

    –>

    This works on the server because JAXB is the CXF
    default Binding. I assume there is no default binding on the
    client side

  2. Lijin,

    Can you please explain why as per Subroto comment above you need
    factory.getServiceFactory().setDataBinding(new AegisDatabinding());

    I see that it doesn’t work with out this, in my case I get
    unexpected element “Product”.

    The reason I ask is that the documentation says you can use Aegis
    on the server and something else on the client e.g. JAXB binding.

    How can I use Jaxb on the client?

    Thanks,
    Tim

  3. Thanks Lijin ,

    That was a nice article.
    I have doubt that if the client is a C# application and trying to consume the same web service then it will it cause an issue ?

    Thanks in Advance
    VK

Leave a reply to Lijin Cancel reply