用户实体类:
@Entity
public class User implements Serializable {
@OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL, orphanRemoval = true)
public List<Site> sites;
用于访问数据库的外观类:
@Stateless
public class UserFacade extends AbstractFacade<User, Long> {
@PersistenceContext
private EntityManager em;
...
}
用户注入的资源类:
@RequestScoped
public class Resource {
@Inject
UserFacade userFacade;
@Inject
HttpServletRequest request;
@Produces
public User getUser() {
final String name = request.getUserPrincipal().getName();
// ... find user in database ...
}
}
和泽西处理程序:
@Stateless
@Path("/sites")
public class Sites {
@EJB
SiteFacade siteFacade;
@Inject
User user;
...
现在的问题是:
当我想访问用户时。站点列表,我得到了延迟加载异常。但很明显,因为User是由RequestScoped提供程序注入的,所以它应该使用相同的EntityManager会话刷新每个请求。正当
我是否可以将每个rest请求的用户实体注入到Rest处理程序类中?
实体管理器
绑定到事务,而不是请求范围。
因此,在两个不同的事务中调用< code>User producer方法和您的< code>Sites业务方法,这解释了< code>LazyLoadException。
问题内容: 我正在使用jersey 2.17和HK2创建一个简单的rest应用。我有一个拒绝任何没有“ currentuser” cookie的请求。 我有这样的事情: 我想编写比这更优雅的东西。像这样: 我对hk2真的很陌生,并且真的很难找到方法。 我只是在要求正确的接口来实现(或扩展类)。 问题答案: 您要找的不是一件容易的事。解决此问题的一种方法是在内部设置,如此处所示。这不涉及与HK2的任
我有一个JAR文件,其中包含一个请求范围Bean。(一个注释为的类)。 我有另一个Web服务项目(作为WAR文件构建)。上述JAR文件位于WAR文件的文件夹中。 我试图的类到Web服务项目中的一个类中。 我正在得到一个 这两个项目都有JAR文件,WAR文件包含一个空的。我已经研究这个问题好几天了。请帮忙。 谢谢
null 所以我创建了SFFactory类并在ApplicationConfig中注册它。 Sffactory.java ApplicationConfig.java
我正在开发一个java脚本客户端应用程序,在服务器端我需要处理CORS,所有我用JAX-RS和Jersey编写的服务。我的代码: 感谢佛普尼
问题内容: 因此,我知道您正在指定类型,但是为什么呢?在什么条件下会很重要。例如,如果我具有以下方法,并且注释掉@Produces批注,它仍将返回JSON。 API文档说:“如果未指定,则容器将假定可以产生任何类型。” 那么,为什么我不希望容器承担这种责任呢? 问题答案: 我认为这取决于您的JAX- RS实现,但这是泽西对其@Produces批注的解释:https ://jersey.java.n
例如,Foos的资源可能如下所示: 对于酒吧: