即使端口未被占用,也无法启动Glassfish 3.1

在新安装的Debian“Squeeze”服务器上启动Glassfish 3.1时出现问题。 这是一个已经安装的testing服务器, Glassfish安装从一个工作服务器复制到另一个服务器。

我试过跑步:

 # ./asadmin start-domain There is a process already using the admin port 4848 -- it probably is another instance of a GlassFish server. Command start-domain failed. 

我也尝试重新启动域,因为我想也许它正在运行:

 # ./asadmin restart-domain Server is not running, will attempt to start it... There is a process already using the admin port 4848 -- it probably is another instance of a GlassFish server. Command restart-domain failed. 

在这一点上,我确认Glassfish没有运行,所以我检查了4848端口是否被占用:

 # netstat -aon | grep 4848 

没有任何返回。

我怀疑在Glassfish还在运行时, Glassfish是从源服务器复制的。 也许有某种forms的pid文件或锁文件也被复制过。

有关如何让Glassfish开始的build议?

编辑

这是执行asadmin start-domain命令后来自domain1server.log文件:

 Sep 12, 2011 11:18:02 AM com.sun.enterprise.admin.launcher.GFLauncherLogger info INFO: JVM invocation command line: /opt/glassfish3/jdk/bin/java -cp /opt/glassfish3/glassfish/modules/glassfish.jar -XX:+UnlockDiagnosticVMOptions -XX:MaxPermSize=192m -XX:NewRatio=2 -Xmx512m -client -javaagent:/opt/glassfish3/glassfish/lib/monitor/flashlight-agent.jar -Dosgi.shell.telnet.maxconn=1 -Djdbc.drivers=org.apache.derby.jdbc.ClientDriver -Dfelix.fileinstall.disableConfigSave=false -Dfelix.fileinstall.dir=/opt/glassfish3/glassfish/modules/autostart/ -Djavax.net.ssl.keyStore=/opt/glassfish3/glassfish/domains/domain1/config/keystore.jks -Dosgi.shell.telnet.port=6666 -Djava.security.policy=/opt/glassfish3/glassfish/domains/domain1/config/server.policy -Dfelix.fileinstall.log.level=2 -Dfelix.fileinstall.poll=5000 -Dcom.sun.aas.instanceRoot=/opt/glassfish3/glassfish/domains/domain1 -Dosgi.shell.telnet.ip=127.0.0.1 -Dcom.sun.enterprise.config.config_environment_factory_class=com.sun.enterprise.config.serverbeans.AppserverConfigEnvironmentFactory -Djava.endorsed.dirs=/opt/glassfish3/glassfish/modules/endorsed:/opt/glassfish3/glassfish/lib/endorsed -Dcom.sun.aas.installRoot=/opt/glassfish3/glassfish -Djava.ext.dirs=/opt/glassfish3/jdk/lib/ext:/opt/glassfish3/jdk/jre/lib/ext:/opt/glassfish3/glassfish/domains/domain1/lib/ext -Dfelix.fileinstall.bundles.startTransient=true -Dfelix.fileinstall.bundles.new.start=true -Djavax.net.ssl.trustStore=/opt/glassfish3/glassfish/domains/domain1/config/cacerts.jks -Dorg.glassfish.additionalOSGiBundlesToStart=org.apache.felix.shell,org.apache.felix.gogo.runtime,org.apache.felix.gogo.shell,org.apache.felix.gogo.command -Dcom.sun.enterprise.security.httpsOutboundKeyAlias=s1as -DANTLR_USE_DIRECT_CLASS_LOADING=true -Djava.security.auth.login.config=/opt/glassfish3/glassfish/domains/domain1/config/login.conf -Dgosh.args=--nointeractive -Djava.library.path=/opt/glassfish3/glassfish/lib:/opt/glassfish3/jdk/jre/lib/amd64/server:/opt/glassfish3/jdk/jre/lib/amd64:/opt/glassfish3/jdk/lib/amd64:/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib com.sun.enterprise.glassfish.bootstrap.ASMain -domainname domain1 -asadmin-args --host,,,localhost,,,--port,,,4848,,,--secure=false,,,--terse=false,,,--echo=false,,,--interactive=true,,,start-domain,,,--verbose=false,,,--debug=false,,,--domaindir,,,/opt/glassfish3/glassfish/domains,,,domain1 -instancename server -verbose false -debug false -asadmin-classpath /opt/glassfish3/glassfish/modules/admin-cli.jar -asadmin-classname com.sun.enterprise.admin.cli.AsadminMain -upgrade false -type DAS -domaindir /opt/glassfish3/glassfish/domains/domain1 -read-stdin true 

Solutions Collecting From Web of "即使端口未被占用,也无法启动Glassfish 3.1"

首先检查$ HOSTNAME和etc / hosts文件配置,而不是尝试使用ps aux或netstat -aon来查找问题。

 > echo $HOSTNAME 

响应>服务器(或其他)

 > cat /etc/hosts 

作为回应,如果在127.0.0.1之后无法看到“$ HOSTNAME”,则将其添加到字符串的末尾。 再次尝试执行start-domain命令。

如果当前主机名转换为有效的IP地址,请检查您的/ etc / hosts文件。 我认为有些配置不当,或者IP不存在。

当我把它改回(在我的情况下)到127.0.0.1地址(当然它可以是除了工作和连接的IP地址以外的其他地址),glassfish可以再次正确启动。

小小的机会:如果Netbeans正在运行,请重试。

你有没有尝试过

 ps aux | grep glassfish 

看看是否有其他实例正在运行?

文件/ etc /主机没有将IP名称与IP在文件中添加此行的问题。

ip_PC name_PC 192.144.168.2 miserver

这工作

http://jvm-java.blogspot.com.es/2010/12/glassfish-v3-linux-process-already.html

步骤1启动glassfish -step 2更改主机名称

结果:错误启动glassfish

解决方案:1退出主机名,只是离开本地主机

2开始玻璃鱼3停止玻璃鱼

4添加主机名

5开始玻璃鱼,它的作品!

$ cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 :: 1 localhost localhost.localdomain localhost6 localhost6.localdomain6 192.168.1.2 YOURHOSTNAME

$ glassfish4/bin/asadmin start-domain等待domain1启动…….成功启动域:domain1

我通过添加新的主机名到/ etc / host来解决这个问题,这是我的主机文件的内容:

 127.0.0.1 localhost 127.0.1.1 mozquito <--- this is what I add 

然后尝试重新启动你的asadmin

我遇到类似的问题在centOS当我设置主机名为我的Linux。 设置你的主机名为localhost,可能你的问题就解决了。

命令:主机名localhost或

在基于redHat的linux中编辑/ etc / sysconfig / network文件。

祝你好运

当我遇到这个错误时,原来是因为机器没有连接到网络,所以无法绑定到在/etc/hosts/etc/sysconfig/network-scripts/ifcfg-eth0设置的IP地址/etc/sysconfig/network-scripts/ifcfg-eth0 (我正在使用CentOS)。 只要我启用网络(我是一个虚拟机)它工作正常。

所以这个消息在我的情况下是误导性的:在端口4848上没有任何东西在所需的IP地址上侦听,但是当试图连接到端口时显然是错误的,因为机器本身没有没有连接到网络。

最近(仅适用于Amazon Web Services-AWS),我发现将服务器启动到VPC需要一些额外的配置(一旦启动)。 一个关键的线索:

  nslookup `hostname` 

应该管用。 如果不起作用,那很可能是原因。

您可以:1)将服务器启动到EC2-classic 2)配置您的VPC /主机,以便能够成功运行上述命令。

希望有所帮助。