Исключение в потоке "main" java.lang.NoClassDefFoundError: com / sun / jersey / api / client / config / ClientConfig - PullRequest
3 голосов
/ 01 марта 2012

У меня проблема с генерацией файла wsdl с помощью wsgen (веб-сервис JAX)

wsgen -classpath build/classes/ -wsdl -r WebContent/WEB-INF/wsdl -s src -d build/classes/ twitterJAX.Package.ClassServices

ошибка:

Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/jersey/api/cl
ient/config/ClientConfig
        at java.lang.Class.getDeclaredMethods0(Native Method)
        at java.lang.Class.privateGetDeclaredMethods(Class.java:2442)
        at java.lang.Class.privateGetPublicMethods(Class.java:2562)
        at java.lang.Class.getMethods(Class.java:1427)
        at com.sun.xml.ws.model.RuntimeModeler.processClass(RuntimeModeler.java:
358)
        at com.sun.xml.ws.model.RuntimeModeler.buildRuntimeModel(RuntimeModeler.
java:246)
        at com.sun.tools.ws.wscompile.WsgenTool.buildModel(WsgenTool.java:247)
        at com.sun.tools.ws.wscompile.WsgenTool.run(WsgenTool.java:126)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:601)
        at com.sun.tools.ws.Invoker.invoke(Invoker.java:135)
        at com.sun.tools.ws.WsGen.main(WsGen.java:57)
Caused by: java.lang.ClassNotFoundException: com.sun.jersey.api.client.config.Cl
ientConfig
        at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
        ... 14 more

В настоящее время я создаю веб-сервис (JAX), который может вызватьrestfull webservice (JERSEY) вот мой код:

import java.net.URI;

import javax.jws.WebMethod;
import javax.jws.WebService;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.UriBuilder;

import com.sun.jersey.api.client.Client;
import com.sun.jersey.api.client.ClientResponse;
import com.sun.jersey.api.client.WebResource;
import com.sun.jersey.api.client.config.ClientConfig;
import com.sun.jersey.api.client.config.DefaultClientConfig;

@WebService
public class ClassServices {

    @WebMethod
    public String tweet( String pMsg,String endpoint){
        ClientConfig config = new DefaultClientConfig();
        Client client = Client.create(config);
        WebResource service = client.resource(getBaseURI(endpoint));
        String msg=service.path("rest").path("tweet").path(pMsg).accept(
                MediaType.TEXT_PLAIN).get(ClientResponse.class).toString();
        return msg;
    }
    private static URI getBaseURI(String endpoint) {
        return UriBuilder.fromUri(endpoint).build();
    }

}

Я пробовал этот код как обычный клиент, чтобы вызвать службу restfull, и он работает нормально.Я помещаю все файлы jerssey jars в библиотеку web-inf, но все же, когда я пытаюсь использовать инструмент wsgen, всегда возвращаю ошибку

Пожалуйста, помогите ... Заранее спасибо

...