我在Mac上安装了Netbeans 11.2 IDE。在服务->服务器下,我添加了GlassFish Server作为服务器。
然后我打开了一个Maven项目。我可以“清理并构建”它。然后我想运行它,但这导致以下错误消息:
No suitable Deployment Server is defined for the project or globally.
我想这与以下内容有关:Netbeans中有一个名为“输出-Java DB数据库进程”的窗口,当我启动GlassFish Server时,该窗口向我显示此消息:
Sat Feb 08 18:02:45 CET 2020 : Security manager installed using the Basic server security policy.
Sat Feb 08 18:02:46 CET 2020 : Could not listen on port 1527 on host localhost: java.net.BindException: Address already in use (Bind failed)
我使用以下命令来检查哪个进程正在使用端口1527:
sudo lsof -n -i :1527 | grep LISTEN
这产生了以下输出(注意:我删除了真实的用户名和真实的IP地址)
java 6722 <user> 36u IPv6 <IP Address> 0t0 TCP 127.0.0.1:tlisrv (LISTEN)
由于这是一个Java进程,所以我不想杀死它。
我该怎么办?
PS:
GlassFish Server的版本为5.1.0,请参见屏幕截图:
PPS:这个问题对我没有帮助: NetBeans:没有为项目或全局定义合适的Deployment Server
PPPS:服务器日志显示以下内容:
Context path from ServletContext: differs from path from bundle: /|#]
这是日志的屏幕截图:
PPPPS:
文件nb-configuration.xml的内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<project-shared-configuration>
<properties xmlns="http://www.netbeans.org/ns/maven-properties-data/1">
<org-netbeans-modules-maven-j2ee.netbeans_2e_hint_2e_j2eeVersion>1.7-web</org-netbeans-modules-maven-j2ee.netbeans_2e_hint_2e_j2eeVersion>
<org-netbeans-modules-maven-j2ee.netbeans_2e_hint_2e_deploy_2e_server>gfv3ee6</org-netbeans-modules-maven-j2ee.netbeans_2e_hint_2e_deploy_2e_server>
</properties>
</project-shared-configuration>
对于glassfish 5.1,应在nb-configuration.xml中更改此参数。
尝试先将gfv3ee6更改 为gfv5ee8,然后将1.7-web更改为1.8-web
对我来说,这个配置:
<properties xmlns="http://www.netbeans.org/ns/maven-properties-data/1">
<org-netbeans-modules-maven-j2ee.netbeans_2e_hint_2e_j2eeVersion>1.8-web</org-netbeans-modules-maven-j2ee.netbeans_2e_hint_2e_j2eeVersion>
<org-netbeans-modules-maven-jaxws.rest_2e_config_2e_type>ide</org-netbeans-modules-maven-jaxws.rest_2e_config_2e_type>
<org-netbeans-modules-maven-j2ee.netbeans_2e_hint_2e_deploy_2e_server>gfv5ee8</org-netbeans-modules-maven-j2ee.netbeans_2e_hint_2e_deploy_2e_server>
</properties>
它应该解决此错误:
No suitable Deployment Server is defined for the project or globally.
至于
Context path from ServletContext: differs from path from bundle: /|#
错误尝试关闭(或杀死,包括NetBeans本身)所有Java进程,然后再次启动NetBeans并运行项目。看来您的项目已部署到另一个glassfish实例(以前的版本?)。
我想您不必担心这些消息:
Sat Feb 08 18:02:45 CET 2020 : Security manager installed using the Basic server security policy.
Sat Feb 08 18:02:46 CET 2020 : Could not listen on port 1527 on host localhost: java.net.BindException: Address already in use (Bind failed)
除非确实是因为以前的玻璃鱼。在这种情况下,只需停止或终止前一个实例即可。
非常感谢!那解决了。