Search code examples
web-servicesrestcxf

NoClassDefFoundError org/apache/cxf/jaxrs/client/WebClient


I am new to CXF web services. I need to write a Rest Client. I am getting

 java.lang.NoClassDefFoundError: org/apache/cxf/jaxrs/client/WebClient
 com.test.ws.CXFWebServiceConnector.get(CXFWebServiceConnector.java:21)
 com.test.ws.SimpleServlet.doGet(SimpleServlet.java:29)
 javax.servlet.http.HttpServlet.service(HttpServlet.java:620)
 javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
 root cause

 java.lang.ClassNotFoundException: org.apache.cxf.jaxrs.client.WebClient
 org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1720)
 org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1571)
 com.test.ws.CXFWebServiceConnector.get(CXFWebServiceConnector.java:21)
 com.test.ws.SimpleServlet.doGet(SimpleServlet.java:29)
 javax.servlet.http.HttpServlet.service(HttpServlet.java:620)
javax.servlet.http.HttpServlet.service(HttpServlet.java:727)

This is not a maven project. Below jars are added in my class path. To get the NoClassDefinition Exception am I missing any other library ?

abdera-core-0.4.0-incubating.jar

abdera-extensions-main-0.4.0-incubating.jar

abdera-i18n-0.4.0-incubating.jar

abdera-parser-0.4.0-incubating.jar

axiom-api-1.2.7.jar

axiom-impl-1.2.7.jar

cxf-2.2.6.jar

geronimo-activation-1.1.jar

geronimo-annotation-1.0.jar

jaxb-api-2.1.jar

jaxb-impl-2.1.12.jar

jra-1.0-alpha-4.jar

jsr311-api-1.0.jar

neethi-2.0.4.jar

wss4j-1.5.8.jar

wstx-asl-3.2.9.jar

xml-resolver-1.2.jar

XmlSchema-1.4.5.jar

This is the way I access the Restful web service

public String get(String url) {
    String response = null;
    WebClient client = WebClient.create(url);
    client.accept(MediaType.APPLICATION_JSON);
    HTTPConduit conduit = WebClient.getConfig(client).getHttpConduit();
    HTTPClientPolicy httpClientPolicy = new HTTPClientPolicy();
    httpClientPolicy.setAllowChunking(false);
    conduit.setClient(httpClientPolicy);
    TLSClientParameters clientParameters = new TLSClientParameters();
    clientParameters.setDisableCNCheck(true);
    clientParameters.setSecureSocketProtocol("TLS");
    conduit.setTlsClientParameters(clientParameters);
    try {
        response = client.get(String.class);

    } finally {
        if (client != null) {
            client.reset();
        }
    }

    return response;
}

Solution

  • WebClient is part of cxf-rt-frontend-jaxrs.jar. You do not have cxf JAXRS related jars I guess.