问题标签 [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.

0 投票
0 回答
628 浏览

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/ 下的原始示例项目中,我会遇到同样的错误。

0 投票
1 回答
741 浏览

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-RSTomEE 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优先。

更新:事实证明这确实有效。我不知道为什么我的初始测试不起作用。

禁用过ValidationExceptionMappersystem.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优先?
0 投票
1 回答
709 浏览

jakarta-ee - TomEE 7.0.0 上 ManagedScheduledExecutorService 任务中的事务?

语境

我想使用ManagedScheduledExecutorService. 我通过 an获得我Runnable的 s/ s ,因此我的任务中有可用的注入功能。CallableInstance

我的应用程序运行在TomEE 7.0.0-SNAPSHOT webprofile.

问题

当这些任务正在访问数据库时,它们需要一个事务。但是,里面的Runnable/Callable没有事务是活跃的。

用户交易

ManagedScheduledExecutorService的文档指出

如果需要事务,请使用 javax.transaction.UserTransaction 实例。通过使用 Resource 注释请求注入 UserTransaction 对象,可以使用 UserTransaction 实例(...)。

然而,注入

null在调用任务时。

无状态bean

我采取的另一种方法是在我的任务中注入一个无状态 EJB,希望这会为我创建一个事务。

这导致启动时出现以下异常:

测试用例

在 Github 上创建了一个小型测试用例项目。它包含两个分支,说明了上述问题。

问题

  • EJB不应该@Stateless正常工作,因为所有实例都是使用注入获得的吗?
  • 为什么@Resource注入UserTransaction失败?
0 投票
1 回答
1933 浏览

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 解决依赖冲突,而不需要我检查每个依赖项,尤其是传递的依赖项。

0 投票
0 回答
314 浏览

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

0 投票
0 回答
222 浏览

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 表达式吗?

0 投票
0 回答
77 浏览

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 的问题/错误,还是我遗漏了什么?

0 投票
0 回答
367 浏览

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 的版本。这是错误:

0 投票
0 回答
708 浏览

java - SpringBoot 部署在上下文路径下

将 SpringBoot 应用程序打包为 EAR 并部署到本地 TomEE 7 实例。

部署后,托管在上下文路径下TOMEE/my-app-api

从 TOMEE/my-app-api/index.html 正确提供 webapp 文件夹中的静态 index.html 页面

我有一个RestController映射到的单个 GET 端点/api/country

当我尝试拨打RestControllervia时,TOMEE/my-app-api/api/country我得到一个 404。

如果我从嵌入式 Tomcat 实例运行相同的应用程序并调用RestControllervia,TOMCAT/api/country我会得到成功的响应。

为了让 SpringBoot 在这个上下文路径下托管,我需要配置什么额外的东西吗?

EAR Gradle 任务

应用类

0 投票
2 回答
396 浏览

jakarta-ee - 如何在 TomEE 7.0.0-M1 中使用 Jax RS 启用 Bean 验证?

我知道我一定错过了一些非常基本的观点。以下资源方法:

在 Glassfish4 中按预期工作(即返回 400 错误请求),但在 TomEE 7.0.0-M1 (jee7) 中,它忽略验证注释,并以 200 OK 响应。我尝试设置属性(虽然在 TomEE 7 中它被设置为默认启用),仍然没有。

我在这里想念什么?