Tag: jax rs

REST @FormParam为null

我有以下从浏览器传递到服务器 Status Code:204 No Content Request Method:POST Content-Type:application/x-www-form-urlencoded Form Data json:{“clientName”:”PACK”,”status”:”success”,”message”:”successful!”} 并在jsp代码中 var loginData = { clientName: cList, status: “success”, message: “successful!” }; $.ajax({ url: subUrl, type: ‘POST’, contentType : “application/x-www-form-urlencoded”, data: { json: JSON.stringify(loginData) }, success: function (data) { handleLoginResult(data); } }); 在Java代码中我有 @POST public Object persistResetPasswordLogs(@FormParam(“clientName”) String clientName) { try { log.info(“in rest […]

restful call MediaType的MediaType格式错误:“*; Q = 0.2”

尝试使用POST方法执行restful Web服务。 这是我的界面的相关部分: @Path(“/customers”) public interface CustomerResource { @POST @Consumes(MediaType.APPLICATION_XML) public Response createCustomer(InputStream is); ….. } 实施: // Create customer public Response createCustomer(InputStream is) { logger.debug(“In createCustomer”); Customer customer = readCustomer(is); customer.setId(idCounter.incrementAndGet()); customerDB.put(customer.getId(), customer); logger.debug(“Created customer ” + customer.getId()); logger.debug(“Out createCustomer”); return Response.created(URI.create(“/customers/” + customer.getId())).build(); } 客户打电话(相关部分) URL postUrl = new URL(“http://localhost:8080/ShoppingApplication/rest/customers”); HttpURLConnection connection = […]

HTTP 415不支持的媒体类型

我创建了一个示例Web服务来进行调用。 我正在使用Jersey JAX-RS和Maven。 web.xml中 provider-serlvet com.sun.jersey.spi.container.servlet.ServletContainer javax.ws.rs.Application org.is.ws.provider.rest.ProviderAggregateApplication com.sun.jersey.api.json.POJOMappingFeature true 1 provider-serlvet /* 的pom.xml com.sun.jersey jersey-client 1.19 com.sun.jersey jersey-core 1.19 com.sun.jersey jersey-server 1.19 com.sun.jersey jersey-servlet 1.19 com.sun.jersey jersey-json 1.18 org.codehaus.jackson jackson-mapper-asl 1.9.13 方法调用: @POST @Path(RESOURCE_PATH) @Produces(“text/plain”) public String getPCP(){ return “Hello”; } 原始要求: POST http://localhost:9080/sep/pas/getPCP HTTP/1.1 Connection: close Accept-Encoding: gzip,deflate Content-Type: application/json Content-Length: 69 Host: […]

MultivaluedMapexception

我试图运行一个大气样本,但当我运行Restful Web服务时它给我跟随错误,我想因为下面的代码它生成错误,我不知道有什么问题我使用glassfish 3和Netbeans IDE,这是示例链接 @Broadcast({XSSHtmlFilter.class, JsonpFilter.class}) @Consumes(“application/x-www-form-urlencoded”) @POST public String publishMessage(MultivaluedMap form) { String action = form.getFirst(“action”); String name = form.getFirst(“name”); if (“login”.equals(action)) { return (“System Message” + “__” + name + ” has joined.”); } else if (“post”.equals(action)) { return name + “__” + form.getFirst(“message”); } else { throw new WebApplicationException(422); } } INFO: […]

@JsonView注释如何用于嵌套实体?

我试图为我的嵌套实体使用@JsonView注释。 更清楚的是,假设我们有2个实体,每个实体都有自己的视图类。 public class JsonViewAddress { //some view classes } public class Address { //fields annotated by JsonViewAddress’s classes and @JsonProperty } public class JsonViewPerson { //some view classes } public class Person { //some fields (yes annotated with JsonViewPerson classes and @JsonProperty) //also assume that this is annotated with any JsonViewPerson’s class. private Address […]

JAX-RS:不区分大小写的路径

我已经通过@Path注释将REST服务/方法锚定到URI模板。 看起来像往常一样: @GET @Path(“/message”) @Produces(“application/json”) public Response getMessage() { … } 但我的REST服务必须不区分大小写。 现在我在我的所有代码中使用@Path中的正则表达式: @GET @Path(“/{message:[mM][eE][sS][aA][gG][eE]}”) @Produces(“application/json”) public Response getMessage() { … } 这看起来很奇怪。 有没有我在规范中忽略的东西(我希望不是,看到这个 )或者有任何JAX-RS实现的特殊function吗? 现在我正在使用JBoss RESTeasy 。 谢谢。

Resteasy可以查看JAX-RS方法的参数类型吗?

我们使用Resteasy 3.0.9作为我们的JAX-RS Web服务,最近切换到3.0.19,我们开始看到很多RESTEASY002142: Multiple resource methods match request警告。 例如,我们有以下方法: @Path(“/{id}”) public String getSome(UUID id) @Path(“/{id}”) public String getSome(int id) 我不确定它在3.0.9中是如何工作的,可能,我们非常幸运,因为Resteasy似乎从所有候选人中选择了第一种方法(以及3.0.19种候选方法)。 一种解决方案是明确指定正则表达式: @Path(“/{id : [0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}}”) 但有没有办法以某种方式告诉Resteasy查看方法参数并自动构造适当的正则表达式?

如何将对象从ContainerRequestFilter传递给Resource

我应该如何/应该将一个对象从ContainerRequestFilter传递到(JAX-RS)Resteasy版本3.0.11中的(后匹配)资源,该版本已嵌入并使用Guice?

@RolesAllowed总是在Jersey资源上拒绝(禁止)

我正在尝试根据我通过Jersey / JAX-RS公开的资源的角色设置身份validation。 此资源存在于Glassfish实例中,其中基于角色(特别是通过@RolesAllowed)的身份validation当前正在按需运行。 我在servlet容器中运行Jersey: com.sun.jersey.spi.container.servlet.ServletContainer 并在我的资源上执行基本身份validation; 该要求正在按预期执行。 我还为Jersey提供了以下初始化参数: com.sun.jersey.spi.container.ResourceFilters com.sun.jersey.api.container.filter.RolesAllowedResourceFilterFactory 但是,当我尝试实际添加@RolesAllowed注释时,所有访问都会失败。 例如: @Path(“/my/resource”) @ManagedBean @RolesAllowed({“SYSTEM”}) public class Resource { // Accesses with credentials for a user that has the SYSTEM role fail! } 如果我注入安全上下文并调用context.isUserInRole(),则会为所有角色返回false。 非常奇怪的是,如果我删除此资源的@RolesAllowed注释,并使用有效凭据发出请求,则此类可以成功访问EJB,这需要用户与我最初尝试测试的角色相同。 似乎泽西可能正在使用错误的SecurityContext进行身份validation,或者其他一些。 还有其他人经历过这个吗?

如何在JAX-RS中注入ApplicationContext

我正在使用Spring和JAX-RS编写Web服务,我对以下内容感到困惑 这是我的服务例子 @Path(“/users”) public class UserService { @GET @Path(“{id}”) @Produces(“application/xml”) public User getById(@PathParam(“id”) int id) { ApplicationContext context = new ClassPathXmlApplicationContext(“beans.xml”); UserDAO userDAO = (UserDAO) context.getBean(“userDao”); return userDAO.getById(id); } } 这是我的beans.xml 我想知道这是否是每次调用资源时加载Application上下文的正确技术,如果不是,我应该如何更改它?