问题标签 [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.
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:
我发现了一个类似查找错误的帖子:
但问题在于名称查找方法的使用。在示例代码中没有明确的查找。
谁能告诉这个问题的根源是什么?
java - JavaEE 解决方案配置最佳实践
我们构建 3 层企业解决方案,通常由几个 webapp 和 ejbjar 模块组成,这些模块都与 db 通信并具有多个外部集成点。
每个模块通常都需要自己的配置,这些配置可以在解决方案的生命周期内发生变化。部署它变成了一场噩梦,因为现在我们有 18 个属性文件必须记住要复制和配置,还要设置数据源、队列、内存要求等。
我对有更好的方法充满希望但并不乐观。我们考虑过/使用过的一些选项,每个选项都有其优点和缺点:
- 使用多个 maven 项目和持续集成(例如 hudson 或 jenkins)构建一个配置 jar,其中包含每个环境(dev、qa、prod)的所有属性文件,然后将所有内容捆绑为 EAR。但是,当需要时,事情不能在生产中轻易改变。
- 将大部分设置放在数据库中,并有一个简单的屏幕来修改它。在内部,我们可以拥有一个可以读取和修改值的通用配置服务 EJB。每个模块都可以有一个自定义扩展版本,该版本具有特定的 getter 和 setter。
- 对所有属性文件进行版本控制,然后在生产中将其签出,并在进行更改后将其签入生产分支。
有了所有这些,您仍然需要以容器特定的方式配置数据源和队列等:(
java - 从 TomEE 中的另一个 Web 应用程序访问单例 EJB
我在 Apache TomEE+ 上部署了 2 个 webapp。在第一个 webapp 中,我创建了一个单例 EJB 类,声明如下:
从 openejb.log 我可以看到,单例可用:
从我的另一个应用程序中,我想访问那个单例 bean,所以我这样做:
但后来我得到 ClassCastException
我检查了这个 $Proxy94 类是否实现了接口:grid.solver.SolverRegistry、org.apache.openejb.core.ivm.IntraVmProxy和org.apache.openejb.BeanContext$Removable。
为什么这不起作用?
jpa - TomEE 4 JPA 问题
我正在 TomEE 4.0.0 上尝试简单的 JPA 示例,但我无法让 PersistenceContextType.EXTENDED 工作
如果我使我的会话 bean 无状态并离开 PersistenceContextType 那么它工作正常
如果我将会话 bean 保持为无状态,然后尝试使用它
它在部署时给了我一个错误,这非常好并且符合预期。
但是现在当我将我的 bean 设为@Stateful 时,它也会给我一个错误
有人可以帮忙吗,我真的很困惑
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
关于我如何解决这个问题的任何建议?我猜这是配置问题,我不知道是哪一个。
这是完整的堆栈跟踪:
java - 如何将 EJB 功能添加到 Eclipse 动态 Web 项目?
我正在使用 EJB 3.0 开发一个简单的应用程序,使用 OpenEJB 进行部署,并将 Eclipse 作为 IDE。
我在 Eclipse 中将该项目创建为“动态 Web 应用程序”。当我尝试创建第一个无状态会话 bean 时,我意识到无法解析 @Remote 注释。
解决此问题的正确方法是什么?
- 删除项目并创建一个新的“企业应用项目”(这似乎很重,所以我不确定我是否要朝这个方向发展)?
- 删除项目并创建一个 EJB 项目(这似乎不对,因为我相信这样的项目只会让我捆绑应用程序的 EJB 部分)?
- 将一些库添加到我现有的项目中(是否有 EJB 3.x 的库包)?
- 向我现有的项目添加构面(我试图查看是否可以添加构面,但在该项目的上下文中看不到 EJB 构面)?
感谢您的帮助。
更新: 我找到了答案。
TomEE 的安装目录包含编译和运行 EJB 的 'apache-tomee-webprofile-1.0.0-beta-2/webapps/openejb/lib' 所需的所有 jar 文件
我在 Eclipse 中创建了一个用户库,其中包含上述 lib 文件夹中的所有 jar,并将其添加到构建路径中。
EJB 接口现在可以正确编译。
java - 使用 OpenEJB 控制无状态会话 bean 的名称
我正在使用 OpenEJB (TomEE++) 容器开发 EJB 项目。有一个会话 bean,其 JNDI 查找名称需要在代码中进行控制。
我的问题是,这个 bean 绑定的名称是 'global/slides/SlideService'
OpenEJB 似乎使用了应用程序名称,尽管我没有特别提到它。
这会损害便携性吗?是否有可能其他容器可能不使用应用程序名称?
使用 name 和 mappedName 属性是控制无状态 bean 名称的正确方法,还是有其他(更好的)方法?
java - 我应该使用哪个 InitialContextFactory?
我正在使用 OpenEJB (TomEE++) 开发一个 EJB 3 项目。
我有一个无状态会话 bean,其名称已用注释指定。
我从我的 Struts 动作类中查找 Session bean,就像这样。
在上面的代码中,您会注意到我必须使用名称“SlideServiceLocalBean”来定位 bean,而我在 bean 的注释中明确指定了“SlideService”。
但是,当我尝试在测试用例中定位 bean 时,我必须使用另一个名称字符串。
为什么查找名称存在差异?
我是在 Struts 动作类中以正确的方式获取 InitialContext,还是应该使用另一种机制/contextFactory 来获取初始上下文?
是否可以在不使用外部 DI 库的情况下将 bean 注入到动作类中?
java - 为什么 TomEE Java EE6 获得认证而 TomEE+ 没有获得认证?
正如标题所说。我对 Java EE6 认证的内部工作了解不多。但是,TomEE+ 似乎只是 TomEE 的超集,那么 TomEE+ 不应该也通过 Java EE6 认证吗?
我们刚刚决定为我们内部开发的管理应用程序构建 Tomcat(相对于不使用 Glassfish 中的很多功能),并且对 TomEE+ 非常感兴趣,因为它几乎拥有我们想要的一切。
仅供参考,我们最初只是查看 Tomcat7,并安装 Jersey 和 Hibernate。
jakarta-ee - 使用 Apache TomEE 时应用程序启动和配置的工作流程是什么
我了解 Apache TomEE 是一个常规的 Tomcat 安装,其中 openejb 作为 Web 应用程序。
我试图了解所有这些引导程序。我会试着问几个有针对性的问题:
- 有一个应用程序启动顺序重要吗?openejb 应该在我的网络应用程序之前启动,还是相反,或者没关系?
- 与前面的问题有关。企业应用程序如何向 openejb 注册它的 bean,或者 openejb 是否在同一台服务器中四处寻找企业应用程序,以获取 EJB?
- 在非常外行的层面上,当 openejb 是一个不同的 Web 应用程序时,他们如何能够提供作为 EJB 容器的 openejb。(IIRC Tomcat 中的每个 webapp 都有一个不同的类路径,它们不能互相影响)
任何其他重要信息。