2010-09-15 71 views
24

我在Windows XP Pro上使用Glassfish 3.0.1,JVM 1.6.0_21;已在使用的地址:JVM_Bind

我并不确切地知道我的环境中发生了什么变化,但只要我尝试部署企业应用程序(ejb模块+应用程序客户端模块),就会得到此堆栈跟踪。

除了Glassfish,在端口3820上没有任何东西在运行...我用netstat检查服务器停止并启动服务器。

这可能是什么原因造成的?一些内部流程冲突?

关于如何进一步调试的技巧?

WARNING: Can not find resource bundle for this logger. class name that failed: org.glassfish.enterprise.iiop.impl.IIOPSSLSocketFactory 
SEVERE: iiop.createsocket_exception 
WARNING: Can not find resource bundle for this logger. class name that failed: org.glassfish.enterprise.iiop.impl.IIOPSSLSocketFactory 
SEVERE: java.net.BindException: Address already in use: JVM_Bind 
     at java.net.PlainSocketImpl.socketBind(Native Method) 
     at java.net.PlainSocketImpl.bind(PlainSocketImpl.java:365) 
     at java.net.ServerSocket.bind(ServerSocket.java:319) 
     at java.net.ServerSocket.<init>(ServerSocket.java:185) 
     at javax.net.ssl.SSLServerSocket.<init>(SSLServerSocket.java:106) 
     at com.sun.net.ssl.internal.ssl.SSLServerSocketImpl.<init>(SSLServerSocketImpl.java:106) 
     at com.sun.net.ssl.internal.ssl.SSLServerSocketFactoryImpl.createServerSocket(SSLServerSocketFactoryImpl.java:72) 
     at org.glassfish.enterprise.iiop.impl.IIOPSSLSocketFactory.createSSLServerSocket(IIOPSSLSocketFactory.java:402) 
     at org.glassfish.enterprise.iiop.impl.IIOPSSLSocketFactory.createServerSocket(IIOPSSLSocketFactory.java:281) 
     at com.sun.corba.ee.impl.transport.SocketOrChannelAcceptorImpl.initialize(SocketOrChannelAcceptorImpl.java:91) 
     at com.sun.corba.ee.impl.transport.CorbaTransportManagerImpl.getAcceptors(CorbaTransportManagerImpl.java:247) 
     at com.sun.corba.ee.impl.transport.CorbaTransportManagerImpl.addToIORTemplate(CorbaTransportManagerImpl.java:264) 
     at com.sun.corba.ee.spi.oa.ObjectAdapterBase.initializeTemplate(ObjectAdapterBase.java:131) 
     at com.sun.corba.ee.impl.oa.poa.POAImpl.initialize(POAImpl.java:474) 
     at com.sun.corba.ee.impl.oa.poa.POAImpl.makeRootPOA(POAImpl.java:323) 
     at com.sun.corba.ee.impl.oa.poa.POAFactory$1.evaluate(POAFactory.java:279) 
     at com.sun.corba.ee.impl.orbutil.closure.Future.evaluate(Future.java:57) 
     at com.sun.corba.ee.impl.resolver.LocalResolverImpl.resolve(LocalResolverImpl.java:51) 
     at com.sun.corba.ee.impl.resolver.CompositeResolverImpl.resolve(CompositeResolverImpl.java:55) 
     at com.sun.corba.ee.impl.orb.ORBImpl.resolve_initial_references(ORBImpl.java:1289) 
     at com.sun.corba.ee.impl.naming.cosnaming.TransientNameService.initialize(TransientNameService.java:122) 
     at com.sun.corba.ee.impl.naming.cosnaming.TransientNameService.<init>(TransientNameService.java:90) 
     at org.glassfish.enterprise.iiop.impl.PEORBConfigurator.configure(PEORBConfigurator.java:154) 
     at com.sun.corba.ee.impl.orb.ORBConfiguratorImpl.runUserConfigurators(ORBConfiguratorImpl.java:191) 
     at com.sun.corba.ee.impl.orb.ORBConfiguratorImpl.configure(ORBConfiguratorImpl.java:176) 
     at com.sun.corba.ee.impl.orb.ORBImpl.postInit(ORBImpl.java:579) 
     at com.sun.corba.ee.impl.orb.ORBImpl.set_parameters(ORBImpl.java:680) 
     at com.sun.corba.ee.impl.orb.ORBImpl.setParameters(ORBImpl.java:666) 
     at com.sun.corba.ee.spi.osgi.ORBFactory.initialize(ORBFactory.java:91) 
     at org.glassfish.enterprise.iiop.impl.GlassFishORBManager.initORB(GlassFishORBManager.java:612) 
     at org.glassfish.enterprise.iiop.impl.GlassFishORBManager.getORB(GlassFishORBManager.java:289) 
     at org.glassfish.enterprise.iiop.impl.GlassFishORBFactoryImpl.createORB(GlassFishORBFactoryImpl.java:83) 
     at org.glassfish.enterprise.iiop.api.GlassFishORBHelper.getORB(GlassFishORBHelper.java:122) 
     at org.glassfish.enterprise.iiop.api.GlassFishORBHelper.getProtocolManager(GlassFishORBHelper.java:189) 
     at com.sun.ejb.containers.BaseContainer.initializeProtocolManager(BaseContainer.java:810) 
     at com.sun.ejb.containers.BaseContainer.<init>(BaseContainer.java:558) 
     at com.sun.ejb.containers.AbstractSingletonContainer.<init>(AbstractSingletonContainer.java:136) 
     at com.sun.ejb.containers.CMCSingletonContainer.<init>(CMCSingletonContainer.java:73) 
     at com.sun.ejb.containers.ContainerFactoryImpl.createContainer(ContainerFactoryImpl.java:109) 
     at org.glassfish.ejb.startup.EjbApplication.loadContainers(EjbApplication.java:207) 
     at org.glassfish.ejb.startup.EjbDeployer.load(EjbDeployer.java:197) 
     at org.glassfish.ejb.startup.EjbDeployer.load(EjbDeployer.java:63) 
     at org.glassfish.internal.data.ModuleInfo.load(ModuleInfo.java:175) 
     at org.glassfish.internal.data.ApplicationInfo.load(ApplicationInfo.java:216) 
     at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:338) 
     at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:183) 
     at org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:272) 
     at com.sun.enterprise.v3.admin.CommandRunnerImpl$1.execute(CommandRunnerImpl.java:305) 
     at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:320) 
     at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1176) 
     at com.sun.enterprise.v3.admin.CommandRunnerImpl.access$900(CommandRunnerImpl.java:83) 
     at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1235) 
     at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1224) 
     at com.sun.enterprise.v3.admin.AdminAdapter.doCommand(AdminAdapter.java:365) 
     at com.sun.enterprise.v3.admin.AdminAdapter.service(AdminAdapter.java:204) 
     at com.sun.grizzly.tcp.http11.GrizzlyAdapter.service(GrizzlyAdapter.java:166) 
     at com.sun.enterprise.v3.server.HK2Dispatcher.dispath(HK2Dispatcher.java:100) 
     at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:245) 
     at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:791) 
     at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:693) 
     at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:954) 
     at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:170) 
     at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:135) 
     at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:102) 
     at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:88) 
     at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:76) 
     at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:53) 
     at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:57) 
     at com.sun.grizzly.ContextTask.run(ContextTask.java:69) 
     at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:330) 
     at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:309) 
     at java.lang.Thread.run(Thread.java:619) 

WARNING: Can not find resource bundle for this logger. class name that failed: org.glassfish.enterprise.iiop.impl.IIOPSSLSocketFactory 
WARNING: Can not find resource bundle for this logger. class name that failed: org.glassfish.enterprise.iiop.impl.IIOPSSLSocketFactory 
SEVERE: "IOP00410216: (COMM_FAILURE) Unable to create IIOP listener on the specified host/port: all interfaces/3820" 

编辑 这正是我想:

C:\Documents and Settings\b.tanase>netstat -p tcp -ano | findstr :3820 

asadmin> start-domain domain1 
Waiting for DAS to start ... 
Started domain: domain1 
Domain location: D:\java\glassfish-3.0.1\glassfish\domains\domain1 
Log file: D:\java\glassfish-3.0.1\glassfish\domains\domain1\logs\server.log 
Admin port for the domain: 4848 
Command start-domain executed successfully. 

C:\Documents and Settings\b.tanase>netstat -p tcp -ano | findstr :3820 

asadmin> deploy d:/java/projects/netbeans-projects/CountingSystem/dist/CountingS 
ystem.ear 
com.sun.enterprise.admin.cli.CommandException: remote failure: Exception while l 
oading the app : java.lang.RuntimeException: EJB Container initialization error 
Exception while invoking class org.glassfish.ejb.startup.EjbDeployer load method 
: java.lang.RuntimeException: EJB Container initialization error 


Command deploy failed. 

C:\Documents and Settings\b.tanase>netstat -p tcp -ano | findstr :3820 
    TCP 0.0.0.0:3820   0.0.0.0:0    LISTENING  2428 

正如你所看到的没有什么监听端口3820,直到部署failes(之前EJB容器初始化错误,我得到的服务器记录发布在帖子开始处的堆栈跟踪)

+0

你尝试使用另一个端口吗? changin港口工作 – Jayan 2010-09-15 06:48:17

+0

。我必须更改SSL和SSL_MUTUALAUTH。问题仍然存在,为什么会发生? – Bogdan 2010-09-15 07:27:47

+0

你也检查过端口3700吗? – 2012-02-21 01:24:23

回答

9

我注意到你正在使用Windows,这是特别糟糕的使用低端口号为传出套接字。请参阅here以了解如何预留您想要依赖的用于glassfish的端口号。

+0

感谢您的链接;可能是有用的。你认为你可以详细阐述“窗口......使用低端口号码特别糟糕......”还是给我一个进一步阅读的链接? – Bogdan 2010-11-25 10:11:57

+0

@Bogdan还有另一个堆栈溢出问题,提供了更多的细节,http://stackoverflow.com/questions/2630009/how-can-i-work-around-winxp-using-ports-1025-5000-as-ephemeral – MrPotes 2011-04-14 15:09:05

+0

感谢您的链接。这似乎是发生事件的最可能原因。当我再次遇到它时,我会记住它。 – Bogdan 2011-04-14 16:19:22

44

使用本地端口443/8181/3820。

如果你是在Linux/UNIX:

  • 使用netstat -anlsof -n如果您使用的是Windows

    • 使用netstat -antcpview检查谁在使用这个端口

    去检查。

+15

提及tcpview的+1 – 2010-09-15 05:55:22

+0

根据netstat&tcpview,在运行glassfish和尝试部署应用程序之前,端口3820上没有运行任何东西。看到我的更新 – Bogdan 2010-09-15 06:17:57

+3

tcpview救了我的命。 +1。它有助于知道tcpview可以终止使用您需要的端口的服务。 – crstamps2 2012-02-20 15:25:32

1

作为例外说明已经有另一台服务器在同一个端口上运行。你可以杀死该服务或更改玻璃鱼运行在另一位诗人

+0

你是如何杀死它的? – CodyBugstein 2014-05-13 22:31:04

0

记录的错误确实说3820端口是问题,但我会建议调查所有您的应用试图侦听的端口。我遇到了这个问题,这个问题是我忘记的一个端口 - 而不是我正在寻找的“主”端口。

0

顺便说一下,在Windows下,ProcessExplorer对于观察每个进程的现有TCP/IP连接是非常棒的。

0

您可以尝试使用TCPView实用程序。

试图找到本地端口列有没有任何进程工作“忙”端口。右键单击并结束该过程。然后尝试启动Tomcat

它真的适合我。

5

在Windows上打开带有管理员权限的cmd.exe窗口并使用netstat -a -b -o 您将获得保存您的端口并能够使用任务管理器将其终止的进程的ID。

0

我的答案100%适合这个问题,但我想记录我的解决方案和它背后的陷阱,因为Exception是相同的。

我的端口始终在Junit测试用例中测试Jetty。问题在于Eclipse的代码专业版,我猜测它是在后台进行测试,因此始终在我之前启动码头。 解决方法:让Eclipse始终使用Java编辑器而不是Google的Junit编辑器打开* .java文件。这似乎有帮助。

0

这个问题大多发生是因为可能会有另一个代码运行,从以前的一些测试中,你很可能会运行。找出并关闭任何其他实例,或者如果没有问题,请尝试重新启动服务器。

+0

如何关闭另一个实例? – CodyBugstein 2015-09-27 18:16:00