java.net.MalformedURLException:对于输入字符串:

我有一个使用 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)

如果我更深入地研究这个问题,它似乎是由 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,那么一切正常。



噜噜哒
浏览 321回答 1
1回答

红糖糍粑

这是一个答案,但不幸的是不是一个解决方案!...这可能是Wildfly 15.0.1.Final - Web Application Error的副本,但没有提供解决方案。我也可以使用 Netbeans 8.2 + Wildfly 15 重现您的问题,尽管它在 Wildfly 12 上运行良好。您不太可能从 Oracle 为 NB 8.2 获得任何修复。请注意,有一个关于将 Wildfly 与 NB11 一起使用的开放错误报告:NETBEANS-2415 恢复对 WildFly 服务器的支持。显然(至少)插件存在许可问题:AFAIK,该插件存在许可证问题。我们有一个来自他们的贡献者,他试图推动管理层为 Wildfly 插件提供与 Apache 兼容的许可证。如果这不起作用,插件可能需要移动到外部门户。另请参阅打开的错误报告NETBEANS-2367 wildfly support disabled,以及此讨论:Netbeans 11 上没有 wildlfy 插件正如你所指出的:这不是 Wildfly 的问题,而是 NetBeans 的问题。这很烦人,但并不严重。总之:几乎可以肯定,Oracle 的 NetBeans 8.2 无法解决您的问题。对于 Apache NetBeans (>= NetBeans 9.0) 的最新版本,目前似乎不支持 Wildfly。在此问题得到解决之前,您也不会获得任何针对最新 NetBeans 版本的修复程序。有一个可用于 NetBeans 的新 Wildfly 插件。有关更多详细信息,请参阅最近关于错误报告 NETBEANS-2415 恢复对 WildFly 服务器的支持的讨论。下载该插件,然后使用Tools > Plugins > Downloaded > Add Plugins...安装它。NetBeans 将重新启动。下载并解压缩最新版本的 Wildfly(如有必要),然后在“服务”选项卡上选择“服务器”>“添加服务器...”以添加该 Wildfly 服务器。创建一个 Web 应用程序并在该 Wildfly 服务器上部署和运行它。它应该可以正常工作。笔记:我通过使用 JDK 13 在 NetBeans 11.1 上创建一个 Maven Web 应用程序并在 Wildfly 18 上运行它来验证这一点。另外,Wildfly 17 及更高版本支持 Java EE 8。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java