2017-05-13 1 views
3

Ich habe ein kleines Projekt, wo ich zu Testzwecken meinen Jersey 2 Client nach Unit-Test ausfühle. Aber leider habe ich den Fehler beigefügt. Ich weiß nicht, welche Abhängigkeit noch fehlt. Im Moment ist die Webseite von Jersey wegen Wartungsarbeiten nicht erreichbar.Welche Abhängigkeit fehlt, wenn ich java.lang.NoClassDefFoundError: javax/ws/rs/client/RxInvokerProvider Fehler bekomme?

Ich legte den gleichen relevanten Teil von pom.xml, Testcode und getesteten Code auch beigefügt.

public void getWorkItems() { 
     ClientConfig clientConfig = new ClientConfig(); 
     clientConfig.property(ClientProperties.READ_TIMEOUT, 2000); 
     Client client = ClientBuilder.newClient(clientConfig);  

     WebTarget webTarget = client.target("https://fabrikam.visualstudio.com/DefaultCollection/_apis/wit/workitems?ids=100,101&api-version=1.0"); 

     Invocation.Builder inBuilder = webTarget.request(MediaType.APPLICATION_JSON_TYPE); 
     Response response = inBuilder.get();  
    } 


public class WorkItemTests { 

    @Test 
    public void Vsts_Test() { 
     WorkItems workItems = new WorkItems(); 
     workItems.getWorkItems(); 
    }   
} 
<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 

    <modelVersion>4.0.0</modelVersion> 

    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-surefire-plugin</artifactId> 
       <version>2.20</version> 
       <configuration> 
        <includes> 
         <include>**/*Tests.java</include> 
        </includes> 
       </configuration> 
      </plugin> 
     </plugins> 
    </build> 

    <dependencies> 
     <dependency> 
      <groupId>junit</groupId> 
      <artifactId>junit</artifactId> 
      <version>4.12</version> 
     </dependency> 
     <dependency> 
      <groupId>stuff</groupId> 
      <artifactId>Vsts.Connector</artifactId> 
      <version>1.0-SNAPSHOT</version> 
      <scope>compile</scope> 
     </dependency> 
     <dependency> 
      <groupId>org.glassfish.jersey.core</groupId> 
      <artifactId>jersey-client</artifactId> 
      <version>RELEASE</version> 
     </dependency> 
     <dependency> 
      <groupId>org.glassfish.jersey.core</groupId> 
      <artifactId>jersey-server</artifactId> 
      <version>RELEASE</version> 
     </dependency> 
     <dependency> 
      <groupId>javax.ws.rs</groupId> 
      <artifactId>javax.ws.rs-api</artifactId> 
      <version>2.0.1</version> 
     </dependency> 
     <dependency> 
      <groupId>javax</groupId> 
      <artifactId>javaee-api</artifactId> 
      <version>7.0</version> 
     </dependency> 
     <dependency> 
      <groupId>javax</groupId> 
      <artifactId>javaee-api</artifactId> 
      <version>7.0</version> 
     </dependency> 
     <dependency> 
      <groupId>org.glassfish.jersey.media</groupId> 
      <artifactId>jersey-media-json-jackson</artifactId> 
      <version>2.25.1</version> 
     </dependency> 
    </dependencies> 
    <properties> 
     <maven.compiler.source>1.8</maven.compiler.source> 
     <maven.compiler.target>1.8</maven.compiler.target> 
    </properties> 
</project> 

Fehler:

java.lang.NoClassDefFoundError: javax/ws/rs/client/RxInvokerProvider 

    at org.glassfish.jersey.internal.inject.Providers.getJaxRsProviderInterfaces(Providers.java:114) 
    at org.glassfish.jersey.internal.inject.Providers.<clinit>(Providers.java:87) 
    at org.glassfish.jersey.internal.AbstractRuntimeDelegate.<init>(AbstractRuntimeDelegate.java:86) 
    at org.glassfish.jersey.server.internal.RuntimeDelegateImpl.<init>(RuntimeDelegateImpl.java:64) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) 
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 
    at java.lang.reflect.Constructor.newInstance(Constructor.java:422) 
    at java.lang.Class.newInstance(Class.java:442) 
    at javax.ws.rs.ext.FactoryFinder.newInstance(FactoryFinder.java:118) 
    at javax.ws.rs.ext.FactoryFinder.find(FactoryFinder.java:166) 
    at javax.ws.rs.ext.RuntimeDelegate.findDelegate(RuntimeDelegate.java:135) 
    at javax.ws.rs.ext.RuntimeDelegate.getInstance(RuntimeDelegate.java:120) 
    at javax.ws.rs.core.UriBuilder.newInstance(UriBuilder.java:95) 
    at javax.ws.rs.core.UriBuilder.fromUri(UriBuilder.java:119) 
    at org.glassfish.jersey.client.JerseyWebTarget.<init>(JerseyWebTarget.java:71) 
    at org.glassfish.jersey.client.JerseyClient.target(JerseyClient.java:290) 
    at org.glassfish.jersey.client.JerseyClient.target(JerseyClient.java:76) 
    at WorkItems.getWorkItems(WorkItems.java:24) 
    at WorkItemTests.Vsts_Test2(WorkItemTests.java:18) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:497) 
    at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50) 
    at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) 
    at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47) 
    at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) 
    at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325) 
    at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78) 
    at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57) 
    at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) 
    at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) 
    at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) 
    at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) 
    at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) 
    at org.junit.runners.ParentRunner.run(ParentRunner.java:363) 
    at org.junit.runner.JUnitCore.run(JUnitCore.java:137) 
    at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68) 
    at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:51) 
    at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242) 
    at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70) 
Caused by: java.lang.ClassNotFoundException: javax.ws.rs.client.RxInvokerProvider 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 
    ... 42 more 


Process finished with exit code -1 
+0

Haben Sie versucht, jar googeln? – Jens

Antwort

4

Versuch unter Abhängigkeit

<dependency> 
    <groupId>javax.ws.rs</groupId> 
    <artifactId>javax.ws.rs-api</artifactId> 
    <version>2.0-m01</version> 
</dependency> 
+1

Schließlich ist ' 2.1-m07' der Gewinner. Bitte editiere deine Antwort und ich akzeptiere sie! Könnten Sie uns erklären, warum diese Unterschiede zwischen den Paketen bestehen? – SayusiAndo

+0

'javax.ws.rs-api-2.0.1.jar' hat es NICHT. –

+0

... in der Tat, mvnrepository.com Hosting von neuen Versionen von diesem Glas 2.0 ist komplett kaputt, was der Hauptgrund für das Leiden ist, das ich und die OP durchlaufen. –

Verwandte Themen