2015-09-14 2 views
3

Во время разработки я хочу иметь возможность запускать тесты arquillian, пока мой webapp открыт. Оба используют другой экземпляр WildFly:Arquillian: используйте другой порт (ы) для управляемого контейнера WildFly, чем обычный процесс WildFly.

  • Мои Arquillian тесты используют управляемый (или даже встроенный) wildfly контейнер
  • Чтобы проверить мой веб-приложение вручную, развернуть его в WildFly от IntelliJ.

Я хочу быть в состоянии сделать эти 2 действия параллельно, но когда я делаю это, я получаю:

Address localhost:9990 is already in use. 

или

org.jboss.arquillian.container.spi.client.container.LifecycleException: The server is already running! Managed containers do not support connecting to running server instances due to the possible harmful effect of connecting to the wrong server. Please stop server before running or change to another type of container. 
To disable this check and allow Arquillian to connect to a running server, set allowConnectingToRunningServer to true in the container configuration 

Чтобы это исправить, я бы как изменение arquillian.xml поэтому испытания используют различные порты. Как мне это сделать?

<container qualifier="jboss" default="true"> 
    <configuration> 
    <property name="jbossHome">target/wildfly-${version.org.wildfly}</property> 
    <property name="javaVmArguments">-Xms512m -Xmx1024m -XX:MaxPermSize=512m</property> 
    </configuration> 
</container> 

ответ

4

Я думаю, вы должны добавить javaVmArguments собственности: -Djboss.socket.binding.port-offset=1000 и добавить новое свойство <property name="managementPort">10990</property>

<container qualifier="jboss" default="true"> 
    <configuration> 
    <property name="jbossHome">target/wildfly-${version.org.wildfly}</property> 
    <property name="managementPort">10990</property> 
    <property name="javaVmArguments">-Xms512m -Xmx1024m -XX:MaxPermSize=512m -Djboss.socket.binding.port-offset=1000</property> 
    </configuration> 
</container> 
+0

не будет также принимать порт 8080 для HTML ресурсов моего WebAPP и это REST услуги? –

1

порт Используйте WildFly в Offset, чтобы компенсировать все порты, а не только порт управления.

<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="wildfly-managed" default="true"> 
    <configuration> 
     <property name="jbossHome">target/wildfly-${version.org.wildfly}</property> 
     <!-- Port offset allows running the tests while a WildFly server is already running --> 
     <property name="javaVmArguments">-Djboss.socket.binding.port-offset=10000 -Xms512m -Xmx1024m -XX:MaxPermSize=512m</property> 
     <property name="managementPort">19990</property> 
    </configuration> 
    </container> 

</arquillian> 

Упоминание новый managementPort в arquillian.xml необходимо, но упоминая порт HTTP не требуется. То же самое касается портов JMS и т. Д. Я полагаю.

Конфигурационный выше предполагает по умолчанию managementPort является 9990, но я видел сообщения, где это 90 или 9999 тоже (вероятно, более старые версии WildFly, это WildFly 9.0.1.Final). Фактическое использование используемого управления показано в журнале WildFly во время запуска.

0

У меня тоже такая ошибка, потому что arquillian не может использовать веб-контейнер runnung, поскольку он уже запущен. Таким образом, вы просто положить еще одно свойство, чтобы «arquillian.xml» внутри вашего SRC/тест/ресурсов с этой линией

<container qualifier="wildfly-managed" default="true"> 
     <configuration> 
      ... 
      <!-- this allow connecting to running server --> 
      <property name="allowConnectingToRunningServer">true</property>    

     </configuration> 
    </container>