Использование сервера приложений 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?