问题标签 [apache-tomee]

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 投票
1 回答
1096 浏览

java - 在 TomEE 上访问 OpenEJB 示例 Web 服务时出现查找错误

我正在尝试使用 OpenEJB 编写一个简单的 web 服务。我从 TomEE 项目的示例代码(webapps/ejb-webservice)开始:

http://www.apache.org/dyn/closer.cgi/openejb/4.0.0-beta-1/examples-4.0.0-beta-1-src.tar.gz

服务类使用注解:

一切都很好。将战争部署到服务器也没有问题(我使用的是 TomEE 1.0.0-beta-1-webprofile),但尝试访问此 Web 服务会从内部 OpenEJB 方法触发一系列 NameNotFoundException:

我发现了一个类似查找错误的帖子:

http://openejb.979440.n4.nabble.com/EJB-2-1-OpenEJB-Tomcat-Datasource-Name-openejb-is-not-bound-in-this-Context-td3331555.html

但问题在于名称查找方法的使用。在示例代码中没有明确的查找。

谁能告诉这个问题的根源是什么?

0 投票
6 回答
2541 浏览

java - JavaEE 解决方案配置最佳实践

我们构建 3 层企业解决方案,通常由几个 webapp 和 ejbjar 模块组成,这些模块都与​​ db 通信并具有多个外部集成点。

每个模块通常都需要自己的配置,这些配置可以在解决方案的生命周期内发生变化。部署它变成了一场噩梦,因为现在我们有 18 个属性文件必须记住要复制和配置,还要设置数据源、队列、内存要求等。

我对有更好的方法充满希望但并不乐观。我们考虑过/使用过的一些选项,每个选项都有其优点和缺点:

  1. 使用多个 maven 项目和持续集成(例如 hudson 或 jenkins)构建一个配置 jar,其中包含每个环境(dev、qa、prod)的所有属性文件,然后将所有内容捆绑为 EAR。但是,当需要时,事情不能在生产中轻易改变。
  2. 将大部分设置放在数据库中,并有一个简单的屏幕来修改它。在内部,我们可以拥有一个可以读取和修改值的通用配置服务 EJB。每个模块都可以有一个自定义扩展版本,该版本具有特定的 getter 和 setter。
  3. 对所有属性文件进行版本控制,然后在生产中将其签出,并在进行更改后将其签入生产分支。

有了所有这些,您仍然需要以容器特定的方式配置数据源和队列等:(

0 投票
1 回答
2031 浏览

java - 从 TomEE 中的另一个 Web 应用程序访问单例 EJB

我在 Apache TomEE+ 上部署了 2 个 webapp。在第一个 webapp 中,我创建了一个单例 EJB 类,声明如下:

从 openejb.log 我可以看到,单例可用:

从我的另一个应用程序中,我想访问那个单例 bean,所以我这样做:

但后来我得到 ClassCastException

我检查了这个 $Proxy94 类是否实现了接口:grid.solver.SolverRegistryorg.apache.openejb.core.ivm.IntraVmProxyorg.apache.openejb.BeanContext$Removable

为什么这不起作用?

0 投票
1 回答
456 浏览

jpa - TomEE 4 JPA 问题

我正在 TomEE 4.0.0 上尝试简单的 JPA 示例,但我无法让 PersistenceContextType.EXTENDED 工作

如果我使我的会话 bean 无状态并离开 PersistenceContextType 那么它工作正常

如果我将会话 bean 保持为无状态,然后尝试使用它

它在部署时给了我一个错误,这非常好并且符合预期。

但是现在当我将我的 bean 设为@Stateful 时,它也会给我一个错误

有人可以帮忙吗,我真的很困惑

0 投票
1 回答
520 浏览

web-services - TomEE 查找错误

我有一个在单独安装中使用 tomcat 和 openejb 的 WebApp。我正在尝试将其移至 TomEE(网络配置文件/plus)环境,但我遇到了查找错误。JNDIContext 正在抛出 java.lang.NullPointerException。

我首先尝试使用 TomEE 网络配置文件。我的网络应用程序也使用网络服务,谷歌搜索引导我尝试 TomEE plus,因为网络配置文件不支持网络服务。这个版本也没有运气。

两个版本之间的一个区别是,在 TomEE Web 配置文件中,当我访问 openejb Web 应用程序时,我会看到所有远程对象。但是我没有看到它们带有 TomEE plus 版本。

http://localhost:8080/openejb/viewjndi.jsp

关于我如何解决这个问题的任何建议?我猜这是配置问题,我不知道是哪一个。

这是完整的堆栈跟踪:

0 投票
3 回答
20238 浏览

java - 如何将 EJB 功能添加到 Eclipse 动态 Web 项目?

我正在使用 EJB 3.0 开发一个简单的应用程序,使用 OpenEJB 进行部署,并将 Eclipse 作为 IDE。

我在 Eclipse 中将该项目创建为“动态 Web 应用程序”。当我尝试创建第一个无状态会话 bean 时,我意识到无法解析 @Remote 注释。

解决此问题的正确方法是什么?

  1. 删除项目并创建一个新的“企业应用项目”(这似乎很重,所以我不确定我是否要朝这个方向发展)?
  2. 删除项目并创建一个 EJB 项目(这似乎不对,因为我相信这样的项目只会让我捆绑应用程序的 EJB 部分)?
  3. 将一些库添加到我现有的项目中(是否有 EJB 3.x 的库包)?
  4. 向我现有的项目添加构面(我试图查看是否可以添加构面,但在该项目的上下文中看不到 EJB 构面)?

感谢您的帮助。

更新: 我找到了答案。

TomEE 的安装目录包含编译和运行 EJB 的 'apache-tomee-webprofile-1.0.0-beta-2/webapps/openejb/lib' 所需的所有 jar 文件

我在 Eclipse 中创建了一个用户库,其中包含上述 lib 文件夹中的所有 jar,并将其添加到构建路径中。

EJB 接口现在可以正确编译。

0 投票
1 回答
3785 浏览

java - 使用 OpenEJB 控制无状态会话 bean 的名称

我正在使用 OpenEJB (TomEE++) 容器开发 EJB 项目。有一个会话 bean,其 JNDI 查找名称需要在代码中进行控制。

我的问题是,这个 bean 绑定的名称是 'global/slides/SlideService'

OpenEJB 似乎使用了应用程序名称,尽管我没有特别提到它。

这会损害便携性吗?是否有可能其他容器可能不使用应用程序名称?

使用 name 和 mappedName 属性是控制无状态 bean 名称的正确方法,还是有其他(更好的)方法?

0 投票
1 回答
1983 浏览

java - 我应该使用哪个 InitialContextFactory?

我正在使用 OpenEJB (TomEE++) 开发一个 EJB 3 项目。

我有一个无状态会话 bean,其名称已用注释指定。

我从我的 Struts 动作类中查找 Session bean,就像这样。

在上面的代码中,您会注意到我必须使用名称“SlideServiceLocalBean”来定位 bean,而我在 bean 的注释中明确指定了“SlideService”。

但是,当我尝试在测试用例中定位 bean 时,我必须使用另一个名称字符串。

为什么查找名称存在差异?

我是在 Struts 动作类中以正确的方式获取 InitialContext,还是应该使用另一种机制/contextFactory 来获取初始上下文?

是否可以在不使用外部 DI 库的情况下将 bean 注入到动作类中?

0 投票
2 回答
3387 浏览

java - 为什么 TomEE Java EE6 获得认证而 TomEE+ 没有获得认证?

正如标题所说。我对 Java EE6 认证的内部工作了解不多。但是,TomEE+ 似乎只是 TomEE 的超集,那么 TomEE+ 不应该也通过 Java EE6 认证吗?

我们刚刚决定为我们内部开发的管理应用程序构建 Tomcat(相对于不使用 Glassfish 中的很多功能),并且对 TomEE+ 非常感兴趣,因为它几乎拥有我们想要的一切。

仅供参考,我们最初只是查看 Tomcat7,并安装 Jersey 和 Hibernate。

0 投票
1 回答
950 浏览

jakarta-ee - 使用 Apache TomEE 时应用程序启动和配置的工作流程是什么

我了解 Apache TomEE 是一个常规的 Tomcat 安装,其中 openejb 作为 Web 应用程序。

我试图了解所有这些引导程序。我会试着问几个有针对性的问题:

  • 有一个应用程序启动顺序重要吗?openejb 应该在我的网络应用程序之前启动,还是相反,或者没关系?
  • 与前面的问题有关。企业应用程序如何向 openejb 注册它的 bean,或者 openejb 是否在同一台服务器中四处寻找企业应用程序,以获取 EJB?
  • 在非常外行的层面上,当 openejb 是一个不同的 Web 应用程序时,他们如何能够提供作为 EJB 容器的 openejb。(IIRC Tomcat 中的每个 webapp 都有一个不同的类路径,它们不能互相影响)

任何其他重要信息。