“线程中的异常”;“主要”;java.lang.NoSuchMethodError:org.jboss.resteasy.util.CaseInsensitiveMap.add(Ljava/lang/String;Ljava/lang/Object;)V
我是RestEasy web服务的新手。我从RestEasy web服务获得了正确的响应,但当我尝试编写web服务客户端时,我遇到了上述错误。请查找以下代码。 请让我知道问题出在哪里。 我正在使用RestEasy 3.0.9决赛 RestServiceClient.java“线程中的异常”;“主要”;java.lang.NoSuchMethodError:org.jboss.resteasy.util.CaseInsensitiveMap.add(Ljava/lang/String;Ljava/lang/Object;)V,java,web-services,rest,jboss,resteasy,Java,Web Services,Rest,Jboss,Resteasy,我是RestEasy web服务的新手。我从RestEasy web服务获得了正确的响应,但当我尝试编写web服务客户端时,我遇到了上述错误。请查找以下代码。 请让我知道问题出在哪里。 我正在使用RestEasy 3.0.9决赛 RestServiceClient.java import javax.ws.rs.client.Client; import javax.ws.rs.client.ClientBuilder; import javax.ws.rs.client.WebTarget;
import javax.ws.rs.client.Client;
import javax.ws.rs.client.ClientBuilder;
import javax.ws.rs.client.WebTarget;
import javax.ws.rs.core.Response;
public class RestServiceClient {
public static void main(String[] args) throws Exception {
Client client = ClientBuilder.newBuilder().build();
WebTarget target = client.target("http://localhost:8888/RestSpring/rest/response/hello");
Response response = target.request().get();
String value = response.readEntity(String.class);
System.out.println("Response Value : "+value);
response.close();
}
}
Pom.xml
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java-version>1.7</java-version>
<spring.version>4.0.5.RELEASE</spring.version>
<resteasy.version>3.0.9.Final</resteasy.version>
<jax.rs.version>2.0</jax.rs.version>
<javax.servlet.version>3.1.0</javax.servlet.version>
<jackson.version>1.9.4</jackson.version>
</properties>
<dependencies>
<!-- Spring Framework -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- RestEasy -->
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-jaxrs</artifactId>
<version>${resteasy.version}</version>
</dependency>
<!-- RestEasy Spring Integration -->
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-spring</artifactId>
<version>${resteasy.version}</version>
</dependency>
<!-- restEasy for file upload -->
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-multipart-provider</artifactId>
<version>2.2.0.GA</version>
</dependency>
<!-- RestEasy Jackson Json Mapper -->
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-jackson-provider</artifactId>
<version>${resteasy.version}</version>
</dependency>
<!-- JAX-RS -->
<dependency>
<groupId>javax.ws.rs</groupId>
<artifactId>javax.ws.rs-api</artifactId>
<version>${jax.rs.version}</version>
</dependency>
<!-- Servlet -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>${javax.servlet.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.inject</groupId>
<artifactId>javax.inject</artifactId>
<version>1</version>
</dependency>
<!-- Log4j Jar -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
<!-- Apache Common Lang -->
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.6</version>
</dependency>
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.9</version>
</dependency>
<!-- Junit and Mockito -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-all</artifactId>
<version>1.9.5</version>
<scope>test</scope>
</dependency>
<!-- RestEasy Client -->
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-client</artifactId>
<version>3.0.2.Final</version>
</dependency>
</dependencies>
尝试使用相应版本的resteasy多部分提供程序:
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-multipart-provider</artifactId>
<version>${resteasy.version}</version>
</dependency>
org.jboss.resteasy
resteasy多部分提供程序
${resteasy.version}
2.2.0在版本更改后似乎非常旧,从服务器获得响应时删除了javax.ws.rs-api jar。 这是如下所示的配置文件 pom.xml
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java-version>1.7</java-version>
<spring.version>4.0.5.RELEASE</spring.version>
<resteasy.version>3.0.9.Final</resteasy.version>
<jax.rs.version>2.0</jax.rs.version>
<javax.servlet.version>3.1.0</javax.servlet.version>
<jackson.version>1.9.4</jackson.version>
</properties>
<dependencies>
<!-- Spring Framework -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- RestEasy -->
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-jaxrs</artifactId>
<version>${resteasy.version}</version>
</dependency>
<!-- RestEasy Spring Integration -->
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-spring</artifactId>
<version>${resteasy.version}</version>
</dependency>
<!-- restEasy for file upload -->
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-multipart-provider</artifactId>
<version>${resteasy.version}</version>
</dependency>
<!-- RestEasy Jackson Json Mapper -->
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-jackson-provider</artifactId>
<version>${resteasy.version}</version>
</dependency>
<!-- JAX-RS -->
<!--
<dependency>
<groupId>javax.ws.rs</groupId>
<artifactId>javax.ws.rs-api</artifactId>
<version>${jax.rs.version}</version>
</dependency>
-->
<!-- Servlet -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>${javax.servlet.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.inject</groupId>
<artifactId>javax.inject</artifactId>
<version>1</version>
</dependency>
<!-- Log4j Jar -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
<!-- Apache Common Lang -->
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.6</version>
</dependency>
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.9</version>
</dependency>
<!-- Junit and Mockito -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-all</artifactId>
<version>1.9.5</version>
<scope>test</scope>
</dependency>
<!-- RestEasy Client -->
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-client</artifactId>
<version>${resteasy.version}</version>
</dependency>
</dependencies>
UTF-8
1.7
4.0.5.1发布
3.0.9.1最终版本
2
3.1.0
1.9.4
org.springframework
弹簧芯
${spring.version}
org.springframework
弹簧网
${spring.version}
org.springframework
春豆
${spring.version}
org.jboss.resteasy
resteasy jaxrs
${resteasy.version}
org.jboss.resteasy
轻松的春天
${resteasy.version}
org.jboss.resteasy
resteasy多部分提供程序
${resteasy.version}
org.jboss.resteasy
resteasy jackson提供商
${resteasy.version}
javax.servlet
javax.servlet-api
${javax.servlet.version}
假如
javax.inject
javax.inject
1.
log4j
log4j
1.2.17
公地郎
公地郎
2.6
通用编解码器
通用编解码器
1.9
朱尼特
朱尼特
4.11
测试
org.mockito
莫基托所有
1.9.5
测试
org.jboss.resteasy
resteasy客户端
${resteasy.version}
web.xml
<listener>
<listener-class>org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap</listener-class>
</listener>
<listener>
<listener-class>org.jboss.resteasy.plugins.spring.SpringContextLoaderListener</listener-class>
</listener>
<servlet>
<servlet-name>Resteasy</servlet-name>
<servlet-class>org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Resteasy</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
<context-param>
<param-name>resteasy.servlet.mapping.prefix</param-name>
<param-value>/rest</param-value>
</context-param>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring-servlet.xml</param-value>
</context-param>
org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap
org.jboss.resteasy.plugins.spring.SpringContextLoaderListener
放松
org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher
1.
放松
/休息/*
resteasy.servlet.mapping.prefix
/休息
上下文配置位置
/WEB-INF/spring-servlet.xml
当您将resteasy 3.0.9用于其他所有内容时,为什么要使用多部分版本2.2.0.GA?NoSuchMethodError通常是由混合依赖版本引起的(与客户端相同,您使用的是3.0.2)@peeskillet:我已将版本更改为最新版本,但仍会出现错误。另外,请删除javax.ws.rsAPI
。它会被拉的in@peeskillet:现在错误消失了,但仍然得到作为错误的响应没有缺点。它被Resteasy使用。但是Resteasy把它拉了进来。你应该让它做它的工作。在这种情况下,它依赖于2.0.1。您使用的是2.0。我猜这就是问题所在哦,好吧,让我换一个
<listener>
<listener-class>org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap</listener-class>
</listener>
<listener>
<listener-class>org.jboss.resteasy.plugins.spring.SpringContextLoaderListener</listener-class>
</listener>
<servlet>
<servlet-name>Resteasy</servlet-name>
<servlet-class>org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Resteasy</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
<context-param>
<param-name>resteasy.servlet.mapping.prefix</param-name>
<param-value>/rest</param-value>
</context-param>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring-servlet.xml</param-value>
</context-param>