Использование сервера приложений WildFly с IDE NetBeans

Я привык к использованию сервера GlassFish все время. Я перевожу приложение Java EE из GlassFish (4.0) в финальную версию WildFly 8.1.0.

Я пытался использовать WildFly 8.1.0 final на NetBeans 8.0, используя этот плагин для сервера, так как для сервера не было встроенного плагина.

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

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

В этом комментарии к сообщению об ошибке упоминается, что исправление было сделано путем изменения / добавления некоторого 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. Это?:)

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


Обновить:

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

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

Очевидно, что плагин не взаимодействует / не взаимодействует с IDE так, как должен (как это происходит правильно, например, при использовании сервера GlassFish).

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 и у меня не было проблем.

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

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

Я бы посоветовал вам сообщить об ошибке по адресу:

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

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

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

Другие вопросы по тегам