当依赖项位于buiild.sbt中时,获取java.lang.NoClassDefFoundError:javax / ws / rs / Path - java

我在build.sbt中有以下设置:

lazy val proj = (project in file("."))
  .settings(
    name := "Proj",
    resolvers += Resolver.mavenLocal,
    libraryDependencies += "javax.ws.rs" % "javax.ws.rs-api" % "2.1" artifacts( Artifact("javax.ws.rs-api", "", "jar")), // for rescu
    libraryDependencies += "com.github.mmazi" % "rescu" % "2.0.2",
  )

但是sbt run会出现此错误:

[error] java.lang.NoClassDefFoundError: javax/ws/rs/Path
[error]     at si.mazi.rescu.RestInvocationHandler.<init>(RestInvocationHandler.java:61)

Path类存在于存档中:

$ jar -tvf /home/user/.m2/repository/javax/ws/rs/javax.ws.rs-api/2.1/javax.ws.rs-api-2.1.jar | grep Path
   ...
   456 Fri Aug 04 15:17:40 MSK 2017 javax/ws/rs/Path.class

rs api以这种hacky方式添加,因为否则它拒绝插入,但是现在看来可以插入,但是我不知道有什么问题

参考方案

通过反复试验,我最终得到了以下一组依赖关系,这些依赖关系解决了此问题:

libraryDependencies += "javax.ws.rs" % "javax.ws.rs-api" % "2.1" artifacts( Artifact("javax.ws.rs-api", "", "jar") ),
libraryDependencies += "javax.ws.rs" % "jsr311-api" % "1.1.1",
libraryDependencies += "org.apache.cxf" % "cxf-rt-frontend-jaxrs" % "3.3.1",
libraryDependencies += "com.github.mmazi" % "rescu" % "2.0.2",

Java:线程主java.lang.NoClassDefFoundError中的异常 - java

我正在尝试使Red5 Flash Media Server在我的计算机上工作。我已经安装了它,但是在运行服务器时出现此错误:- Exception in thread "main" java.lang.NoClassDefFoundError: org/red5/server/Bootstrap Caused by: java.lang.…

不兼容的类型:java.lang.Object无法转换为T - java

这是我的代码:package datastructures; import java.util.Iterator; public class Stack<T>{ private class Node<T>{ T data; Node next; } private int size; private Node head; privat…

javax.smartcardio-javadocs - java

我正在研究javax.smartcardio类。我正在使用eclipse 3.6,并且拥有JDK 6 SE。我可以使用语句import javax.smartcardio。*或其任何单个类,只要我更改首选项以警告或忽略禁止的引用即可。我没有在Java SE 6的标准文档中提及javax.smartcardio并且没有Javadoc帮助在Eclipse中弹出。…

无法解析类型java.lang.CharSequence。从所需的.class文件间接引用它 - java

尝试从GitHub编译某些项目时,遇到以下错误The type java.lang.CharSequence cannot be resolved. It is indirectly referenced from required .class files 如果我没有记错的话,这是来自基本JDK的课程。怎么会无法到达? 参考方案 如上面@ hajo-the…

将生成的类放入不同的Web服务的同一包中 - java

我有几个JAX-WS Web服务,它们使用相同的类,但是从wsdl(在客户端)生成后,相同的类具有不同的包。我发现了如何使用@xmltype批注将它们放入同一包中。但是我不能使用它,因为源代码不可用。在服务部署期间是否可以通过某种方式修复它? 参考方案 您如何从WSDL生成客户端代码?如果您使用maven,则可以在插件设置中指定生成类的包(例如apache …