Tag: jersey

更改Dropwizard默认端口

我有一个基于Dropwizard的泽西REST服务在默认端口8080(服务)和8081(pipe理员)上运行,我需要将默认端口更改为不太常用的东西,我无法find任何信息这样做,有人能指点我吗?

如何使用Jersey 2.x设置连接和读取超时?

在jersey1中,我们在com.sun.jersey.api.client.Client类中有一个函数setConnectTimeout 。 在泽西岛2中, javax.ws.rs.client.Client类被用在缺less这个函数的地方。 如何在jersey2.x中设置连接超时和读取超时?

找不到RESTful资源。 404或204? 泽西从处理程序返回null返回204

如果你正在寻找/Resource/Id和资源不存在,我一直认为,404是适当的回应。 但是,当从Jersey处理程序返回null时,我会返回“204无内容”。 我可以和任何一个人一起工作,但很好奇别人对此的想法。 回答我自己的下一个问题。 要让泽西返回404,你必须抛出exception。 if (a == null) throw new WebApplicationException(404);

jackson+生成器模式?

我希望Jackson用下面的构造函数反序列化一个类: public Clinic(String name, Address address) 反序列化第一个参数很容易。 问题是,地址被定义为: public class Address { private Address(Map<LocationType, String> components) … public static class Builder { public Builder setCity(String value); public Builder setCountry(String value); public Address create(); } } 并构造如下: new Address.Builder().setCity("foo").setCountry("bar").create(); 有没有办法让jackson的键值对自己构build地址? 另外,有没有办法让jackson使用Builder类本身?

泽西岛的全球exception处理

有没有办法在泽西岛进行全局exception处理? 而不是单独的资源有try / catch块,然后调用一些方法,然后清理所有的exception被发回给客户端,我希望有一种方法可以把这个资源实际上被调用的地方。 这甚至有可能吗? 如果是这样,怎么样? 而不是, sanitize(e)会在Jersey servlet中抛出某种Jerseyconfiguration的exception: @GET public Object getStuff() { try { doStuff(); } catch (Exception e) { ExceptionHandler.sanitize(e); } } 有: @GET public Object getStuff() throws Exception { doStuff(); } 那里的exception将被抛出一些我可以拦截并从那里调用sanitize(e)的东西。 这实际上只是为了简化泽西岛的所有资源,并保证返回给客户的例外总是以某种可以理解的forms出现。

Jersey + Jackson JSONdate格式序列化 – 如何更改格式或使用自定义的JacksonJsonProvider

我正在使用Jersey + Jackson为我的应用程序提供REST JSON服务层。 我遇到的问题是默认的date序列化格式如下所示: "CreationDate":1292236718456 起初我以为这是一个UNIX时间戳,但是这太长了。 我的客户端JS库有反序列化这种格式的问题(它支持一堆不同的date格式,但不是我想这个)。 我想改变格式,以便它可以被我的库(例如ISO)消耗。 我该怎么做…我发现了一段代码可以帮助,但是…我把它放在哪里,因为我不控制jackson串行器实例化(泽西岛)? objectMapper.configure( SerializationConfig.Feature.WRITE_DATES_AS_TIMESTAMPS, false); 我也发现这个代码为自定义JacksonJsonProvider – 问题是..我如何使所有我的POJO类使用它? @Provider public class MessageBodyWriterJSON extends JacksonJsonProvider { private static final String DF = "yyyy-MM-dd'T'HH:mm:ss.SSSZ"; @Override public boolean isWriteable(Class arg0, Type arg1, Annotation[] arg2, MediaType arg3) { return super.isWriteable(arg0, arg1, arg2, arg3); } @Override public void writeTo(Object target, Class arg1, […]

处理Jersey中的多个查询参数

在我正在处理的Web服务中,我需要实现一个URI查询参数,类似于/stats?store=A&store=B&item=C&item=D 要分解它,我需要能够使用查询参数来指定来自多个/所有商店的数据以及来自这些商店的多个/所有项目的数据。 到目前为止,我已经能够实现一个查询参数,以拉动项目数据,但是我失去了如何实现更多的查询,似乎无法find我之前见过的资源与此实现。 到目前为止,我的方法是沿着 @GET @Path("stats") public String methodImCalling(@DefaultValue("All") @QueryParam(value = "item") final String item) { /**Run data using item as variable**/ return someStringOfData } 这对于一个项目来说工作得很好,如果我不在URI中input参数,它将返回所有的数据。 但是,我不确定如何处理更多的参数。 更新 : 我已经想通过简单地向方法添加第二个参数如何使用2个不同的参数,如下所示: public String methodImCalling(@DefaultValue("All") @QueryParam(value = "store") final String store, @DefaultValue("All") @QueryParam(value = "item") final String item) 问题仍然是如何实现同一个参数的多个值。

如何从泽西REST服务方法返回一个PNG图像到浏览器

我有一个运行Jersey REST资源的Web服务器,我不知道如何获得浏览器img标签的图像/ PNG参考; 提交表单或获得Ajax响应后。 添加graphics的image processing代码正在工作,只需要以某种方式返回它。 码: @POST @Path("{fullsize}") @Consumes(MediaType.MULTIPART_FORM_DATA) @Produces("image/png") // Would need to replace void public void getFullImage(@FormDataParam("photo") InputStream imageIS, @FormDataParam("submit") String extra) { BufferedImage image = ImageIO.read(imageIS); // …. image processing //…. image processing return ImageIO. .. ? } 干杯

泽西岛客户端API – authentication

我正在使用Jersey客户端API将SOAP请求提交给JAX-WS webservice。 默认情况下泽西是在某种程度上使用我的Windows NTauthentication时挑战挑战。 任何人都可以解释泽西在代码中做了什么? 它可以被覆盖吗? 我曾尝试使用HTTPBasicAuthFilter并添加为客户端上的筛选器。 我也尝试将我的凭据添加到WebResoruce queryParams字段,但是都没有被拿起。

会话pipe理:如何为REST服务生成身份validation令牌? (新泽西州)

我正试图在我的REST服务中实现会话pipe理。 在冲浪的时候我开始了解这些指南: 不使用服务器端会话 – 它违反了RESTful原则。 使用HTTP基本身份validation – 现在不可能,因为我被要求不使用SSL / TLS(基本身份validation无疑是必需的)。 使用Http摘要 – 我听说这增加了networkingstream量。 这听起来成本很高,特别是当我的客户端是移动设备时。 使用cookies – 我被告知不应该依靠cookie来保护我的重要资源,他们很容易被欺骗。 另外,我通过cookies了解了跨站点脚本攻击。 我留下了一个生成身份validation令牌的选项,用户每次都必须发送 – 我承认这不是“完全”RESTful。 现在我需要知道,我应该如何生成这些在业务级别足够安全的唯一身份validation令牌? 泽西岛有一些图书馆吗? 我应该去OAuth ..我刚刚读了一些关于他们,在我的情况是否有用? 请记住,我的目标客户端是移动设备 – 他们是否可以访问OAuth服务?