2013-04-22 1 views
3

Попытки настроить JPA + тестирование EJB после этих инструкций: http://ctpjava.blogspot.fi/2009/10/unit-testing-ejbs-and-jpa-with.htmlJPA + EJB тестирование с вложенным GlassFish v3

Там, кажется, несколько проблем, которые я не могу показаться, чтобы получить совершенно правильно. Сначала я получаю эту ошибку (которую я в состоянии работать вокруг, но она по-прежнему должно быть исправлено):

SEVERE: EJB6004:Specified application server installation location [C:\Users\<userName>\.m2\repository\org\glassfish\extras\glassfish-embedded-all\domains\domain1] does not exist. 

нашел этот сайт, который дает (более правильно?) Свойства, чтобы установить: http://docs.oracle.com/cd/E18930_01/html/821-2424/gjlde.html

И модифицирована мои настройки тестирования для этого:

import javax.ejb.embeddable.EJBContainer; 
import javax.naming.Context; 
import org.junit.BeforeClass; 
import org.junit.Test; 
import org.junit.runner.RunWith; 
import org.junit.runners.JUnit4; 
... 
@BeforeClass 
public static void createContainer() { 
    Map<String, Object> properties = new HashMap<String, Object>(); 
    properties.put(EJBContainer.MODULES, new File("target/classes")); 
    properties.put("installation.root", "./src/test/glassfish"); 
    properties.put("configuration.file", "./src/test/glassfish/domains/domain1/config/domain.xml"); 
    container = EJBContainer.createEJBContainer(properties); 
    ctx = container.getContext(); 
} 

И в pom.xml у меня есть следующее, что, кажется, для этого потребуется:

<dependency> 
     <groupId>org.apache.derby</groupId> 
     <artifactId>derby</artifactId> 
     <version>10.9.1.0</version> 
     <scope>test</scope> 
    </dependency> 

    <!-- Must be before java-ee --> 
    <dependency> 
     <groupId>org.glassfish.extras</groupId> 
     <artifactId>glassfish-embedded-all</artifactId> 
     <version>3.1.1</version> 
     <scope>test</scope> 
    </dependency> 

    <dependency> 
     <groupId>javax</groupId> 
     <artifactId>javaee-api</artifactId> 
     <version>6.0</version> 
     <scope>test</scope> 
    </dependency> 

    <dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <version>4.11</version> 
     <scope>test</scope> 
    </dependency> 

Ошибка указана в каталоге пользователя, и я смог получить это, установив там необходимый материал (и прошел мимо этого), но это не подходящее место, поскольку все должно быть доступно через SVN.

Согласно последней ссылке, я думаю, что у меня есть правильный набор свойств, но они, похоже, игнорируются. Может быть, мне не хватает чего-то очевидного?

ответ

4

Пропущенный этот текст в свойствах ссылки:

Свойства, которые могут быть переданы методу EJBContainer # createEJBContainer (Свойства) приведены в следующей таблице. Все свойства находятся в пакете org.glassfish.ejb.embedded.glassfish. Например, полное имя свойства installation.root составляет org.glassfish.ejb.embedded.glassfish.installation.root.

Таким образом, ответ был бы:

org.glassfish.ejb.embedded.glassfish. 

Перед каждым свойством

Таким образом:

org.glassfish.ejb.embedded.glassfish.installation.root 

Intead из:

installation.root