Tag: java ee 7

我们是否应始终使用异步JAX-RS资源用于移动后端?

我正在使用Java EE构建Mobile后端API – JAX-RS 2.0技术。 由于大多数移动客户端消耗都是异步http调用 所以我的问题是: 我应该为所有JAX-RS资源使用异步function吗? 原因如果不是? 以下是模板Mobile Async API @Path(“/async_api”) public class AsyncResource { @GET @Path(“/loadUsers”) @Produces(MediaType.APPLICATION_JSON) public void loadUsers(@Suspended AsyncResponse asyncResponse) { //TODO: ManagedExecutorService new Thread(new Runnable() { @Override public void run() { List users = loadBigUsers(); asyncResponse.resume(users); } private List loadBigUsers() { return null; // Return big list } }).start(); […]

在web.xml文件中映射WebSocketEndpoints

我正在尝试开发一个使用websocket端点并将其部署在Jetty服务器上的Java EE 7 Web应用程序。 该应用程序具有以下结构: Game/ src/ main/ java/ game/ WebSocketEndpoint.java webapp/ index.html scripts/ variousjavascriptstuff.js WEB-INF/ beans.xml web.xml 在beans.xml文件中: WebSocketEndpoint已正确注释,并且可以与Netbeans / Glassfish4一起使用,但是,应用程序必须部署在Jetty服务器上。 所以,我的问题 – 如何将websocket端点映射到web.xml文件中的URL /游戏? 我已经找到了一些映射servlet的例子,但我认为这不适用于服务器端点。 或者,有没有办法为Jetty编写web.xml文件,以便它自动发现ll带注释的类/方法(类似于上面的beans.xml)

JEE7 + WildFly(HornetQ) – 从应用程序暂停队列

我们使用WildFly + HornetQ作为我们的应用程序服务器和JMS消息队列,并且要求能够从应用程序暂停/恢复队列。 这可能吗?

通过Producer类将RequestScoped CDI Bean注入ApplicationScoped CDI Bean

本文解释了您可以将RequestScoped bean注入到ApplicationScoped bean中,并且客户端代理将在请求期间指向正确的实例: 在CDI中更大范围的bean实例中注入更短范围的Bean实例 – 它是如何工作的? 当使用一个单独的生成器类来执行一些额外的处理并生成RequestScoped bean时,这是如何工作的? 在部署到应用程序服务器后,由于不明确的依赖关系,我得到一个DeploymentException,因为托管bean和我的producer方法都是合格的。

覆盖java中的hashcode和equals方法?

我有以下课程: public class Sample implements java.io.Serializable{ //POJO with two fields and getters/setters private String name; private Integer id; //This POJO does not override equals() and hashCode() } public class B{ private Sample sample; //here i need override hashcode and equals() based on **sample** property. } 当我尝试在B类中重写equals()和hashCode()时,我在Eclipse中得到了以下错误。 字段类型com.mypackage.Sample未实现hashCode()和equals() – 生成的代码可能无法正常工作。 现在,我如何基于Sample属性比较两个B实例是否等于? 我无法修改Sample类。

如何安装Java 7 EE SDK下载为Mac OSX的.sh文件

我是在Mac OSX上开发Java的新手。 我想下载Java 7 EE SDK,这样我就可以使用Java进行桌面/移动/企业开发。 下载文件是.sh (特别是java_ee_sdk-7-jdk7-macosx-x64 ),我不熟悉。 Java 7 SE SDK是一个.dmg文件,它是我期望的Enterprise Edition而不是.sh文件的格式。 为什么SE和EE版本的文件格式不同? ( .sh vs .dmg ) 如何安装企业版是因为它是.sh文件? *注意:目前我在Mac上安装的唯一JRE是Apple版本,据我所知已被弃用。

使用JPA和Hibernate加载没有N + 1笛卡尔积的递归对象图

将项目从Ibatis转换为JPA 2.1时,我遇到了一个问题,我必须为一组对象加载一个完整的对象图,而不是出于性能原因而没有按N + 1选择或使用笛卡尔积。 用户查询将产生List ,我需要确保在返回任务时,它们已填充所有属性,包括父 , 子 , 依赖项和属性 。 首先让我解释一下所涉及的两个实体对象。 任务是层次结构的一部分。 它可以有一个父任务,也可以有子。 任务可以依赖于其他任务,由’dependencies’属性表示。 任务可以有许多属性,由properties属性表示。 尽可能简化了示例对象,并删除了样板代码。 @Entity public class Task { @Id private Long id; @ManyToOne(fetch = LAZY) private Task parent; @ManyToOne(fetch = LAZY) private Task root; @OneToMany(mappedBy = “task”) private List properties; @ManyToMany @JoinTable(name = “task_dependency”, inverseJoinColumns = { @JoinColumn(name = “depends_on”)}) private […]

使用CDI在Java EE应用程序中获取对EntityManager的引用

我正在使用Java EE 7.我想知道将JPA EntityManager注入到应用程序范围的 CDI bean中的正确方法是什么。 您不能只使用@PersistanceContext注释注入它,因为EntityManager实例不是线程安全的。 假设我们希望在每个HTTP请求处理的beginnig创建EntityManager ,并在处理HTTP请求后关闭它们。 我想到了两个选择: 1.创建一个请求范围的CDI bean,它具有对EntityManager的引用,然后将bean注入到应用程序范围的CDI bean中。 import javax.enterprise.context.RequestScoped; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; @RequestScoped public class RequestScopedBean { @PersistenceContext private EntityManager entityManager; public EntityManager getEntityManager() { return entityManager; } } import javax.enterprise.context.ApplicationScoped; import javax.inject.Inject; @ApplicationScoped public class ApplicationScopedBean { @Inject private RequestScopedBean requestScopedBean; public void persistEntity(Object entity) { requestScopedBean.getEntityManager().persist(entity); […]

如何获取现有的websocket实例

我正在开发一个使用Websockets(Java EE 7)的应用程序,以异步方式向所有连接的客户端发送消息。 每当创建新文章(我的应用程序中的参与模式)时,服务器(Websocket端点)都应发送这些消息。 每次建立与websocket端点的连接时,我都会将相应的会话添加到列表中,我可以在外部访问该列表。 但我遇到的问题是,当我访问这个创建的websocket端点时,所有客户端都从外部连接(任何其他业务类),我得到了现有的实例(如单例)。 所以,你能否告诉我一个方法,我可以得到一个websocket端点的现有实例,因为我无法创建它作为新的MyWebsocketEndPoint()因为它将由websocket内部机制创建,只要客户端的请求是接收。 对于参考: private static WebSocketEndPoint INSTANCE = null; public static WebSocketEndPoint getInstance() { if(INSTANCE == null) { // Instead of creating a new instance, I need an existing one INSTANCE = new WebSocketEndPoint (); } return INSTANCE; } 提前致谢。

我应该在哪里存储我的Java应用程序的凭据以访问第三方服务?

我应该在哪里存储我的Java应用程序的凭据以访问第三方服务? 凭据不是我的应用程序上的每个用户特定的。 它们用于访问我的应用程序正在使用的Web服务。 我知道不要将它们硬编码到我的应用程序中,但我在哪里以及如何存储它们? 我还假设它们需要加密。