我已經通過Stackoverflow搜索找到我的問題的答案,發現一些非常類似的問題,但沒有答案。Glassfish嵌入式不能部署EJB模塊
我在做什麼: 創建一個簡單的junit測試,其中啓動了Glassfish 4.1嵌入式容器,並測試了一個簡單的EJB操作。
樣品EJB:
@Stateless
@LocalBean
public class ExampleBean {
public int meaningOfLife() {
return 42;
}
}
很簡單。 這裏是我的單元測試:
public class BasicTest {
@EJB
private ExampleBean examplebean;
private static Context context;
private static EJBContainer container;
@BeforeClass
public static void init() {
Map<String,Object> props = new HashMap<String,Object>();
//props.put(EJBContainer.MODULES, new File("target/classes"));
props.put(EJBContainer.MODULES, new File("D:\\Development\\IDE\\workspace-templates\\jee7-template\\template-service\\target"));
try {
container = EJBContainer.createEJBContainer(props);//.getContext().bind("inject", this);
context = container.getContext();
} catch (Exception e) {
e.printStackTrace();
}
}
}
我的pom.xml依賴關係:
<dependency>
<groupId>org.glassfish.main.extras</groupId>
<artifactId>glassfish-embedded-static-shell</artifactId>
<version>4.1</version>
<scope>system</scope>
<systemPath>D:\\Development\\Servers\\glassfish4.1-activiti\\glassfish\\lib\\embedded\\glassfish-embedded-static-shell.jar</systemPath>
</dependency>
我也試圖與添加以下的依賴:
<dependency>
<groupId>org.glassfish.main.ejb</groupId>
<artifactId>ejb-container</artifactId>
<version>4.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>javax.ejb</groupId>
<artifactId>javax.ejb-api</artifactId>
<version>3.2</version>
<scope>test</scope>
</dependency>
而且結果: 的嵌入式GF 4.1容器無法加載該簡單EJB(在maven編譯之後,它存在於target/classes文件夾中)。
我得到以下的錯誤,基於所述不同的代碼的變化(如使用特性傳遞給容器或不):
GF 4.1 Embedded UnsatisfiedDependencyException
GF 4.1 Embedded Can't deploy EJB classes
的代碼我粘貼了最後一條錯誤信息。
我不明白。到處尋找信息,說這應該工作。另外,如果我嘗試使用OpenEJB容器(不幸的是它只是jee6),它可以正常工作。
<dependency>
<groupId>org.apache.openejb</groupId>
<artifactId>openejb-core</artifactId>
<version>4.7.3</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.openejb</groupId>
<artifactId>javaee-api</artifactId>
<version>6.0-6</version>
<scope>test</scope>
</dependency>
感謝您的幫助!
奇怪的事情,我從IntelliJ IDEA的運行相同的測試(第一次當得到一個稍微不同的輸出運行是從日食)。 查看輸出:http://pastebin.com/DBxwRjCm – csabee