问题标签 [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.
java - 未使用限定符找到 API 类型 [org.atmosphere.cpr.AtmosphereResource]
我正在使用 Atmosphere 做一个 websocket 应用程序,我正在尝试在我自己的环境中重现聊天示例。我正在使用 TomEE 7 plus 服务器,并且该示例在其上运行良好。
我将 maven 依赖项添加到了大气运行时和 servlet 3.0,就像在示例中所做的那样
然后我将我的 servlet 放入 web.xml 文件中
但是当我尝试AtmosphereResource
在我的Chat
课堂上注入时,我得到了这个错误:
哈和另一个有用的信息我不使用ObjectMapperInjectable.java
所以我没有META-INF/Services/org.atmosphere.inject.Injectable
文件(它在示例中使用)。我的项目中有一个 beans.xml,我可以将我的业务服务注入Chat.java
我知道它找不到默认限定符,但我不明白为什么。
我是否需要为 AtmospherResource 接口指定限定符(我不这么认为)?没有默认实现吗?
有没有人解决了同样的问题?
谢谢
编辑
经过一些测试,它似乎来自 beans.xml。如果我将它添加到 META-INF/ 下的原始示例项目中,我会遇到同样的错误。
java - TomEE 7 上 bean 验证的自定义异常映射?
语境
我们使用带javax.ws.rs.ext.ExceptionMapper<Exception>
注释的 as@javax.ws.rs.ext.Provider
来处理所有异常。在内部,这ExceptionMapper
是区分不同类型的异常以确定要向客户显示哪些信息。
在 的情况下javax.validation.ConstraintViolationException
,我们返回有关哪个字段无效以及原因的附加信息。
问题
我们刚刚从 切换TomEE 1.7.2 JAX-RS
到TomEE 7.0.0-SNAPSHOT webprofile
。
随着TomEE 1.7.2 JAX-RS
我们使用openejb.jaxrs.providers.auto=true
系统属性,我们ExceptionMapper
会被自动找到并使用。
TomEE 7.0.0-SNAPSHOT webprofile
不再需要使用该属性来从自动发现中受益。
然而,也被发现,org.apache.cxf.jaxrs.validation.ValidationExceptionMapper
现在作为ExceptionMapper
. javax.validation.ConstraintViolationException
我们自己的ExceptionMapper
没有运行,因此客户端无法获得有关验证期间出错的信息。
我们自己的ExceptionMapper<Exception>
仍然处理所有其他异常。
我已经尝试过的
“复制”专门的ExceptionMapper
我将自己的资源放在我的javax.ws.rs.ext.ExceptionMapper<javax.validation.ConstraintViolationException>
资源旁边,希望它优先于 CXF 资源。
仍然org.apache.cxf.jaxrs.validation.ValidationExceptionMapper
优先。
更新:事实证明这确实有效。我不知道为什么我的初始测试不起作用。
禁用过ValidationExceptionMapper
孔system.properties
在我注意到的更新日志中TomEE 7.0.0-SNAPSHOT
TOMEE-1336支持自动发现的提供者的 classname.activated = true/false
查看相应的变更集,我希望我可以org.apache.cxf.jaxrs.validation.ValidationExceptionMapper
通过将 org.apache.cxf.jaxrs.validation.ValidationExceptionMapper.activated=false 添加到我们的system.properties
.
这仍然没有效果。
问题
- 这是 CXF 还是 TomEE 行为?
- 我们如何配置哪个
ExceptionMapper
优先?
jakarta-ee - TomEE 7.0.0 上 ManagedScheduledExecutorService 任务中的事务?
语境
我想使用ManagedScheduledExecutorService
. 我通过 an获得我Runnable
的 s/ s ,因此我的任务中有可用的注入功能。Callable
Instance
我的应用程序运行在TomEE 7.0.0-SNAPSHOT webprofile
.
问题
当这些任务正在访问数据库时,它们需要一个事务。但是,里面的Runnable
/Callable
没有事务是活跃的。
用户交易
ManagedScheduledExecutorService的文档指出
如果需要事务,请使用 javax.transaction.UserTransaction 实例。通过使用 Resource 注释请求注入 UserTransaction 对象,可以使用 UserTransaction 实例(...)。
然而,注入
是null
在调用任务时。
无状态bean
我采取的另一种方法是在我的任务中注入一个无状态 EJB,希望这会为我创建一个事务。
这导致启动时出现以下异常:
测试用例
我在 Github 上创建了一个小型测试用例项目。它包含两个分支,说明了上述问题。
问题
- EJB不应该
@Stateless
正常工作,因为所有实例都是使用注入获得的吗? - 为什么
@Resource
注入UserTransaction
失败?
java - TomEE 嵌入/捆绑单个应用程序
我目前正在探索构建一个绑定到 TomEE 服务器的 webapp,即它要么作为 TomEE 中的唯一(附加)应用程序运行,要么嵌入了 TomEE。webapp 应该支持 servlet 和 JSP(基本上我们想在这里使用 Struts2)。
我尝试了几个选项,但都有几个问题:
选项 1:使用 Maven-Shade-Plugin 捆绑我们的应用程序和 tomee-embedded,如下所述:http ://www.tomitribe.com/blog/2015/03/50-shades-of-tomee/
问题:
1) 部署捆绑的应用程序仅适用于 7.x 版本,--as-war
但 7.x 尚未准备好生产,我找不到任何计划的发布日期
2) 部署 JAXRS webservices 工作正常,但 servlet 没有,例如 web.xml 没有被拾取,有类加载问题等。
选项 2:使用 TomEE-Maven-Plugin 构建一个包含 tomee 以及我们的 webapp 的 zip。
问题:
1) 这仅适用于插件版本 7.x(尚未准备好生产),但这不应影响生成的构建(基于 TomEE 1.7.2)
2) 由于 TomEE 可能会加载一些也由应用程序提供的库(在不同版本中),因此存在库冲突。
由于应用程序与服务器绑定,反之亦然,因此应该可以将所有库放入 TomEE 的 lib 文件夹,该文件夹通过将 Maven 插件指向下载依赖项的文件夹来工作。这可行,但没有解决冲突,即库只是复制到目标文件夹。
我现在可以手动配置插件以删除每个冲突的工件,但是随着应用程序以及潜在冲突库的数量的增加,这可能会变得非常麻烦。
选项 3:与选项 2 类似,但不使用 TomEE-Maven-Plugin。
我想应该可以使用预打包的 TomEE 和一些 Maven 插件来构建一个可以解决问题的可分发 zip。1 但问题没有。2 - 这是更大的 - 仍然存在:手动处理所有依赖项会很麻烦。
最后,问题是:我应该如何构建该应用程序?
我更喜欢选项 1,但我还找不到任何关于如何使其工作的文档/示例/教程。
选项 2 和 3 也可以,但我需要一些方法让 Maven 解决依赖冲突,而不需要我检查每个依赖项,尤其是传递的依赖项。
corba - 如何使用 Corba/IIOP 客户端访问部署在 TomEE (Plume) 上的 EJB3?
我正在寻找一些提示或可能的示例,以在TomEE (Plume) 上部署并使用 IIOP/CORBA 客户端访问相同的 EJB3 时将 EJB3 公开为IIOP/CORBA兼容。
我们当前的应用程序是这样设计的,它的EJB(EJB3)暴露给CORBA/IIOP客户端,我们所有的 WEB 和独立客户端都使用那些使用IIOP/CORBA协议的EJB 。
例子:
由于Glassfish完全支持corba协议并且工作正常。现在,我希望与TomEE Plume 进行同样的工作。
任何相关的输入或帮助都将导致我们决定选择TomEE作为我们的应用程序服务器的合适候选者来代替Glassfish。
jsf - 使用 EL 的 JSF 资源 - 面临 2.2.9 停止工作
当我使用 faces 2.1.7 时,下面的代码曾经可以工作。但是,在我将 TomEE 7 更改为使用 faces 2.2.9 后,它无法工作。
在 2.2.9 中,它生成以下代码:
知道为什么它不生成#{resource['default:css/main.css']}
EL 表达式吗?
java - Apache Tomee 7.0.0-M1 不处理 ServletRequestListener 绑定?
我目前正在使用Apache Tomee 7.0.0-M1版本运行应用程序。我正在使用Spring 3.2.6,我想使用由 Spring 管理的请求范围的服务 bean。我已经阅读了为此的文档,我必须将这些添加到web.xml
我已经这样注释了我的服务:
问题是,我得到一个这样的异常:
这篇文章中也提出了同样的问题,但正如我所说,我已经在我的web.xml
. 这是目前 Tomee 的问题/错误,还是我遗漏了什么?
java - Jax-Rs 2.0.1 抛出 NotFoundException
我正在尝试在 TomEE plus 上部署我的 Web 应用程序,并且在部署时,jax-rs 抛出一个很长的错误。在 maven 中使用 2.0.1 版本的 jaxrs-api 依赖。我看到一些解决方案建议对 jaxrs-api 使用大于 2.7 的版本。但我仅限于使用不超过 2.0.1 的版本。这是错误:
java - SpringBoot 部署在上下文路径下
将 SpringBoot 应用程序打包为 EAR 并部署到本地 TomEE 7 实例。
部署后,托管在上下文路径下TOMEE/my-app-api
从 TOMEE/my-app-api/index.html 正确提供 webapp 文件夹中的静态 index.html 页面
我有一个RestController
映射到的单个 GET 端点/api/country
当我尝试拨打RestController
via时,TOMEE/my-app-api/api/country
我得到一个 404。
如果我从嵌入式 Tomcat 实例运行相同的应用程序并调用RestController
via,TOMCAT/api/country
我会得到成功的响应。
为了让 SpringBoot 在这个上下文路径下托管,我需要配置什么额外的东西吗?
EAR Gradle 任务
应用类
jakarta-ee - 如何在 TomEE 7.0.0-M1 中使用 Jax RS 启用 Bean 验证?
我知道我一定错过了一些非常基本的观点。以下资源方法:
在 Glassfish4 中按预期工作(即返回 400 错误请求),但在 TomEE 7.0.0-M1 (jee7) 中,它忽略验证注释,并以 200 OK 响应。我尝试设置属性(虽然在 TomEE 7 中它被设置为默认启用),仍然没有。
我在这里想念什么?