- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在从事一个企业项目,该项目有一个 EJB 模块和一个在 GlassFish v3.1、Weld v1.1 和 Jersey 上运行的 Web 项目。在 EJB 中,我定义了一个实体类 Manufacturer
并生成了一个 session 外观 ManufacturerFacade
。
在 Web 项目中,我希望通过 REST 公开 Manufacturer
实例。为此,我创建了以下资源:
ManufacturersResource
是一个容器资源,它返回存储在数据库中的所有制造商的列表。它通过注入(inject) ManufacturerFacade
并调用 findAll()
方法来实现。缩略代码:
@RequestScoped
@Path("/manufacturer")
public class ManufacturersResource {
@Inject
private ManufacturerFacade manufacturerFacade;
@GET
@Produces("application/xml")
public List<Manufacturer> getManufacturers() {
return manufacturerFacade.findAll();
}
}
这个资源还有一个子资源:
@Path("{id}")
public ManufacturerResource getManufacturer(@PathParam("id") String id) {
return ManufacturerResource.getInstance(id, manufacturerFacade);
}
ManufacturerFacade
如下所示:
public class ManufacturerResource {
@Inject
private ManufacturerFacade manufacturerFacade;
private long id;
private ManufacturerResource(String id) {
this.id = Long.parseLong(id);
}
public static ManufacturerResource getInstance(String id,) {
return new ManufacturerResource(id);
}
@GET
@Produces("application/xml")
public Manufacturer getManufacturer() {
return manufacturerFacade.find(id);
}
但是我们在不同的类中,ManufacturerResource
没有被框架实例化,因此没有注入(inject) ManufacturerFacade
。
我知道我可以简单地将外观从容器资源 (ManufacturersResource
) 通过构造函数传递到项目资源 (ManufacturerResource
) 但是否有可能以某种方式获取 DI对它们进行处理还是通过构造函数传递它是一个完美的解决方案?
谢谢!
最佳答案
您应该能够为此使用 ResourceContext 并使用 setter 传递 id。如果它不起作用,请提交错误 (http://java.net/jira/browse/JERSEY)。
@Context
private ResourceContext resourceContext;
@Path("{id}")
public ManufacturerResource getManufacturer(@PathParam("id") String id) {
ManufacturerResource r = resourceContext.getResource(ManufacturerResource.class);
r.setId(id);
return r;
}
关于java - 泽西 (REST) 子资源 CDI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7456755/
我尝试使用 Jersey/Spring/Hibernate 部署应用程序,每次我尝试部署它时都会抛出此异常: SEVERE: Context initialization failed jav
这个问题已经有答案了: Java get ResultSet from SQL Array is Failing (1 个回答) 已关闭 8 年前。 我当前在尝试运行此 Sql 命令时遇到此异常:SE
我想使用 Jetty + Jersey 生成 JSON。我的 POM.XML 类似于这篇文章:How do I update example to work with latest versions
我面对的是 Jersey 2.7。这是我的服务: package edu.srv.rest; import javax.ws.rs.GET; import javax.ws.rs.POST; impo
我很难理解 Jersey 的注入(inject)机制。 JAX-RS 规范 (http://jsr311.java.net/nonav/releases/1.1/spec/spec3.html#x3-
我使用 jersey 实现了 REST 服务。通信层通过 ssl 进行保护。在客户端,我收到了这样的要求:在调用服务并验证服务器端的请求之前,我应该签署 xml。 http://docs.oracle
我用Tomcat做了一个Jersey maven项目,现在我想将它连接到Mysql数据库。我进入数据源浏览器 -> 数据库连接 -> 新驱动程序定义,但是当我选择 MySQL JDBC Driver
我正在从事一个企业项目,该项目有一个 EJB 模块和一个在 GlassFish v3.1、Weld v1.1 和 Jersey 上运行的 Web 项目。在 EJB 中,我定义了一个实体类 Manufa
我花了太多时间(我会说超过 10 个小时)试图弄清楚如何获取基本的 json 调用(来自 angularjs)以在我的 Jersey 2.4 上打开和处理。我已经在谷歌上尝试了所有可能的结果,但仍然得
最近我开始使用 SecurityEntityFilteringFeature。放置在 Jersey 环境中的代码下方。 environment.jersey().register(SecurityEn
我有一个包含多个字段和文件上传的 HTML 表单。 在 Java 方面,我收到了如下表单,并且有效: @Component("org.phenotips.metabolites.FileUploade
我想为资源的 REST 接口(interface)提供这样的方法 @POST @Consumes(MediaType.APPLICATION_JSON) public void add(@Auth U
我是 Restful Web 服务的新手。我想通过 Jersey 客户端访问服务器。但我收到了 500 错误。我想做的是通过客户端提交表名称并以 JSON 形式检索表内容。谁能找到这里的错误吗? 这是
我在部署 Web 应用程序时遇到以下异常。使用weblogic 12c (JerseyWebTarget.java:71) at org.glassfish.jersey.cl
完整存档: google drive (Tomcat 7.0) 我重复了 Jersey Restful exception 中的代码 本地测试网址 - http://localhost:8080/te
我正在使用 jersey 1.8、tomcat 7 和 spring 4 构建 jersey Rest api 此服务将具有基本 HTTP 身份验证,并将提供任何来源的信息(它将由来自不同域的客户使用
我正在从现在只读的谷歌群组 App Engine for Java 中重新提出一个 Unresolved 问题,因为我有完全相同的问题。 ( original ) 我使用 jersey、jaxb 和
检测问号 我需要实现一个协议(protocol),用户可以在该协议(protocol)中提供附加到 URL 的问号,以便检索有关所提供资源的附加信息。我知道 URL 资源后面的问号表示查询参数。不幸的
我正在用 Jersey 编写一个 Restful Web 服务,这是示例代码: @GET @Produce(MediaType.APPLICATION_JSON) public String find
我有客户像这样传递 ID:/v1/path?id=1,2,3 我拥有的和想要的 我有一个 Dropwizard/Jersey 的资源类。我想在资源的 GET 方法中将查询参数 id=1,2,3 显示为
我是一名优秀的程序员,十分优秀!