问题标签 [ejb-2.x]
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.
jakarta-ee - EJB2 和 EJB3 可以共存于一个应用程序中吗?
有人知道是否可以在 Java EE 应用程序中用 EJB3 bean 迭代地替换 EJB2.1 bean?
也就是说:一次从代码中删除一个 2.1 bean 并添加相应的 EJB3 bean,该 bean 实现相同的行为而无需触及其余代码(+ 能够通过新 EJB3 中的注释注入遗留 EJB)。
我不是 EJB 规范方面的专家(而且我只有 EJB3 方面的经验),但对我来说,EJB 是一个简单的组件,具有由应用服务器管理的给定业务接口。AFAIK EJB3 极大地简化了组件的编写方式(没有人工接口),并且由于注释,大多数时候 xml 描述符可以省略,但基本内容是相同的。所以这似乎是合理的,它可以工作。
EJB2.1 和 EJB3 之间有什么不兼容的地方吗?
问题的核心是迁移 EJB2.1 --> EJB3 是否需要停止世界/完全重写操作,或者可以在向遗留应用程序添加新功能和修复错误的同时做到这一点(所以会有混合EJB2.1 和 EJB3 在运行应用程序中的一段时间)。
编辑:
- 我只对会话 bean 感兴趣。
- 我很好奇查找是否(以及如何)起作用。AFAIK EJB2.1 需要称为 home 接口的东西来获取对不同 EJB 的引用,但 EJB3 没有 home 接口......
java - Java 线程转储中的“等待时释放锁:”是什么意思?
在这个线程转储中:
线是做什么的
意思是?我们有 8 个其他线程被阻塞等待java/lang/Class@0x067EA070
被释放,这个线程正在持有,但我不明白这个线程阻塞了什么,也不知道锁被释放是什么意思。我会认为线程转储是一种停止世界类型的事件,因此有问题的行不会指线程转储发生时释放的锁......
此外,它出现的位置是否有任何意义(即它上面和下面的线)?
显然我不是 Java 期望,所以我希望这不是一个太愚蠢的问题。谢谢您的帮助!
websphere - Websphere 7 - BMP Entity Bean - ejbStore 在事务结束时调用,而不是在 setter 方法之后
我们正在从 Weblogic 迁移到 Websphere 7。它是一个遗留应用程序,包含 EJB 2.0 bean。实体 bean 具有 BMP。会话外观 bean 对实体 bean 进行更新,但更新在事务结束时被持久保存到数据库(调用实体 bean 的 ejbStore() 方法),这会导致问题,因为具有事务的其他客户端看不到更新。在 Weblogic 中有一个设置“delay-updates-until-end-of-tx”可以设置为 false。这会导致更新被持久化,而无需等待事务结束。我读到 Websphere 的默认行为是不等待事务结束,但它似乎不像那样工作。
我也尝试设置以下 JVM 参数:
-Dcom.ibm.ws.pm.deferredcreate=false -Dcom.ibm.ws.pm.batch=false
这也没有帮助。
对此的任何帮助将不胜感激。
谢谢, 狗屎
java - 重复实现公共接口的父类和子类
今天我在我的代码中发现了一个子类,它实现了父类已经继承的接口。
我可以知道这是否有任何不利的副作用或意图,因为我正在努力将其从儿童班中删除,因为我相信这可能是一个意外错误,或者我是否遗漏了什么?
在子类中:
在父类中:
请注意,在子级和父级中,这些类都实现了javax.ejb.SessionBean
.
java - (MockEJB) 从容器内测试中获取模拟实体 bean
我正在使用 mockejb 框架来模拟内存中的实体 bean,我进行了查找,mockejb 为我带来了真实实体的代理。那行得通。
但是我需要从容器 JNDI 中获取一个 Session Bean 来“理解”它。我的意思是,当会话 Bean 查找实体 Bean 时,我希望它接收我模拟的 bean,而不是来自数据库的 bean。
我无法模拟这个会话 Bean,因为在我试图模拟的方法中,有一个对实体 bean 的查找,所以我需要这个方法才能正常执行,但在查找时接收模拟的 bean。
[更新]关于我的开发环境的信息:我正在使用 IBM RSA 7.5、IBM Websphere 6.1,我有一个在 Cactus 容器中运行的 Web 测试项目,我的类路径上的最后一个库是:
- 仙人掌-1.7.2.jar
- cglib-nodep-2.1_3.jar
- commons-httpclient-2.0.2.jar
- commons-logging-1.0.4.jar
- powermock-easymock-1.3.9-full.jar
- junit-3.8.1.jar
- mockejb.jar
Obs.:我已经使用 jUnit4 更改为最新的 powermock 版本,并尝试仅使用 EasyMock 3.0,还尝试了 EasyMock 2.x 及其类扩展。这些都不起作用。真正让我感兴趣的是 EasyMock 文档中提到的 DefaultInstantiator 配置:http: //easymock.org/EasyMock2_4_ClassExtension_Documentation.html。我想知道这是否是我的情况(不支持 JVM)并且我无法使其工作。
感谢您的帮助。
java - 我可以使用什么工具为 EJB 2.1 代码生成多个线程来模拟连接池负载?
我试图在 EJB 2.1 bean 上生成多个线程来测试连接池上的负载。有什么方法可以这样做或我可以研究的开源工具吗?
谢谢,如果有人有这方面的经验。
tomcat - 如何在 Tomcat-OpenEJB 中部署 EJB 2.0、JAR 和 EAR?
有没有办法在 Tomcat-OpenEJB 中部署 EJB、JAR 或 EAR?如果我不想使用折叠的 EAR 概念或 JEE6 。
请回复..!!
提前致谢。
jakarta-ee - EJB 方法处理在执行期间挂起
我有一个奇怪的问题,这是系统的快速快照:我有一个调用本地 EJB bean 的 Web 应用程序,让我们调用本地 EJB 'LocalEJB',这个 EJB 调用远程 EJB - 'RemoteEJB' 方法,该方法对外部系统并返回字符串结果。一切都发生在 Weblogic 8.1 中
这是一个示例处理:
Web应用程序:
我在 ejb 应用程序内的本地 bean 上启用了日志记录:
其中 'session' 是对远程 bean 的引用。
现在会发生什么,请求到达应用程序,方法 'beanRef.updateSmth' 执行,这会调用本地 ejb 中的方法,一两秒后我可以在日志文件中看到例如。'result inside bean call: 0231423',这意味着远程 bean 返回了结果,但有时我必须等待 5-6 分钟才能在我的 Web 应用程序中看到结果(语句 'LOG.debug("result is: " +结果);')。将结果传递给 Web 应用程序需要这么长时间,是事务提交(本地 bean 具有“必需”)吗?
我可以在 weblogic 配置 xml 文件中看到事务超时设置为 1800 秒,但结果是否准备好立即返回真的很重要吗?
java - 尝试在另一台服务器上调用 EJB 方法时出现 Websphere 错误
我正在使用EJB 2.x。我有 2 台机器,它们都在WebSphere 7.0上。他们每个人都部署了不同的应用程序。当我尝试从一个应用程序(在 machine1 上)调用另一个应用程序(在 machine2 上)的 EJB 时,我收到以下错误:
java.rmi.MarshalException:CORBA MARSHAL 0x4942f999 否;嵌套异常是:org.omg.CORBA.MARSHAL:读取 IOR 配置文件 vmcid 时长度为 0x3f400000 的配置文件数据:IBM 次要代码:999 已完成:否
有谁知道如何解决这个问题,因为我几乎被困在这个问题上。谢谢!
编辑:
对于 EJB 调用,我使用了常用方法:
问题是该服务调用在远程服务器上正确调用,并且响应已发送,就在客户端,我收到以下错误:
这是我收到的错误 [SoapConnectorThreadPool : 5] [] ERROR java.rmi.MarshalException: CORBA MARSHAL 0x4942f999 No; 嵌套异常是:org.omg.CORBA.MARSHAL:读取 IOR 配置文件 vmcid 时长度为 0x3f400000 的配置文件数据:IBM 次要代码:999 已完成:com.ibm.CORBA.iiop.UtilDelegateImpl.mapSystemException(UtilDelegateImpl.java:277)中的否在 com.host.local.manager._ServiceManager_Stub.getMethod(_ServiceManager_Stub.java) 的 javax.rmi.CORBA.Util.mapSystemException(Util.java:84):