web-dev-qa-db-ja.com

すでに使用されているアドレス:JVM_Bind

WindowsでGlassfish 3.0.1、JVM 1.6.0_21を使用していますXP Pro;

私の環境で何が変わったのか正確にはわかりませんが、エンタープライズアプリケーション(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"

[〜#〜] edit [〜#〜]ここでは、まさに私が試したものです:

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コンテナーの初期化エラーがサーバーのログに記録される前に、ポストの開始時にスタックトレースがポストされます)

25
Bogdan

Windowsを使用していることに気づきました。これは、発信ソケットに小さいポート番号を使用することについて特に悪いことです。 glassfishの使用に依存するポート番号を予約する方法については、 here を参照してください。

10
MrPotes

ローカルポート443/8181/3820が使用されます。

Linux/unixを使用している場合:

  • つかいます netstat -anおよびlsof -nこのポートを使用しているユーザーを確認するには

Windowsを使用している場合

  • つかいます netstat -anおよび tcpview をチェックします。
46
J-16 SDiZ

windowsでは、管理者権限でcmd.exeウィンドウを開き、netstat -a -b -oポートを保持するプロセスのIDを取得し、タスクマネージャーを使用してポートを強制終了できます。

5
epeleg

例外は、同じポートで別のサーバーが既に実行されていると言っているためです。あなたはそのサービスを殺すか、別の詩人で実行するためにglassfishを変更することができます

1

余談ですが、Windowsでは ProcessExplorer は各プロセスの既存のTCP/IP接続を監視するのに最適です。

0
Contango

私の答えはこの問題に100%適合していますが、例外は同じであるため、ソリューションとその背後にあるトラップを文書化したいと思います。

私のポートは常にJunitテストケースでJettyをテストしていました。問題は、EclipseでのGoogleのコードプロでした。これは、バックグラウンドでテストしていたため、いつも私の前で突堤を起動していました。回避策:Eclipseで、*。Javaファイルを常にGoogleのJunitエディターではなくJavaエディターで開くようにします。これが役立つようです。

0
Dirk Schumacher

ログに記録されたエラーは、ポート3820が問題であると言っていますが、allアプリがリッスンしようとしているポートを調査することをお勧めします。私はこの問題に出くわし、問題は忘れていたポートでした-私が探していた「メイン」ポートではありませんでした。

0
Tom Clift

TCPViewユーティリティを使用してみてください。

localport列で、 "busy"ポートで処理されたプロセスがあるかどうかを確認してください。右クリックしてプロセスを終了します。次に、Tomcatを開始してみてください。

それは本当に私のために動作します。

0
prathip

この問題は主に、おそらく実行したいくつかの以前のテストから、実行中のコードの別の問題がある可能性があるために発生します。他のインスタンスを見つけて閉じます。問題がない場合は、サーバーを再起動してください。

0
Lijo George