我习惯于一直使用GlassFish服务器。我正在将一个Java EE应用程序从GlassFish(4.0)迁移到WildFly 8.1.0 final。
我尝试在服务器上使用this plugin在NetBeans 8.0上使用WildFly 8.1.0 final,因为服务器没有内置插件。
与GlassFish不同,即使启用了IDE上的部署保存选项,该应用程序也未部署在保存项目数据上。该应用程序导致非常奇怪/未知/异常的问题。例如,this question充满了(仅仅)其中一些问题。
我将NetBeans升级到8.0.1(使用JSF到2.2.8-02),它有一个内置的WildFly-Plugin,但它也带来了与以前版本的IDE无关的所有差异。
在错误报告的this comment中,提到通过更改/添加对应于JDBC驱动程序的某些XML来进行修复,如下所示,
<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>
但都是徒劳的。这样做没什么新意。
无论如何,现在可以在NetBeans中使用WildFly(8.1.0或更高版本,无论何时可用)(可能通过在某处进行一些更改)?
现在看来,我几乎已经离开了WildFly。是吗? :)
我不确切知道插件是否有问题。它可能是不同的东西。
更新:
我遇到这种情况至少花了三周时间。所以,请不要认为我在这里写的所有内容都是错误的/毫无意义的,如果你不能在片刻内重现同样的事情(如链接question中提到的那样 - 包括罢工文本) - 我只是不能再说些什么了。
其中一个可重现的事情:如果对现有应用程序进行了一些更改,则应用程序不会(自动)部署到服务器,如果这些更改已保存(更不用说部署在保存时在IDE中启用了strong>选项 - 但这只是一个最简单的事情,即使发生正确也无法依赖。
显然,插件不会以应有的方式与IDE交互/通信(例如,正确使用GlassFish Server时)。
答案 0 :(得分: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,到目前为止没有任何问题。
(我发布在这里,因为这是我在搜索修复问题时不断提出的第一个结果)
答案 1 :(得分:1)
我建议您在以下位置提交错误:
https://netbeans.org/bugzilla/enter_bug.cgi?product=serverplugins
并使用WildFly作为类别。
您是否尝试过使用CLI运行WildFly,看看您的IDE相关问题是否消失了?
答案 2 :(得分:1)
首先,使用Netbeans IDE 8.0.1分发wildFly插件,因此您可能不赞成使用的插件。 像Arun说的那样,用netbeans log / wildfly日志和你的配置填充一个bug。 当驱动程序通过其驱动程序类在数据源中定义时,解析中存在NPE。