Tag: jax rs

jboss使用@Context注入Resteasy参数

我正在使用jboss 7.1和resteasy进行基于令牌的身份validation。 我正在使用PreProcessInterceptor来拦截请求,获取令牌,从令牌中检索用户,然后根据放置在方法上的自定义注释检查用户角色。 我现在要做的是将User注入方法,如下所示。 @Path(“/doStuffWithUser”) @GET @Requires(“ADMIN”) // custom annotation public Response doStuffWithUser(@Context User user); 我知道这与这个问题非常接近,我尝试在链接的github示例中添加了不同的解决方案,但是我找不到从PreProcessInterceptor中注入用户的方法。 谢谢

Jersey:是否可以在@DefaultValue()注释中指定多个值

我正在使用Java API for RESTful Web Services(JAX-RS) ,并在Jersey实现的JAX-RS中遇到@DefaultValue注释。 这是代码片段 @GET @Path(“/query”) public Response getUserWithQueryParams( @DefaultValue(“defaultId”) @QueryParam(“from”)String from, @DefaultValue(“defaultName”) @QueryParam(“to”) String to, @DefaultValue(“mobileNo”)@QueryParam(“orderBy”) List orderBy ){ 我的第三个参数是List ,它可以有多个值 例如,我明确传递参数 users/query?from=100&to=200&orderBy=age&orderBy=name 现在我的第三个参数有值[age,name] , 但如果我没有传递任何显式参数,那么有没有办法设置多个默认值 。 ?

在JavaEE应用程序中使用Jackson作为JAXB-JSON处理器

我已经看过很多关于这个问题的文章和SO问题 – 但是我觉得它没有成功。 我的目标是在JavaEE应用程序中使用Jackson作为JSON处理器。 到目前为止我有什么? 的pom.xml 这一个 org.glassfish.jersey.media jersey-media-json-jackson 2.17 还是这一个(到底哪一个是正确的?) com.fasterxml.jackson.jaxrs jackson-jaxrs-json-provider 2.5.2 加上这个(由于这篇文章 ,因为jackson包中不再存在自动发现): org.glassfish.jersey.ext jersey-metainf-services 2.17 web.xml中 简单的REST注册: javax.ws.rs.core.Application 1 javax.ws.rs.core.Application /rest/* 一个简单的对象 import com.fasterxml.jackson.annotation.JsonProperty; public class Dummy { private String name; @JsonProperty(“username”) public String getName() { return name; } public void setName(String name) { this.name = name; } } REST资源 @GET […]

优雅的unproxy Hibernate对象方式

我正在使用Jax-RS和GSON创建Web服务。 现在,GSON无法转换HibernateProxy对象,我有一些问题。 我有一个API,所以我可以急切加载和延迟加载。 当我想要eagerload时,我使用Hibernate.initialize(…)。 但是,这似乎并不能保证对象不被代理? 那么你何时,何时以及如何解开对象? 当对象也可能与其他需要不复制的对象有关时,你如何处理这个?

定制jackson序列化的resteasy客户端

是否可以为resteasy客户端注册自定义Jackson JSON序列化程序? 我试过做类似的事情: ResteasyClient client = new ResteasyClientBuilder() .register(new CustomSerializer()) .build(); 但它没有用。 有任何想法吗?

使用JAXB在Jersey RESTful API的JSON输出中包含null元素

我有一个类,我想通过Jersey RESTful API公开。 它看起来类似于: @XmlRootElement public class Data { public String firstName; public String lastName; } 我的问题是这些字段可能为null,在这种情况下,字段从JSON输出中省略。 我希望所有领域都存在,无论它们的价值如何。 例如,如果lastName为null,则JSON输出将为: { “firstName” : “Oleksi” } 而不是我想要的: { “firstName” : “Oleksi”, “lastName” : null } 我有一个JAXBContextResolver(ContextResolver的实现),如下所示: @Provider public class JAXBContextResolver implements ContextResolver { // internal state private final JAXBContext context; private final Set types; private final Class[] […]

相当于Jersey / JAX-RS / REST资源的Servletfilter?

在常规Web应用程序中,我可以为各种路径分配一系列filter,用于validation,授权,错误,日志记录等方面。 优点是我编写servlet以专注于核心function而不必担心基础架构方面。 我可以编写正交,横切filter来进行身份validation,授权等。然后我可以在web.xml中编织它们。 查看web.xml足以向我保证我的应用程序中没有漏洞。 这可能在JAX-RS或Jersey吗? 如果没有,我最好的选择是什么?

使用JAX-RS混淆了JAX-RS和Jersey

我真的很困惑。 我已经尝试了一个带有tomcat的Jax-rs并使用了所有注释,我可以使用url调用我的服务。 所以没有Jax-rs,我可以简单地拥有一个servlet并调用我的服务。 另外,正如我所尝试的那样,jones-rs with jersey(正如我已经研究过它的JAX-RS )以及web.xml中的以下内容。 OutputUi jersey-serlvet com.sun.jersey.spi.container.servlet.ServletContainer com.sun.jersey.config.property.packages org.xxx.carbon.servlet 1 jersey-serlvet /* 然后我有一个与JAX-RS相同的注释,在GET上我可以用正确的URL调用我的服务。 我的问题是,为什么jersey使用servlet? JAX-RS没有使用servlet? 为什么使用JAX-RS ,而我们可以使用一个只是Servlet。

JAXB或JAX-RS在我的JSON响应中用引号包装数字,将它们转换为字符串。 为什么这是默认行为,以及如何解决它?

我目前正在开发RESTful API。 我有一个Employee类和一个EmployeeResource类。 我还有一个自定义DateAdapter,它将我的Date属性更改为Long timestamps。 但是,我的JSON响应将时间戳显示为字符串(用双引号括起来)而不是数字(不带双引号)。 这是我的代码的缩写版本和捕获的JSON响应… 自定义DateAdapter public class DateAdapter extends XmlAdapter { @Override public Date unmarshal(Long v) throws Exception { return new Date(Long.valueOf(v)); } @Override public Long marshal(Date v) throws Exception { return v.getTime(); } } 实体类 @Entity @javax.xml.bind.annotation.XmlRootElement @XmlType(propOrder={“createdOn”,”empId”}) public class Employee implements Serializable { private Date createdOn; private Integer empId; @Column(nullable=false) […]

如何从javax.ws.rs.core.Response响应中检索JSON响应?

我正在向API请求并获得200的响应状态代码。 api的响应包括json响应。 import javax.ws.rs.core.Response; Response response = webclient.post(SomeReqString); 如何从Web客户端响应中将json响应检索为字符串?