已在使用的地址:JVM_Bind
我在Windows XP Pro上使用Glassfish 3.0.1,JVM 1.6.0_21;
我不确切知道我的环境中发生了什么变化,但是一旦我尝试部署企业应用程序(ejb模块+应用程序客户端模块),我就会得到这个堆栈跟踪。
端口3820上没有任何东西在运行,除了Glassfish …我用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.(ServerSocket.java:185) at javax.net.ssl.SSLServerSocket.(SSLServerSocket.java:106) at com.sun.net.ssl.internal.ssl.SSLServerSocketImpl.(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.(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.(BaseContainer.java:558) at com.sun.ejb.containers.AbstractSingletonContainer.(AbstractSingletonContainer.java:136) at com.sun.ejb.containers.CMCSingletonContainer.(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上进行侦听(在EJB容器初始化错误之前,我在服务器日志中获得了在post的开头发布的栈跟踪)
我注意到你正在使用Windows,这对于使用低端口号进行传出套接字特别糟糕。 请参阅此处了解如何保留您想要用于glassfish的端口号。
您使用的是本地端口443/8181/3820。
如果您使用的是linux / unix:
- 使用
netstat -an
和lsof -n
来检查谁正在使用此端口
如果你在窗户上
- 使用
netstat -an
和tcpview
进行检查。
在Windows上打开一个具有管理员权限的cmd.exe窗口并使用netstat -a -b -o
你将获得保存你的端口并能够使用任务管理器杀死它的进程的id。
例外情况说,已经有另一台服务器在同一个端口上运行。 你可以杀死那个服务,也可以改变玻璃鱼在另一个诗人身上运行
记录的错误确实说端口3820是问题,但我建议调查你的应用程序试图监听的所有端口。 我遇到了这个问题,问题是我忘记了一个端口 – 而不是我正在寻找的“主要”端口。
另外,在Windows下, ProcessExplorer非常适合观察每个进程的现有TCP / IP连接。
您可以尝试使用TCPView实用程序。
尝试在localport列中查找是否有任何进程在“忙”端口上工作。 右键单击并结束该过程。 然后尝试启动Tomcat 。
它真的对我有用。
我的答案100%适合这个问题,但我想记录我的解决方案及其背后的陷阱,因为Exception是相同的。
我的端口总是在Junit测试用例中测试Jetty。 问题是谷歌的Eclipse代码专业版,我猜测,它是在后台进行测试,因此始终在我面前开始测试。 解决方法:让Eclipse打开* .java文件始终使用Java编辑器而不是Google的Junit编辑器。 这似乎有所帮助。
出现这个问题主要是因为可能存在另一个运行代码,从您最有可能进行的一些先前测试开始。 找出并关闭任何其他实例,如果没有问题,请尝试重新启动服务器。