我在新设置的Debian" Squeeze"上启动Glassfish 3.1
时遇到问题。服务器。这是一个已设置的测试服务器,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
仍在运行时是从源服务器复制的。也许有某种pid文件或锁定文件也被复制了。
有关如何启动Glassfish
的任何建议吗?
修改
执行server.log
命令后,domain1
中的asadmin 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
答案 0 :(得分:40)
首先检查$ HOSTNAME和etc / hosts文件配置,而不是试图找到ps aux或netstat -aon的问题。
> echo $HOSTNAME
响应>服务器(或其他)
> cat /etc/hosts
如果你在127.0.0.1之后看不到“$ HOSTNAME”那么作为回应,然后将其添加到字符串的末尾。 再次尝试执行start-domain命令。
答案 1 :(得分:6)
如果当前主机名转换为有效的IP地址,请检查/ etc / hosts文件。 我认为某些内容是错误配置或简单的IP不存在。
当我将它(在我的情况下)更改回127.0.0.1地址(当然它可能是任何其他工作和连接的IP地址)时,可以再次正确启动glassfish。
答案 2 :(得分:1)
小机会:关闭Netbeans,如果它正在运行并再试一次。
答案 3 :(得分:0)
你试过吗
ps aux | grep glassfish
查看其他实例是否正在运行?
答案 4 :(得分:0)
文件/ etc / host没有带IP的PC名称的问题 在文件中添加此行。
ip_PC name_PC 192.144.168.2服务对象
这有效
http://jvm-java.blogspot.com.es/2010/12/glassfish-v3-linux-process-already.html
答案 5 :(得分:0)
-step 1 开始玻璃鱼 -第2步 更改主机名
结果:启动glassfish时出错
溶液: 1退出主机名,然后离开localhost
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
答案 6 :(得分:0)
我通过向/ etc / host添加新主机名来解决此问题 这是我的主机文件的内容:
127.0.0.1 localhost
127.0.1.1 mozquito <--- this is what I add
然后再次尝试启动asadmin
答案 7 :(得分:0)
当我为我的linux设置主机名时,我在centOS中遇到了类似的问题。 将您的主机名设置为localhost,可能会解决您的问题。
命令:hostname localhost或
在基于redHat的linux中编辑/ etc / sysconfig / network文件。
古德勒克
答案 8 :(得分:0)
当我遇到此错误时,结果是因为计算机未连接到网络,因此无法绑定到/etc/hosts
和{{中设置的IP地址1}}(我使用的是CentOS)。一旦我启用了网络(我的是一个虚拟机),它就可以正常工作。
因此,在我的情况下,该消息具有误导性:没有任何东西(就像玻璃鱼所知)在所需的IP地址上侦听端口4848,但是当尝试连接到该端口时显然有错误因为机器本身没有连接到网络。
答案 9 :(得分:0)
最近(仅适用于Amazon Web Services-AWS),我发现将服务器启动到VPC需要相当多的额外配置(一旦关闭)才能开始。一个关键线索:
nslookup `hostname`
应该有效。如果它不起作用,那可能就是原因。
你可以: 1)将服务器启动到EC2-classic 2)配置您的VPC /主机以便能够成功运行上面的命令。
希望有所帮助。