2014-10-19 2 views
4

Я привык постоянно использовать сервер GlassFish. Я переношу приложение Java EE из GlassFish (4.0) в FinalFly 8.1.0 final.Использование сервера приложений WildFly с IDE NetBeans

Я попытался использовать окончательный вариант WildFly 8.1.0 на NetBeans 8.0 с использованием this plugin для сервера, поскольку на сервере не было встроенного плагина.

В отличие от GlassFish, приложение не развертывается при сохранении данных проекта, даже если включена опция deploy on save в среде IDE. Приложение приводит к очень странным/неизвестным/необычным проблемам. Например, this question полон (просто) некоторые из этих проблем.

Я обновил NetBeans до 8.0.1 (с JSF до 2.2.8-02), который имеет встроенный WildFly-Plugin, но он также не приносит никакой разницы в любом случае, чем предыдущая версия IDE.

В this comment отчете об ошибке, он отметил, что исправление было сделано путем изменения/добавления некоторых XML, соответствующих драйвер JDBC следующим образом,

<driver name="mysql" module="com.mysql"> 
    <xa-datasource-class> 
    com.mysql.jdbc.jdbc2.optional.MysqlDataSource 
    </xa-datasource-class> 
</driver> 

Я также сделал это изменение в файл standalone-full.xml. Эта часть выглядит следующим образом.

<subsystem xmlns="urn:jboss:domain:datasources:2.0"> 
    <datasources> 
     <datasource jndi-name="java:jboss/datasources/ExampleDS" pool-name="ExampleDS" enabled="true" use-java-context="true"> 
      <connection-url>jdbc:h2:mem:test;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE</connection-url> 
      <driver>h2</driver> 
      <security> 
       <user-name>sa</user-name> 
       <password>sa</password> 
      </security> 
     </datasource> 

     <datasource jta="false" jndi-name="java:/jdbc/project_datasource" pool-name="project_datasource" enabled="true" use-ccm="false"> 
      <connection-url>jdbc:mysql://localhost:3306/projectdb</connection-url> 
      <driver-class>com.mysql.jdbc.Driver</driver-class> 
      <driver>mysql</driver> 
      <pool> 
       <min-pool-size>5</min-pool-size> 
       <max-pool-size>15</max-pool-size> 
      </pool> 
      <security> 
       <user-name>root</user-name> 
       <password>root</password> 
      </security> 
      <validation> 
       <validate-on-match>false</validate-on-match> 
       <background-validation>false</background-validation> 
      </validation> 
      <statement> 
       <share-prepared-statements>false</share-prepared-statements> 
      </statement> 
     </datasource> 
     <drivers> 
      <driver name="h2" module="com.h2database.h2"> 
       <xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class> 
      </driver> 
      <driver name="mysql" module="com.mysql"> 
       <xa-datasource-class>com.mysql.jdbc.jdbc2.optional.MysqlDataSource</xa-datasource-class> 
      </driver> 
     </drivers> 
    </datasources> 
</subsystem> 

Но все напрасно. Это не сделало ничего нового.

В любом случае, возможно ли использовать WildFly (8.1.0 или выше, если есть) с NetBeans (возможно, внесение каких-либо изменений)?

Похоже, что я почти остался с тем, чтобы держаться подальше от WildFly. Это? :)

Я точно не знаю, является ли плагин проблемой или нет. Это может быть что-то другое.


Update:

Это заняло у меня по крайней мере три недели, чтобы столкнуться с этой ситуацией. Поэтому, пожалуйста, не думайте, что все, что я написал здесь, неверно/бессмысленно, если вы не смогли воспроизвести одно и то же за мгновение (как упоминалось в связанном question - включая пронзительный текст) - я просто не могу сказать ничего больше об этом.

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

По-видимому, плагин не взаимодействует/не взаимодействует с IDE так, как должен (например, при использовании GlassFish Server).

ответ

1

Я призываю вас, чтобы сообщить об ошибке по адресу:

https://netbeans.org/bugzilla/enter_bug.cgi?product=serverplugins

и использовать WildFly в качестве категории.

Вы пробовали использовать WildFly с помощью CLI и посмотреть, исчезли ли ваши проблемы с IDE?

+0

[Готово] (https://netbeans.org/bugzilla/show_bug.cgi?id=248161) , CLI имеет крутую кривую обучения. Я впервые попытался использовать WildFly. Поэтому я не могу это сделать с помощью CLI (я просто копировал/вставлял некоторые команды CLI из вашего [блога] (http://wildfly.org/news/2014/02/06/GlassFish-to-WildFly-migration /)). Спасибо :) – Tiny

+1

Спасибо! Несколько более подробный учебник по JBOSS-АОН по адресу: https://github.com/arun-gupta/wildfly-lab/blob/master/docs/chapters/jboss-cli.adoc –

1

Первый плагин wildFly распространяется с NetBeans IDE 8.0.1, поэтому плагин, который вы используете, может быть устаревшим. Как сказал Арун, заполните ошибку с журналом журнала netblans/wildfly и вашей конфигурацией. В разборе был NPE, когда драйвер был определен в источнике данных его классом водителя.

+0

Я использовал плагин который связан с Netbeans IDE 8.0.1 (а не блуждающим плагином, который я только что попробовал с NetBeans IDE 8.0 и без него). – Tiny

3

Просто предупреждение, поскольку я пропустил это и отрывал свои волосы от этого. Wildfly использует порт 9990 для управления отладкой по умолчанию, однако это вызывает проблему, если у вас есть устройство Nvidia, поскольку сетевая служба Nvidia также использует 9990.

Чтобы исправить это, я остановил сетевую службу Nvidia (в задаче менеджер), и мой Netbeans (8.1) теперь может подключаться к серверу wildfly и больше не падает.

Вы также можете изменить порты, которые использует wildfly, чтобы остановить конфликт. Если вы используете файл standalone.xml, измените следующую строку:

<socket-binding name="management-http" 
    interface="management" 
    port="${jboss.management.http.port:9990}"/> 

И измените номер порта на ваш выбор. Теперь в NetBeans, когда вы решите добавить сервер и перейти к свойствам экземпляра, убедитесь, что вы установили порт управления таким же, как тот, который вы установили в файле конфигурации. Я выбрал 9991 и не имел проблем до сих пор.

(я писал здесь, так как это был первый результат я продолжал приходить к при поиске для фиксации проблемы)

+0

WildFly работает правильно, если не запущено сложное сложное приложение (имеющее несколько зависимостей). Во всяком случае, я не могу ничего комментировать об этом, так как я отказался от этого сервера и с тех пор ничего не пытался. – Tiny

+0

Выполняет ли «Развертывание при сохранении» правильно с использованием NetBeans 8.1/WildFly 9.0.2 final? Я вижу, что среда IDE не развертывает проект автоматически, всякий раз, когда изменения сохраняются, по крайней мере, в стандартных проектах NetBeans (которые не используют Apache Maven в качестве инструмента управления сборкой и зависимостью). Похоже, что плагин не может связаться с сервером. (Я только что создал простое тестовое приложение, используя NetBeans 8.1/WildFly 9.0.2 final, имеющий только один файл XHTML без каких-либо дополнительных зависимостей, кроме PrimeFaces. Опция «Развертывание при сохранении» включена в среде IDE). – Tiny

+0

Одностраничное приложение EE работает правильно в этом тестовом приложении, но оно вызывает проблемы в долгосрочной перспективе, как указано в [связанном вопросе] (http://stackoverflow.com/q/26433574/1391249), когда приложение становится более сложным, если несколько зависимостей. (Я также внес изменения, как вы упомянули в файле 'standalone.xml') – Tiny