Я искал через Stackoverflow, чтобы найти ответ на мою проблему, нашел некоторые очень похожие проблемы, но ответа не нашел.Вложенная стеклянная планка не может развернуть модули 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 (он находится в папке target/classes после компиляции maven).
я получаю следующие ошибки, основанные на различных изменениях кода (например, используя свойства, передаваемые в контейнер или нет):
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