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