java.net.MalformedURLException:当 运行 或在 Wildfly 15 中调试 Netbeans Java 项目时,输入字符串:“8080undefined”
java.net.MalformedURLException: For input string: "8080undefined" when run or debug Netbeans Java Project in Wildfly 15
我有一个使用 Netbeans 开发的 JavaEE 简单 HelloWorld 项目。如果我调试它或 运行 它在这些情况下(至少)按预期工作:
1) Netbeans 8.2 + Wildfly 12
2) Netbeans 10 + Wildfly 12
3) Netbeans 11 + Wildfly 12
但它失败了(至少):
1) Netbeans 8.2 + Wildfly 15
2) Netbeans 10 + Wildfly 15
3) Netbeans 11 + Wildfly 15
当我尝试 运行 或使用 Wildfly 15 调试时显示的错误是:
Browsing: http://localhost:8080undefined/
java.net.MalformedURLException: For input string: "8080undefined"
at java.net.URL.<init>(URL.java:627)
at java.net.URL.<init>(URL.java:490)
at java.net.URL.<init>(URL.java:439)
at org.netbeans.modules.ant.browsetask.NbBrowse.execute(NbBrowse.java:67)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292)
at sun.reflect.GeneratedMethodAccessor78.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:99)
at org.apache.tools.ant.Task.perform(Task.java:350)
at org.apache.tools.ant.Target.execute(Target.java:449)
at org.apache.tools.ant.Target.performTasks(Target.java:470)
at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1388)
at org.apache.tools.ant.Project.executeTarget(Project.java:1361)
at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
at org.apache.tools.ant.Project.executeTargets(Project.java:1251)
at org.apache.tools.ant.module.bridge.impl.BridgeImpl.run(BridgeImpl.java:261)
at org.apache.tools.ant.module.run.TargetExecutor.run(TargetExecutor.java:574)
at org.netbeans.core.execution.RunClassThread.run(RunClassThread.java:128)
Caused by: java.lang.NumberFormatException: For input string: "8080undefined"
如果我更深入地研究这个问题,这似乎是由于构建-impl.xml上对${client.url}的错误解释造成的,但我不知道如何解决它。
解决方法是添加
<target if="do.display.browser.debug" name="debug-display-browser">
<nbbrowse context="" url="http://localhost:8080/" urlPath="${client.urlPart}"/>
</target>
在项目根目录 build.xml 的末尾,但我想知道如何解决问题的根源。
不得不说这个错误不是blocking,也就是说项目部署成功,但是浏览器打不开,有点烦人。如果我手动打开浏览器并记下 URL 然后一切正常。
亲切的问候
!!!!更新于 2019 年 10 月 5 日。现在有一个解决方案 - 请参阅此答案的下半部分。 !!!!
这是一个答案,但不幸的是不是解决方案!...
这可能与 Wildfly 15.0.1.Final - Web Application Error 重复,但未提供解决方案。
我也可以用 Netbeans 8.2 + Wildfly 15 重现您的问题,尽管它在 Wildfly 12 上运行良好。您不太可能从 NB 8.2 的 Oracle 获得任何修复。
请注意,有一个关于将 Wildfly 与 NB11 一起使用的公开错误报告:NETBEANS-2415 Bring back support for WildFly server。显然(至少)插件存在许可问题:
AFAIK,该插件存在许可问题。我们有来自他们的贡献者,他试图推动管理层为 Wildfly 插件提供 Apache 兼容许可证。如果这不起作用,插件可能需要移动到外部门户。
另请参阅打开的错误报告 NETBEANS-2367 wildfly support disabled, and this this discussion: No wildlfy plugin on Netbeans 11
- 正如您所指出的:
- 这不是 Wildfly 的问题,而是 NetBeans 的问题。
- 这很烦人,但并不严重。
总结:
- 您几乎肯定不会从 Oracle 获得有关 NetBeans 8.2 问题的修复程序。
- 对于最新版本的 Apache NetBeans (>= NetBeans 9.0),目前似乎不支持 Wildfly。在解决此问题之前,您也不会获得任何最新 NetBeans 版本的修复。
于 10/5/19 更新以提供真正的解决方案:
- 有个new Wildfly plugin available for NetBeans.
- 有关详细信息,请参阅最近关于 Bug Report NETBEANS-2415 Bring back support for WildFly server 的讨论。
- 下载该插件,然后使用工具 > 插件 > 下载 > 添加插件安装它...。 NetBeans 将重新启动。
- Download and unzip the latest version of Wildfly(如有必要),然后在 服务 选项卡上 select 服务器 > 添加服务器... 添加 Wildfly 服务器。
- 创建一个 Web 应用程序并将其部署并 运行 在该 Wildfly 服务器上。它应该可以正常工作。
备注:
- 我通过使用 JDK 13 在 NetBeans 11.1 上创建 Maven Web 应用程序并在 Wildfly 18 上 运行 对其进行验证。
- 顺便说一句,Wildfly 17 及更高版本支持 Java EE 8。
我有一个使用 Netbeans 开发的 JavaEE 简单 HelloWorld 项目。如果我调试它或 运行 它在这些情况下(至少)按预期工作:
1) Netbeans 8.2 + Wildfly 12
2) Netbeans 10 + Wildfly 12
3) Netbeans 11 + Wildfly 12
但它失败了(至少):
1) Netbeans 8.2 + Wildfly 15
2) Netbeans 10 + Wildfly 15
3) Netbeans 11 + Wildfly 15
当我尝试 运行 或使用 Wildfly 15 调试时显示的错误是:
Browsing: http://localhost:8080undefined/
java.net.MalformedURLException: For input string: "8080undefined"
at java.net.URL.<init>(URL.java:627)
at java.net.URL.<init>(URL.java:490)
at java.net.URL.<init>(URL.java:439)
at org.netbeans.modules.ant.browsetask.NbBrowse.execute(NbBrowse.java:67)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292)
at sun.reflect.GeneratedMethodAccessor78.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:99)
at org.apache.tools.ant.Task.perform(Task.java:350)
at org.apache.tools.ant.Target.execute(Target.java:449)
at org.apache.tools.ant.Target.performTasks(Target.java:470)
at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1388)
at org.apache.tools.ant.Project.executeTarget(Project.java:1361)
at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
at org.apache.tools.ant.Project.executeTargets(Project.java:1251)
at org.apache.tools.ant.module.bridge.impl.BridgeImpl.run(BridgeImpl.java:261)
at org.apache.tools.ant.module.run.TargetExecutor.run(TargetExecutor.java:574)
at org.netbeans.core.execution.RunClassThread.run(RunClassThread.java:128)
Caused by: java.lang.NumberFormatException: For input string: "8080undefined"
如果我更深入地研究这个问题,这似乎是由于构建-impl.xml上对${client.url}的错误解释造成的,但我不知道如何解决它。
解决方法是添加
<target if="do.display.browser.debug" name="debug-display-browser">
<nbbrowse context="" url="http://localhost:8080/" urlPath="${client.urlPart}"/>
</target>
在项目根目录 build.xml 的末尾,但我想知道如何解决问题的根源。
不得不说这个错误不是blocking,也就是说项目部署成功,但是浏览器打不开,有点烦人。如果我手动打开浏览器并记下 URL 然后一切正常。
亲切的问候
!!!!更新于 2019 年 10 月 5 日。现在有一个解决方案 - 请参阅此答案的下半部分。 !!!!
这是一个答案,但不幸的是不是解决方案!...
这可能与 Wildfly 15.0.1.Final - Web Application Error 重复,但未提供解决方案。
我也可以用 Netbeans 8.2 + Wildfly 15 重现您的问题,尽管它在 Wildfly 12 上运行良好。您不太可能从 NB 8.2 的 Oracle 获得任何修复。
请注意,有一个关于将 Wildfly 与 NB11 一起使用的公开错误报告:NETBEANS-2415 Bring back support for WildFly server。显然(至少)插件存在许可问题:
AFAIK,该插件存在许可问题。我们有来自他们的贡献者,他试图推动管理层为 Wildfly 插件提供 Apache 兼容许可证。如果这不起作用,插件可能需要移动到外部门户。
另请参阅打开的错误报告 NETBEANS-2367 wildfly support disabled, and this this discussion: No wildlfy plugin on Netbeans 11
- 正如您所指出的:
- 这不是 Wildfly 的问题,而是 NetBeans 的问题。
- 这很烦人,但并不严重。
总结:
- 您几乎肯定不会从 Oracle 获得有关 NetBeans 8.2 问题的修复程序。
- 对于最新版本的 Apache NetBeans (>= NetBeans 9.0),目前似乎不支持 Wildfly。在解决此问题之前,您也不会获得任何最新 NetBeans 版本的修复。
于 10/5/19 更新以提供真正的解决方案:
- 有个new Wildfly plugin available for NetBeans.
- 有关详细信息,请参阅最近关于 Bug Report NETBEANS-2415 Bring back support for WildFly server 的讨论。
- 下载该插件,然后使用工具 > 插件 > 下载 > 添加插件安装它...。 NetBeans 将重新启动。
- Download and unzip the latest version of Wildfly(如有必要),然后在 服务 选项卡上 select 服务器 > 添加服务器... 添加 Wildfly 服务器。
- 创建一个 Web 应用程序并将其部署并 运行 在该 Wildfly 服务器上。它应该可以正常工作。
备注:
- 我通过使用 JDK 13 在 NetBeans 11.1 上创建 Maven Web 应用程序并在 Wildfly 18 上 运行 对其进行验证。
- 顺便说一句,Wildfly 17 及更高版本支持 Java EE 8。