我目前正在使用Jersey / Jackson来进行从客户端到服务器的REST调用。
客户端:
ResteasyClient client = new ResteasyClientBuilder().build();
ResteasyWebTarget target = client.target("http://localhost:8080/TrustBasedRecommendation/restservice/adduser");
Response responseTo = target.request().post(Entity.entity(json, MediaType.TEXT_HTML));
if (responseTo.getStatus() != 200) {
throw new Exception("Failed : HTTP error code : " + responseTo.getStatus() +" "+ responseTo.readEntity(String.class) );
服务器端 - 只是打印我的字符串的测试
@POST
@Path("/adduser")
@Consumes(MediaType.TEXT_HTML)
public Response addUser(String user)
{
System.out.println("Inside add user "+user);
String failedMessage = "failed to add user";
String successMessage = "user successfully added";
我收到以下异常:
javax.ws.rs.ProcessingException: Unable to invoke request
Caused by: javax.ws.rs.ProcessingException: could not find writer for content-type text/html type: java.lang.String at org.jboss.resteasy.core.interception.ClientWriterInterceptorContext.throwWriterNotFoundException(ClientWriterInterceptorContext.java:40)
我正在尝试从客户端向服务器发送“字符串”(JSON)。
请帮助。
答案 0 :(得分:4)
我不确定你用过哪种罐子" jersey"。但每当我使用以下依赖
时,我就遇到过这种问题 <dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-server</artifactId>
<version>1.9.1</version>
</dependency>
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-client</artifactId>
<version>1.9.1</version>
</dependency>
然后我转移到了泽西束,它工作正常。
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-bundle</artifactId>
<version>1.18.1</version>
</dependency>
您也可以尝试一下。