java.net.MalformedURLException:对于输入字符串:";8080undefined";在Wildfly 15中运行或调试Netbeans Java项目时

java.net.MalformedURLException:对于输入字符串:";8080undefined";在Wildfly 15中运行或调试Netbeans Java项目时,java,jakarta-ee,netbeans,wildfly,wildfly-15,Java,Jakarta Ee,Netbeans,Wildfly,Wildfly 15,我有一个使用Netbeans开发的JavaEE简单HelloWorld项目。如果我调试或运行它,它在这些情况下会按预期工作(至少): 但它失败了(至少): 尝试使用Wildfly 15运行或调试时显示的错误是: Browsing: http://localhost:8080undefined/ java.net.MalformedURLException: For input string: "8080undefined" at java.net.URL.<init>(UR

我有一个使用Netbeans开发的JavaEE简单HelloWorld项目。如果我调试或运行它,它在这些情况下会按预期工作(至少):

但它失败了(至少):

尝试使用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"
浏览:http://localhost:8080undefined/
java.net.MalformedURLException:对于输入字符串:“8080undefined”
位于java.net.URL。(URL.java:627)
在java.net.URL.(URL.java:490)
在java.net.URL.(URL.java:439)
位于org.netbeans.modules.ant.browsetask.NbBrowse.execute(NbBrowse.java:67)
位于org.apache.tools.ant.UnknowneElement.execute(unknowneElement.java:292)
位于sun.reflect.GeneratedMethodAccessor78.invoke(未知源)
在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)中
位于java.lang.reflect.Method.invoke(Method.java:498)
位于org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:99)
位于org.apache.tools.ant.Task.perform(Task.java:350)
位于org.apache.tools.ant.Target.execute(Target.java:449)
位于org.apache.tools.ant.Target.performTasks(Target.java:470)
位于org.apache.tools.ant.Project.executeSortedTargets(Project.java:1388)
位于org.apache.tools.ant.Project.executeTarget(Project.java:1361)
位于org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
位于org.apache.tools.ant.Project.executeTargets(Project.java:1251)
位于org.apache.tools.ant.module.bridge.impl.BridgeImpl.run(BridgeImpl.java:261)
位于org.apache.tools.ant.module.run.TargetExecutor.run(TargetExecutor.java:574)
位于org.netbeans.core.execution.RunClassThread.run(RunClassThread.java:128)
原因:java.lang.NumberFormatException:对于输入字符串:“8080undefined”
如果我深入研究这个问题,它似乎是由build-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的末尾,我想知道如何修复问题的根源

我不得不说,错误不是阻塞,这意味着项目已成功部署,但浏览器未打开,这令人恼火。如果我手动打开浏览器并写下URL,那么一切都会正常进行

亲切的问候

!!!!19年5月10日更新。现在有了一个解决方案-请参阅此答案的下半部分


这是一个答案,但不幸的是不是一个解决方案

  • 这可能是的副本,但没有提供解决方案

  • 我还可以用Netbeans 8.2+Wildfly 15重现您的问题,尽管它在Wildfly 12上运行良好。您不太可能从Oracle for NB 8.2获得任何解决方案

  • 请注意,有一个关于在NB11中使用Wildfly的公开错误报告:。显然(至少)插件存在许可问题:

    抱歉,这个插件有许可证问题。我们有一位来自他们的贡献者,他试图推动管理层为wildfly插件提供与Apache兼容的许可证。如果这不起作用,插件可能需要移动到外部门户

  • 另请参见open bug report和以下讨论:

  • 正如你所指出的:
    • 这不是Wildfly的问题,而是NetBeans的问题
    • 这很烦人,但并不严重
总之:

  • 您几乎肯定无法从Oracle获得解决NetBeans 8.2问题的方法
  • 对于Apache NetBeans(>=NetBeans 9.0)的最新版本,目前似乎不支持Wildfly。在这一问题得到解决之前,您也不会得到任何更新的NetBeans版本的修复

于19年5月10日更新,以提供真正的解决方案:

  • 有一个问题
  • 有关详细信息,请参阅最近关于的讨论
  • 下载该插件,然后使用工具>插件>下载>添加插件…进行安装。NetBeans将重新启动
  • (如有必要),然后在服务选项卡上选择服务器>添加服务器…以添加该Wildfly服务器
  • 创建一个web应用程序,并在该Wildfly服务器上部署和运行它。它应该可以正常工作
注:

  • 我通过在NetBeans 11.1上创建一个Maven web应用程序、使用JDK 13并在Wildfly 18上运行它来验证这一点
  • 与此无关,Wildfly 17和更高版本支持JavaEE8

8080未定义的
不是有效的端口号,请参阅《感谢BankBuilder》中的第3.1节和第3.3节。这是显而易见的。问题是为什么netbeans得到的是未定义的8080而不是8080(实际端口)。据我所知,这些信息是从Wildfly的xml配置文件中检索到的。从版本13到版本15,我看不出有什么不同。我不认为端口是未定义的源,而是路径。你是如何在代码中设置路径的?它似乎没有得到你的webappcontext@JMart有一个新的用于Wildfly的NetBeans插件可以工作。我在下面更新了我的原始答案。感谢@skomisa的深入研究。恐怕我的问题没有解决办法,至少到目前为止,所以我认为你的答案是可以接受的,因为它有助于理解这个问题。
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"
<target if="do.display.browser.debug" name="debug-display-browser">
        <nbbrowse context="" url="http://localhost:8080/" urlPath="${client.urlPart}"/>
</target>