- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我正在尝试使用 Jersey 客户端来模拟对我的 Web 服务的 HTTP 请求。我试图实现 simple example从文档中。这是我的短代码:
public void restoreTest(String sessionId) throws Exception {
Client client = ClientBuilder.newClient();
WebTarget target = client.target(idsUrl).path("restore");
Form form = new Form();
form.param("sessionId", sessionId);
target.request(MediaType.APPLICATION_FORM_URLENCODED_TYPE);
}
我什至没有实现整个示例,因为目前我在最后一行遇到异常:
java.lang.NoSuchMethodError: javax.ws.rs.core.MultivaluedMap.addAll(Ljava/lang/Object;[Ljava/lang/Object;)V
at org.glassfish.jersey.client.ClientRequest.accept(ClientRequest.java:254)
at org.glassfish.jersey.client.JerseyWebTarget.request(JerseyWebTarget.java:232)
at org.glassfish.jersey.client.JerseyWebTarget.request(JerseyWebTarget.java:60)
at org.icatproject.idsclient.TestingClient.restoreTest(TestingClient.java:112)
at org.icatproject.ids.ids2.ArchiveTest.restoreThenArchiveDataset(ArchiveTest.java:55)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:616)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
我只将此依赖项添加到我的 pom.xml
:
<dependency>
<groupId>org.glassfish.jersey.core</groupId>
<artifactId>jersey-client</artifactId>
<version>2.2</version>
</dependency>
我尝试用谷歌搜索问题,并调试应用程序,但我真的看不出它有什么问题。
编辑
所有 Maven 依赖项:
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.8</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.eclipse.persistence</groupId>
<artifactId>eclipselink</artifactId>
<version>2.0.2</version>
</dependency>
<dependency>
<groupId>org.eclipse.persistence</groupId>
<artifactId>javax.persistence</artifactId>
<version>2.0.0</version>
</dependency>
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-bundle</artifactId>
<version>1.8</version>
</dependency>
<dependency>
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-java</artifactId>
<version>2.4.1</version>
</dependency>
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<version>6.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.1</version>
</dependency>
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.3</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.6.4</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.16</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.6.4</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.core</groupId>
<artifactId>jersey-client</artifactId>
<version>2.2</version>
</dependency>
最佳答案
这看起来像是与 JAX-RS API 版本(包含 MultiValuedMap)有关的不一致。
您正在使用客户端 jersey-client v2.2,它是针对 JAX-RS API 的 v2.0 编译的。但是您的运行时状态可以使用定义 JAX-RS API v1.1 的 Java EE 6 运行。因此,您的代码需要 v2.0 的 JAX-RS API,但在运行时获取 v1.1。
这是 Java EE 6 的 MultiValuedMap API:
http://docs.oracle.com/javaee/6/api/javax/ws/rs/core/MultivaluedMap.html (没有 addAll 方法)。
对于 Java EE 7:
http://docs.oracle.com/javaee/7/api/javax/ws/rs/core/MultivaluedMap.html (这个包括 addAll 方法)。
当您使用 Java EE 6 时,您应该使用 jersey-client v1.8,而不是 2.2。或者您应该在运行时类路径中包含 Java EE 7 API,而不是 6。
关于java - 泽西客户端中的 NoSuchMethodError : MultivaluedMap. addAll,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18574145/
Java API docs say以下关于Collections.addAll The behavior of this convenience method is identical to that
我的代码没有编译,我不太清楚为什么。这是代码: ArrayList classifications = productData .stream()
我对此有点困惑,所以希望能提供一些说明。 public void addAll(List animals) 对比 public void addAll(List animals) 最佳答案 区别在于
每当调用 Collection#addAll 时,它都会创建参数列表的副本,然后将其附加到调用 addAll 的集合。 下面是案例一的代码: if (parentData != 0)
对不起标题,但我不知道如何更好地解释它! 假设我在 Java 中有这个类: public class ToyClass { public int number; } 还有一个名为 ToyCla
我必须将 PaginatedQueryList 添加到来自 dynamoDbMapper.query 的 secondList 以进行测试。我怎样才能实现它? List exampleList = s
如果尝试向阻塞队列添加超过阻塞队列剩余大小的集合,会发生什么?从我目前阅读的文档中并不清楚这一点。 LinkedBlockingQueue foo = new LinkedBlockingQ
在一个方法中,我进行了两次调用。第一个调用从另一个方法构造并返回一个哈希集。第二次调用将这个新构造的集合添加到现有集合中,并作为参数传递给此方法。 public static void someMet
所以我的目标是用从 1 到 x 部分的 y 个随机数填充 arraty,然后计算每个数字重复的次数并打印它。这是代码: int counter = 1; int length = random
我目前正在学习泛型,我有一个任务,我必须创建一个带有 T 类型参数和数组数据成员以及一些方法(setItem、getItem、visitor、condition 和 addAll)的 Array 类。
我正在尝试制作一个创建棋盘的 javafx 程序。但是,当我尝试运行我的程序时,它会在这一行中抛出异常:optionsPane.getChildren().addAll(optionsPane, n_
java.util.Collections 中 addAll 方法的实现只是循环遍历源集合,并为源集合中的每个元素调用接收集合的 add 方法。 因此,如果接收集合的容量很小并且我们要向其中添加许多元
下面的代码用于 ListView 的搜索过滤器。每次更改 tbSearch editText 中的文本时, ListView 中的项目也必须更改。执行进入 if 语句 (txt.length()==0
我正在尝试查找字符串中唯一字符的数量。解决方案必须尽可能高效(时间复杂度 O(N);非常大的数组;一般来说是大 O)。我决定这样做(如果您有更好的解决方案请告诉我)。唯一的问题是,当我尝试运行它时,它
Map> mapp = new HashMap>(); HashSet set1 = new HashSet(); set1.add("a"); HashSet set2 = new HashSet(
import java.util.*; public class MyClass { public static void main(String[] args) { List a = n
我刚刚开始接触 java 和 android。 下面是我的代码,用于在 Activity 中添加所有按钮然后隐藏它们。问题:无论如何,他们是否会自动添加 Activity 中的所有按钮,而不必列出每个
为什么我在执行以下代码时遇到异常。 String[] array1 = {"A","B","C","D","E"}; String[] array2 = {"F","G","H","I"};
如果我想将一个列表添加到另一个列表,我调用 target.adAll(source)。 但是如果我需要先处理列表中的每个值怎么办? 我可以做类似的事情 for(String s: source) {
最近在List.addAll中发现了一个使用流的代码片段,但是我看不出为什么要使用它。 所以给出一个简单的列表。 List subList作为参数传递给方法。有一个是另一个,它是一个字段并且包含相同类
我是一名优秀的程序员,十分优秀!