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

Mar*_*ard 21 java linux glassfish-3

我在Glassfish 3.1新设置的Debian"Squeeze"服务器上遇到了麻烦.这是一个已设置的测试服务器,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.
Run Code Online (Sandbox Code Playgroud)

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

# ./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.
Run Code Online (Sandbox Code Playgroud)

此时我确认Glassfish没有运行所以我检查了端口4848是否被占用:

# netstat -aon | grep 4848
Run Code Online (Sandbox Code Playgroud)

什么也没有回来.

我怀疑是GlassfishGlassfish运行时从源服务器复制的.也许有某种pid文件或锁定文件也被复制了.

有关如何Glassfish开始的任何建议?

编辑

这是执行命令后的server.log文件:domain1asadmin start-domain

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
Run Code Online (Sandbox Code Playgroud)

Emr*_*ğlu 40

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

> echo $HOSTNAME
Run Code Online (Sandbox Code Playgroud)

响应>服务器(或等)

> cat /etc/hosts
Run Code Online (Sandbox Code Playgroud)

作为响应,如果您在127.0.0.1之后看不到"$ HOSTNAME",则将其添加到字符串的末尾.再次尝试执行start-domain命令.

  • 这个答案已经过去 5 年了,现在这对我帮助很大,谢谢! (2认同)

Mik*_*van 6

如果当前主机名转换为有效的IP地址,请检查/ etc/hosts文件.我认为某些东西是错误的配置或简单的IP不存在.

当我将它(在我的情况下)更改回127.0.0.1地址(当然它可以是任何其他但工作和附加的IP地址)时,可以再次正确启动glassfish.