2014-11-23 2 views
1

Цель состоит в том, чтобы запустить Arquillian тест с Glassfish сервера, но это ошибка:Arquillian с Glassfish, resourcesXml свойство не кажется, правильный путь к файлу

java.lang.RuntimeException: The resourcesXml property does not appear to be 
a valid file path. 

Кто-нибудь увидеть, что здесь отсутствует ?

Это, как план проекта в Netbeans выглядит следующим образом:

enter image description here

Это как структура папок в Netbeans выглядит следующим образом:

enter image description here

Это содержание arguillian.xml файл:

<?xml version="1.0" encoding="UTF-8"?> 
<arquillian xmlns="http://jboss.org/schema/arquillian" 
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
      xsi:schemaLocation=" 
      http://jboss.org/schema/arquillian 
      http://jboss.org/schema/arquillian/arquillian_1_0.xsd"> 
    <container qualifier="glassfish-embedded" default="true"> 
     <configuration> 
      <property name="resourcesXml"> 
       src/test/resources-glassfish-embedded/glassfish-resources.xml 
      </property> 
     </configuration> 
    </container> 
</arquillian> 

И это содержание glassfish-resources.xml файла:

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE resources PUBLIC "-//GlassFish.org//DTD GlassFish Application Server 3.1 
Resource Definitions//EN" "http://glassfish.org/dtds/glassfish-resources_1_5.dtd"> 
<resources> 
<jdbc-connection-pool allow-non-component-callers="false" 
         ... 
         wrap-jdbc-objects="false"> 
    <property name="serverName" value="localhost"/> 
    <property name="portNumber" value="3306"/> 
    <property name="databaseName" value="myappdatabase"/> 
    <property name="User" value="someusername"/> 
    <property name="Password" value="somepassword"/> 
    <property name="URL" value="jdbc:mysql://localhost:3306/somedatabase"/> 
    <property name="driverClass" value="com.mysql.jdbc.Driver"/> 
</jdbc-connection-pool> 
<jdbc-resource enabled="true" jndi-name="jdbc/somedatabase" 
object-type="user" pool-name="jdbc/somedatabase_pool"/> 
</resources> 

Спасибо всем за ваше терпение.

+0

привет! вы нашли решение своей проблемы? То же самое здесь ... – slim

+0

Не совсем, но я сдался через некоторое время и не пробовал с тех пор. –

ответ

1

классификатор должен быть «GlassFish», вот полный пример того, как это работает для меня

<?xml version="1.0" encoding="UTF-8"?> 
<arquillian xmlns="http://jboss.org/schema/arquillian" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://jboss.org/schema/arquillian http://jboss.org/schema/arquillian/arquillian_1_0.xsd"> 
<engine> 
    <property name="deploymentExportPath">target/arquillian</property> 
</engine> 
<container default="true" qualifier="glassfish"> 
    <configuration> 
     <property name="resourcesXml">src/test/resources-glassfish-embedded/glassfish-resources.xml</property> 
     <property name="bindHttpPort">8083</property> 
    </configuration> 
</container> 
</arquillian> 
0

Вы можете создать переменную в pom.xml:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-surefire-plugin</artifactId> 
    <version>${version.maven-surefire-plugin}</version> 
    <configuration> 
     <systemPropertyVariables> 
      <arquillianResourcesXml> 
       ${project.basedir}/src/test/resources/resources-glassfish-embedded/glassfish-resources.xml 
      </arquillianResourcesXml> 
     </systemPropertyVariables> 
    </configuration> 
</plugin> 

и в arquillian.xml файл:

<property name="resourcesXml">${arquillianResourcesXml}</property> 

работал для меня.

0

Мне удалось выяснить правильное значение свойства resourcesXml, заглянув в консольный журнал maven. Существует одна запись, которая говорит:

[INFO] пропустить не существующий resourceDirectory ... \ SRC \ Test \ ресурсосберегающих GlassFish-внедренные

Проверьте наличие этой папки на вашей файловой системе. В моем случае, я должен добавить еще один ресурс в resourcesXML значение, например:

src/test/resources/resources-glassfish-embedded/glassfish-resources.xml 
+0

Не забудьте изменить значение в обоих местах - arquillian.xml и pom.xml – ivoo

1

У меня была такая же проблема, кажется, что принят только абсолютный путь. Я решил ее фильтрации ресурсов (по аналогии с ответом Слима):

pom.xml

<testResources> 
    <testResource> 
     <directory>src/test/resources</directory> 
     <filtering>true</filtering> 
    </testResource> 
</testResources>   

arquillian.xml

<property name="resourcesXml"> 
    ${basedir}/src/test/resources/glassfish-resources.xml 
</property> 
Смежные вопросы