问题标签 [tomee-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.
maven - NoClassDefFoundError:TomEE 启动时的 javax/faces/component/UIViewAction
我正在尝试将一个 Web 项目(所有 JAR 中WEB-INF/lib
)迁移到一个 Maven Web 项目(所有 JAR 中pom.xml
)。
该项目使用以下库:
- JSF 2.2
- PrimeFaces
- 靴子脸
- OmniFaces
它在 TomEE 上运行。
TomEE 启动时出现以下错误:
NoClassDefFoundError: javax/faces/component/UIViewAction
但是 JSF2 库是由 TomEE 在类路径上提供的。
这是我的pom.xml
。
谢谢你的帮助。
eclipse - Tomee 上的会话重新加载失败(在 Eclips 中开发的 JSF 项目)
我有一个在 Eclipse 中开发的 JSF 项目,我最近从使用托管 bean/属性的 Tomcat 8 + Mojarra JSF-2.2 转移到使用 CDI 环境的 Tomee 7 + MyFaces-2 以便能够将 Omnifaces 添加到项目中。几个小时后,除了会话重新加载外,一切似乎都在工作。保存启动重新加载的代码更改时出现以下异常(它与 Tomcat 8 一起正常工作):
我在加载会话时发现了一些类似的问题,但这些总是不同的异常(一些 IO 或未找到类异常)。
你们中有人知道服务器或项目出了什么问题吗?
使用的库:
- BootsFaces-OSP-0.8.1-dist-default.jar
- botdetect-3.0.alpha3.jar
- javax.servlet.jsp.jstl-1.2.1.jar
- javax.servlet.jsp.jstl-api-1.2.1.jar
- omnifaces-2.2.jar primefaces-5.3.jar
网页.xml:
cdi - 如何从@WebFilter 访问@SessionScoped bean
我正在开发 AuthenticationFilter 以在用户未登录时重定向用户。我使用的是 TomEE 7.0.0-M2,因此支持 Java-EE7。
身份验证过滤器
登录豆
问题是注入的 LoginBean 不是 login.xhtml 中的实例。所以我无法验证用户是否成功登录。
LoginBean 不在会话属性中,但我在这里找到了正确的 loginBean ,但我不知道如何访问它。但看起来 bean 在 CDI 中,但我如何从 WebFilter 访问它?
jax-rs - 测试嵌入 Arquillian 和 Tomee 的 JAX RS 服务
我正在使用 Tomee 7.0.0-M1 开始一个新项目,我想使用 Arquillian 测试 JAX-RS 服务,但是当我从 Intellilj 运行测试时出现以下错误:
奇怪的是,如果我使用 maven 从控制台运行测试,那么我会得到一个不同的异常:
我不确定我做错了什么。我的源文件如下:
测试
arquillian.xml
pom依赖
任何的想法?
谢谢!!
concurrency - MDB 并发实例未启动
我有一个要求,我需要 40 个线程来执行某个任务(合并),大约 20 个线程来执行另一个任务(持久性)。合并比持久化花费大约 5 倍的时间。我正在使用消息驱动的 bean 来完成这种并发性。
我使用以下配置创建了一个 MDB RecordMerger
我为坚持做了类似的事情
我在tomee.xml中的配置如下
记录合并队列的生产速度非常快,因此记录合并队列中总是有新元素。记录合并队列将数据放入记录持久性队列中。
我面临的问题是,当记录合并配置为使用 40 个线程时,我的 tomee 服务器没有实例化记录持久性 MDB,这导致记录堆积在该队列中。如果我将记录合并的 maxSession 属性减少到 20,则两个 MDB 都开始实例化。
谁能指导我我需要做什么来确保两个 MDB 都在运行并且记录合并有 40 个线程。
jakarta-ee - 将 Java EE 资源注入动态加载的类
这是一个由 Java EE 应用程序在运行时生成/加载的类(@Default Bar
bean 由同一应用程序提供):
以下是它的实例化方式:
使用 JBoss/WildFly,所有字段都被正确注入,包括 EntityManager、EJB、UserTransaction 等。
使用 TomEE 和 GlassFish,Java EE 资源将被忽略,并且只有bar
字段被注入。
- 这应该被认为是 TomEE 和 GlassFish 中的一个错误,还是只是 JavaEE/CDI 规范中的一个白点,在应用程序服务器中以不同的方式实现?这绝对不是纯粹的 CDI 问题,因为 GlassFish 和 WildFly 都使用相同的 CDI 实现,即JBoss Weld;
- 如何使用 TomEE 和 GlassFish 实现上述目标?可移植的解决方案是首选,但一些依赖于服务器的代码是可以的(我担心这种问题是不可避免的)。
总体目标是为动态代码提供全方位的 CDI 注入(简单@Inject
以及 Java EE 资源,如,@PersistenceContext
等)。我的第一次尝试是动态生成一个包含注释字段 + 动态业务逻辑的类(是的,它有效,尽管仅在 WildFly 中)。一般来说,我有一组这样的动态注入定义:@Resource
@EJB
, ,等中Annotation
的一个在哪里,我想获得一个实例,如果它在 CDI 托管 bean 中,则该实例将被注入。因此,可以接受一种假设方法,该方法将采用注入元数据并返回相应的实例。Inject
PersistenceContext
Resource
EJB
jakarta-ee - @Inject 初始化对象失败
我正在使用 tomee 服务器来运行我的 javaEE 应用程序。我写了一个注入对象的过滤器。但是该对象似乎没有被实例化:
以下是我的代码:
过滤器.java
教员.java
我正在获得 NPE。以下是堆栈跟踪:
以下是正在使用的工件的版本:
我已经尝试在 META-INF 和 WEB-INF 中包含 beans.xml,但我仍然看到 NPE。有人可以让我知道我做错了什么吗?
java - 如何测试 Java EE7 Websocket
我已经使用 Java EE 7 提供的 api 实现了一个 WebSocket。此外,我还实现了一个客户端,它可以毫无问题地请求我的 WebSocket。为了确保在执行一些代码更改时这仍然有效,我想实现测试,这些测试也可以在构建服务器上运行,例如 Jenkins CI,而不仅仅是本地。我正在使用 Maven。
这是我的服务器端点:
这是我的客户端端点:
我还有一些其他类在使用 CDI 的构建服务器上进行了测试。为了能够使用 CDI 和其他应用程序容器功能,我正在使用EJBContainerRunner
带有 apache TomeEE/OpenEJB 的版本7.0.0-M3
,它启动嵌入式 TomEE 运行我的测试并随后将其关闭。使用这种方法,我没有要调用的 URL。这适用于例如 JAX-RS REST 服务,您可以在测试中简单地调用您的类方法并检查响应。但是你如何用 WebSockets 做这样的事情呢?由于缺少Session
.
我当前的测试如下所示:
这适用于在我的本地机器上运行 TomEE,例如tomee-maven-plugin
. 但是这种方法不能在构建服务器上完成。有没有比配置特殊端口或设置虚拟机进行测试更简单的方法?
提前致谢!
java - 带有 JSF 2.2 ConfigurationException 的 TomEE pluME
当我开始 tomEE 部署我的项目时。我得到错误。
我正在使用 JSF 2.2、apache-tomee-7.0.0-M3-plume 和 Primefaces 最新版本。
我搜索了但我没有找到任何解决方案。
TomEE 错误
Web.xml
eclipse - 如何在 Eclipse 中使用 Tomcat 8.5.x 和 TomEE 7.x?
我需要在 Eclipse中设置一个 Tomcat 8.5.x服务器版本。当我尝试使用 Eclipse GUI 创建服务器时,我在 Eclipse Luna 中选择了最新版本“ Apache Tomcat v8.0 ”。当我选择它并浏览到我的 Tomcat 8.5.x 服务器时,我收到以下阻塞错误消息:
此目录中的 Apache Tomcat 安装版本为 8.5.0。预计安装 Tomcat 8.0。
尝试内部基于 Tomcat 8.5 的 TomEE 7.x 时出现相同的错误。
在Eclipse Neon中,选择的最新版本是“ Apache Tomcat v9.0 ”,它给出了同样的错误。甚至没有“ Apache Tomcat v8.5 ”选项。
有没有办法在 Eclipse 中使用 Tomcat 8.5和 TomEE 7.x?如何?