gpt4 book ai didi

java - 如何从 java SE 应用程序使用嵌入式 openejb?

转载 作者:行者123 更新时间:2023-12-01 04:45:40 25 4
gpt4 key购买 nike

我正在编写一个小型 Java 库,旨在用于 Web 应用程序以及 Java 控制台应用程序。

为了从 CDI 和其他 javaEE 6 功能中获益,并且不必维护库的两个版本(java EE 和 java SE),我想对控制台应用程序使用 openejb(嵌入式)。所以我在eclipse中构建了一个maven项目并添加了openejb工件。

不知何故,我只是不知道如何使控制台程序使用 openejb-container,即解决我的注入(inject)和其他 javaEE 功能。

假设我有两个非常简单的类:

@Stateless
Class A {

@Inject
public B member;

public A() {};

}

@Stateless
Class B {

public B() {};

public String getString () {
return "Hello";

}

}

那么,我如何获得一个带有 main() 方法的普通旧 java 类,使用嵌入式 openejb 实例化 A 的成员? - 以类似的方式:

public class TestOpenEJB {

public static void main(String[] args) {

Class A a = new A(); /*wrong of couse*/

System.out.println( a.member.getString() );

}
}

这个简单示例的可行解决方案会很有帮助。

最后,我的目标是为内部使用嵌入式 javaEE 容器的库提供一个 java SE api。

非常感谢!

最佳答案

除了我的评论之外,我认为您的问题可以这样回答:

继续使用 EJB 来模拟您的库的行为(如代码示例中所示)。这是一个很好的方法,因为容器关心池化、并行访问、事务等事情。

然后您的 Web 应用程序(假设它位于同一个容器中)可以直接使用这些 EJB。

要通过控制台应用程序访问它,您可以在应用程序客户端容器中运行它(这比尝试在应用程序中嵌入容器更好),或者(我建议)将您的业务逻辑暴露在其他方式(例如通过 REST)并在独立的客户端应用程序中使用它。

PS:要使用 DI 机制集成测试业务逻辑,请使用 Arquillian .

关于java - 如何从 java SE 应用程序使用嵌入式 openejb?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15905765/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com