编辑:为了简化我的问题,有没有人设法使用 rest 与 Activiti 进行通信?如果是这样,您能否发布您的代码。谢谢。
我一直在努力使用 Rest 登录 Activiti。我遵循了 api 指南并实现了以下内容
代码:
package demo;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.MultivaluedMap;
import com.sun.jersey.api.client.Client;
import com.sun.jersey.api.client.ClientResponse;
import com.sun.jersey.api.client.UniformInterfaceException;
import com.sun.jersey.api.client.WebResource;
import com.sun.jersey.api.client.config.ClientConfig;
import com.sun.jersey.api.client.config.DefaultClientConfig;
import com.sun.jersey.core.util.MultivaluedMapImpl;
import com.sun.jersey.json.impl.provider.entity.JSONRootElementProvider;
public class Aloha {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Client client = Client.create();
WebResource webResource = client
.resource("http://localhost:8080/activiti-rest/service/login");
MultivaluedMap<String, String> formData = new MultivaluedMapImpl();
formData.add("userId", "kermit");
formData.add("password", "kermit");
ClientResponse response;
try {
response = webResource.type("application/x-www-form-urlencoded")
.post(ClientResponse.class, formData); // webResource.accept(MediaType.TEXT_PLAIN_TYPE).post(ClientResponse.class,
// formData);
System.out.print(response.toString());
} catch (UniformInterfaceException ue) {
System.out.print(ue.getMessage());
}
}
}
如您所见,我正在使用 Jersey 来使用 Web 服务,这是我一直得到的响应:
引用:
POST http://localhost:8080/activiti-rest/service/login returned a response status of 415 Unsupported Media Type
请你能指出我在这里做错了什么吗?
请注意,当我将类型替换为“application/json”时,会出现以下错误:
代码:
Exception in thread "main" com.sun.jersey.api.client.ClientHandlerException: com.sun.jersey.api.client.ClientHandlerException: A message body writer for Java type, class com.sun.jersey.core.util.MultivaluedMapImpl, and MIME media type, application/json, was not found
at com.sun.jersey.client.urlconnection.URLConnectionClientHandler.handle(URLConnectionClientHandler.java:149)
at com.sun.jersey.api.client.Client.handle(Client.java:648)
at com.sun.jersey.api.client.WebResource.handle(WebResource.java:670)
at com.sun.jersey.api.client.WebResource.access$200(WebResource.java:74)
at com.sun.jersey.api.client.WebResource$Builder.post(WebResource.java:563)
at demo.Aloha.main(Aloha.java:32)
Caused by: com.sun.jersey.api.client.ClientHandlerException: A message body writer for Java type, class com.sun.jersey.core.util.MultivaluedMapImpl, and MIME media type, application/json, was not found
at com.sun.jersey.api.client.RequestWriter.writeRequestEntity(RequestWriter.java:288)
at com.sun.jersey.client.urlconnection.URLConnectionClientHandler._invoke(URLConnectionClientHandler.java:204)
at com.sun.jersey.client.urlconnection.URLConnectionClientHandler.handle(URLConnectionClientHandler.java:147)
... 5 more
非常感谢,