问题标签 [java-ee-7]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
jms - JMS 2.0:主题上的 Shared-Durable-Consumer 与队列上的异步消费者;参考。GlassFish 4.0 官方文档/javaee-tutorial Java EE 7
参考:官方 GlassFish 4.0 文档/javaee-tutorial Java EE 7
首先,让我们从目标类型开始:主题。根据 GlassFish 4.0 教程,“<strong> 46.4 编写高性能和可扩展的 JMS 应用程序”部分:
本节介绍如何使用 JMS API 编写能够稳健地处理大量消息的应用程序。
在“<strong> 46.4.2 使用共享持久订阅”小节中:
SharedDurableSubscriberExample.java 客户端展示了如何使用共享持久订阅。它展示了共享持久订阅如何将持久订阅的优点(当客户端不活动时订阅保持活动状态)与共享消费者的优点(消息负载可以在多个客户端之间分配)相结合。
当我们按照“<strong> 46.4.2.1 To Run the ShareDurableSubscriberExample and Producer Clients ”运行此示例时,它为我们提供了与前面关于目标类型队列示例相同的效果/功能:如果我们遵循“<strong> 46.2. 6.2 运行异步消费者和生产者客户端”,从第 5 点开始——并使用 2 个消费者终端窗口和 1 个生产者终端窗口稍微修改它。
是的,“<strong> 45.2.2.2 Publish/Subscribe Messaging Style ”部分确实提到:
JMS API 通过允许应用程序创建持久订阅,在一定程度上放宽了这一要求,这些订阅接收在消费者不活动时发送的消息。持久订阅提供了队列的灵活性和可靠性,但仍允许客户端向多个收件人发送消息。
.. 无论如何,“<strong> 46.4 编写高性能和可扩展的.. ”部分都是队列样式的示例——每个消费者一条消息:
添加到主题订阅的每条消息仅由一个消费者接收,类似于添加到队列的每条消息仅由一个消费者接收的方式。
什么是精确的技术答案:为什么在这个例子中,在主题上使用 Shared-Durable-Consumer 应该是,并在“<strong>高性能和可扩展 JMS 应用程序”与使用异步-队列中的消费者?
java - 无法获得连接,数据源无效 - Netbeans,MySQL
我正在关注 Netbeans 网站的教程:
https://netbeans.org/kb/docs/web/mysql-webapp.html
在这一步之前一切正常:实现 JSTL 代码 STEP 4 应该显示列表的位置我收到以下错误:
note 异常的完整堆栈跟踪及其根本原因可在 GlassFish Server Open Source Edition 4.0 日志中找到。
我想 netbeans 仍然尝试连接到 Derby DB。如何将其更改为 MySQL DB?我正在使用 Java EE7、MySQL、Netbeans、Glassfish 4
json - Java-EE 7 Json Spec - 读/写能力?
刚开始使用 JSON 参考库 ( http://docs.oracle.com/javaee/7/api/javax/json/package-summary.html )编写一些代码,遇到了一个简单的问题。使用简单但“丑陋”的解决方案。
JsonObjects 是“不可变的”,尽管有 Map 类的支持,这意味着我不应该修改它们。
我想非常动态地构造一个对象,比如说,获取一个数组并向其中添加一个元素,一个完整的“读/写”模型。
然而 JsonObjectBuilder 似乎实现了一个“只写”接口——你可以把东西放在那里,但你永远不能读它们(不是子类映射或任何东西吗?),所以如果你把 ArrayBuilder 放在那里,你有如果您以后想要添加到它,请跟踪它(因为没有办法“读取”数组构建器并且......)
所以接缝有两个接口,一个是只读的,一个是只写的,唯一可能的转换是只写到只读,没有回头路,也没有办法读/写 JSON 结构。
我觉得我错过了一些非常明显的东西......
显而易见的“脏”解决方案当然是将数据存储在我自己的结构中,然后在构建时将其转换为 JSON 构建器,但这对需要修改并传递它的 JSON 接收器并没有真正帮助. 我的对象与其对象之间的双向接口,或者将只读 json(递归)转换回构建器并在此过程中对其进行修改的转换器...
我错过了什么?为什么我似乎必须构建自己的 JSON 表示并将其流入和流出 RO / WO 模型?
(是的,我确实尝试过谷歌搜索,我想出的任何东西都没有帮助,这让我更加困惑......)
jakarta-ee - 缓存变化缓慢的资源
我正在检索需要大约 400 毫秒才能检索并转换为 Java 对象的远程资源。此对象有可能在对我的 JAX-RS Web 服务(对象所有者)的大量请求中被引用。是否有一些内置的缓存机制允许我通过 id/hash 存储对象并在稍后的时间点检索它(如哈希图,但通过某种方式在 3600 秒后使资源过期)。
我看过: https ://blogs.oracle.com/cwebster/entry/caching_static_resources_in_glassfish
它看起来很有希望,但链接的 ExpiresFilter 不再存在,我可以找到它,它只解决了远程系统调用 JAX-RS 方法的问题,而许多其他方法依赖于该方法(因此该方法直接在 java 中调用)
eclipse - 安装后我无法将 Java EE SDK 包含在我的项目中
我在这里头晕目眩!
我从这个链接 下载了Java EE 7 SDK http://www.oracle.com/technetwork/java/javaee/downloads/java-ee-sdk-7-downloads-1956236.html
在安装过程中。我被迫安装GlassFish。与Java SE安装不同,我无法选择Java EE库的位置!
现在我只剩下GlassFish了!我知道我迟早必须将我的应用程序部署到应用程序服务器中,但我只需要将Java EE库包含到我的 Eclipse java 项目中(甚至不是 eclipse web 项目。我使用ant组装我的WAR)。
我相信我可以继续在我的Run-Jetty-Run(从 Eclipse 运行码头的Eclipse插件)中包含Java EE库,运行配置类路径,并毫无问题地启动我的应用程序。
所以我的问题是:
- Java EE SDK 文件在哪里?!?!//在答案的评论中回答
- 为什么我被迫使用 GlassFish?//下面回答
- 我在这里有什么误解吗?我是否正确理解我可以在我的应用程序的类路径中包含 Java EE 库,它在任何 servlet 容器中运行并且午餐我的应用程序没有任何问题?//下面回答
- 我下载了 GlassFish服务器适配器。配置了服务器,但是当我尝试包含GlassFish的运行时库时,我找不到任何配置的服务器运行时库!检查所附图片。//在答案的评论中回答
- 是否仍然可以使用 ant 组装 WAR 文件,无需库,并通过Eclipse在GlassFish上运行它?//下面回答
我正在尝试用最少的抽象来做事情,以了解更多并了解真正发生的事情。这就是为什么我更喜欢使用来自常规Eclipse java 项目而不是动态 Web 项目的ant来组装我的WAR文件。
java - 如何使用 Arquillian 测试登录/身份验证 - Java EE 7
我们有一个 Java EE 7 应用程序并使用 Arquillian 进行测试。现在我们要检查当前登录用户的一些权限。我的问题很基本,在测试用例中如何登录用户?我已阅读ProgrammaticLogin 在 arquillian 测试和Embedded Glassfish、安全性和 Arquillian 问题中不起作用,但没有明确回答。我目前的方法是这样的:
现在,当我尝试运行它时,会得到一个 LoginException,声称我没有为“fileRealm”配置 LoginModule。但是“fileRealm”不是我要搜索的领域(我第一次将它放在那里进行测试,但后来我将其更改为“secureJDBCRealm”,这是我们为 GlassFish 定制的安全领域)。我们arquillian-glassfish-embedded-3.1
用于测试。
- 有人知道在哪里为 Arquillian 定义领域吗?
- 为什么我的应用程序一直在寻找 fileRealm?这是默认值吗?(在这里找不到任何规格)
web-services - JAXB marshalling fails in webservice call
I have a web service that throws an exception when called. It fails with marshalling my entity. Can anyone see what im doing wrong. (I have omitted lots of code for readability)
My entities
Web service
Exception
java - 在 ArrayList 中按日期对 ArrayList 列表进行排序
我有一个 ArrayList 列表,每个 arraylist 由一个日期和一个字符串组成。我想根据数组列表中的日期对列表进行排序。我试图寻找答案,但无法在网上找到。大多数示例都是按日期对对象列表进行排序。有什么建议么?
附言。我想在返回列表之前对列表进行排序
java - 从 Java/EE5 迁移到 EE7
我目前正在尝试将大型 EE5 应用程序迁移到 EE7,但我很不幸地找到了很好的文档来执行此步骤,而无需先移植到 EE6。
我的问题是:是否有一份文件准确描述了我想要的内容?或者,这项任务是否“冒险”只需一步完成?
java - 使用 CDI 在 Java EE 应用程序中获取对 EntityManager 的引用
我正在使用 Java EE 7。我想知道将 JPAEntityManager
注入应用程序范围的CDI bean 的正确方法是什么。您不能只使用@PersistanceContext
注释注入它,因为EntityManager
实例不是线程安全的。假设我们希望EntityManager
在每个 HTTP 请求处理开始时创建并在处理 HTTP 请求后关闭。我想到了两个选择:
1. 创建一个请求范围的 CDI bean,它具有对 an 的引用EntityManager
,然后将 bean 注入应用程序范围的 CDI bean。
在这个例子中 anEntityManager
将在创建时创建,并在销毁RequestScopedBean
时关闭。RequestScopedBean
现在我可以将注入移动到某个抽象类以将其从ApplicationScopedBean
.
2. 创建一个产生 实例的生产者,EntityManager
然后将该EntityManager
实例注入应用程序范围的 CDI bean。
在这个例子中,我们还将EntityManager
在每个 HTTP 请求中创建一个 which,但是关闭呢EntityManager
?处理完HTTP请求后也会关闭吗?我知道@PersistanceContext
注释注入了 container-managed EntityManager
。这意味着EntityManager
当客户端 bean 被销毁时 an 将被关闭。在这种情况下,什么是客户端 bean?是 ,ApplicationScopedBean
在应用程序停止之前永远不会被销毁,还是EntityManagerProducer
? 有什么建议吗?
我知道我可以使用无状态 EJB 而不是应用程序范围的 bean,然后只EntityManager
通过@PersistanceContext
注释注入,但这不是重点:)