将WildFly应用程序服务器与NetBeans IDE一起使用

时间:2014-10-19 05:09:31

标签: java netbeans wildfly wildfly-8 netbeans-8

我习惯于一直使用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交互/通信(例如,正确使用GlassFish Server时)。

3 个答案:

答案 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。