![](/img/trans.png)
[英]How can i use http 1.1 pipelining from a desktop Java application (J2SE)?
[英]How to use embedded openejb from a java SE application?
我正在編寫一個小的Java庫,該庫旨在用於Web應用程序以及Java控制台應用程序。
為了從CDI和其他javaEE 6功能中受益,而不必維護該庫的兩個版本(java EE和java SE),我想對控制台應用程序使用openejb(嵌入式)。 因此,我在Eclipse中構建了一個Maven項目,並添加了openejb工件。
我只是不知道如何使控制台程序使用openejb-container,即解決了我的注入和其他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 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.