Tag: jersey client

REST JAX-RS javax.ws.rs.ProcessingException:

每当我的REST客户端代码使用下面的代码调用REST服务时,我就会遇到exception: 代码: public void putWatcher(Watcher watcher) { System.out.println(“In REST Client putWatcher.***********”); target = target.path(RESOURCE_WATCHERS).path(watcher.getWatcheruri()); System.out.println(target.getUri()); Invocation.Builder builder = target.request(); builder.put(Entity.json(watcher)); // Response response = target.request().put(Entity.json(watcher)); System.out.println(“Returned from REST Call”); } 例外: : javax.ws.rs.ProcessingException: javax.ws.rs.core.Response$Status$Family.familyOf(I)Ljavax/ws/rs/core/Response$Status$Family; at org.glassfish.jersey.client.ClientRuntime.invoke(ClientRuntime.java:255) at org.glassfish.jersey.client.JerseyInvocation$1.call(JerseyInvocation.java:667) at org.glassfish.jersey.client.JerseyInvocation$1.call(JerseyInvocation.java:664) at org.glassfish.jersey.internal.Errors.process(Errors.java:315) at org.glassfish.jersey.internal.Errors.process(Errors.java:297) at org.glassfish.jersey.internal.Errors.process(Errors.java:228) at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:424) at org.glassfish.jersey.client.JerseyInvocation.invoke(JerseyInvocation.java:664) at org.glassfish.jersey.client.JerseyInvocation$Builder.method(JerseyInvocation.java:424) at org.glassfish.jersey.client.JerseyInvocation$Builder.put(JerseyInvocation.java:318) Caused […]

如何使用Dropwizard 1.0.2中的LoggingFeature打印服务器响应?

以下代码导致在Dropwizard 0.9.2和1.0.2中打印JSON服务器响应: return ClientBuilder .newBuilder() .build() .register(new LoggingFilter(Logger.getLogger(LoggingFilter.class.getName()), true)) 例如: Oct 21, 2016 7:57:42 AM org.glassfish.jersey.filter.LoggingFilter log INFO: 1 * Client response received on thread main 1 < 401 1 < Connection: keep-alive 1 < Content-Length: 49 1 < Content-Type: text/plain 1 < Date: Fri, 21 Oct 2016 07:57:42 GMT 1 < Server: […] 1 […]

线程“main”中的exceptionjava.lang.NoClassDefFoundError:无法初始化类com.sun.jersey.core.header.MediaTypes

我正试图经营一个jersey客户并面对这个问题。 WS类: import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.QueryParam; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; @Path(“/hello”) public class HelloWorldService { @GET @Path(“/vip”) @Produces(MediaType.APPLICATION_JSON) public Response getMsg(@QueryParam(“msg”) String msg) { String output = “Jersey say : ” + msg; return Response.status(200).entity(output).build(); } } 客户类: import com.sun.jersey.api.client.Client; import com.sun.jersey.api.client.ClientResponse; import com.sun.jersey.api.client.WebResource; public class JerseyClientGet { public static void […]

java Jersey 2.1客户端线程安全吗?

针对jersey 2.0的文档说 : 客户端实例是昂贵的资源。 建议重新使用已配置的实例来创建Web资源。 Web资源的创建,请求的构建和响应的接收都保证是线程安全的。 因此,可以在多个线程之间共享Client实例和WebResource实例 客户端在2.1版中仍然是线程安全的吗? 我在2.1的文档中找不到有关线程安全的信息。

无法在Jersey中进行基本的http身份validation

我正在尝试使用Jersey 1.X版本连接到安全的外部rest服务。 我使用了以下代码 public class MyRestClient { private static final String API_USER_NAME = “some value”; private static final String API_PASSWORD = “some value”; private static final String REST_URL = “https://”; public static void main(String[] args) { ClientConfig config = new DefaultClientConfig(); Client client = Client.create(config); client.addFilter(new HTTPBasicAuthFilter(API_USER_NAME, API_PASSWORD)); WebResource webResource = client.resource(UriBuilder.fromUri(REST_URL).build()); ClientResponse response = […]

如何解决找不到媒体类型= multipart / form-data错误的MessageBodyWriter

如何为简单的多表单post配置提供程序。 任何建议/指针将不胜感激。 堆栈跟踪: org.glassfish.jersey.message.internal.MessageBodyProviderNotFoundException: MessageBodyWriter not found for media type=multipart/form-data, type=class org.glassfish.jersey.media.multipart.FormDataMultiPart, genericType=class org.glassfish.jersey.media.multipart.FormDataMultiPart. at org.glassfish.jersey.message.internal.WriterInterceptorExecutor$TerminalWriterInterceptor.aroundWriteTo(WriterInterceptorExecutor.java:227) at org.glassfish.jersey.message.internal.WriterInterceptorExecutor.proceed(WriterInterceptorExecutor.java:149) at org.glassfish.jersey.message.internal.MessageBodyFactory.writeTo(MessageBodyFactory.java:1139) at org.glassfish.jersey.client.ClientRequest.writeEntity(ClientRequest.java:433) at org.glassfish.jersey.test.inmemory.internal.InMemoryConnector.apply(InMemoryConnector.java:214) at org.glassfish.jersey.client.ClientRuntime.invoke(ClientRuntime.java:217) at org.glassfish.jersey.client.JerseyInvocation$1.call(JerseyInvocation.java:655) pom.xml依赖项: org.glassfish.jersey.test-framework.providers jersey-test-framework-provider-inmemory 2.4 org.glassfish.jersey.media jersey-media-multipart 2.4 org.hamcrest hamcrest-all 1.3 代码: import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.is; import javax.ws.rs.Consumes; import javax.ws.rs.POST; import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.client.Entity; […]

如何使用javax.ws.rs.client.WebTarget从REST客户端发送json对象

我在下面给出了一个POJO,我希望将其作为JSON或XML输出到服务器。 这就是我所做的 客户: ClientConfig config = new ClientConfig(); Client client = ClientBuilder.newClient(config); WebTarget target = client.target(getBaseURI()); public void putFriend(String uri , Friend friend) { System.out.println(friend.toString()); target = target.path(some_path).path(uri); ClientResponse response = target.request(MediaType.APPLICATION_JSON).put(Entity.entity(friend,MediaType.APPLICATION_JSON),ClientResponse.class); } 我在网上找到的例子是使用WebResource。 我不知道如何使用WebTarget。 我所做的是从SO上找到的一些例子中获取,但Entity.entity()给出了未定义的方法实体(friend,String)。 POJO @XmlRootElement public class Friend{ private String friendURI; private String event; private String uri; String getUri() { return uri; […]

仅使用SS证书和CA证书而不使用密钥库

我需要设置一个javax.net.ssl.SSLContext ,以便在Jersey-Client应用程序中使用。 我想要做的就是接受自定义根证书的上下文。 是否真的无法生成密钥库文件并导入CA证书?

Jersey ClientResponse.getEntity的generics类型

我遇到了使用jeresy ClientRespone.getEntity反序列化的问题 我试图遵循一些教程和问题,包括: http : //jersey.576304.n2.nabble.com/How-can-I-parse-a-java-util-List-lt-gt-Is-它支持泽西客户端-tdd2300852.html https://jersey.java.net/nonav/documentation/1.5/json.html http://www.programcreek.com/java-api-examples/的index.php?API = com.sun.jersey.api.client.GenericType 我仍然一遍又一遍地得到同样的例外 我的目标是:而不是: response.getEntity(String.class); –> {“name”:”Ben”,”type”:”The man”,”id”:0} 然后解析它(例如使用Jackson),我想让实体进入我的POJO对象。 到目前为止,这是我的尝试: 服务器端: @POST @Path(“/account”) // route to a specific method.re @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON) public Response saveDataIntoHash(Account account) { Account createdAccount = new Account(account.getName(), account.getType()); accountHash.put(createdAccount.getID(), createdAccount); return Response.status(201).entity(new AccountResponse(createdAccount.getID())).build(); } 服务器端帐户类: private String name; private String type; private int […]