-1

Windows Server 2008 ボックスで、同じアプリケーションの 2 つのインスタンスを実行しようとしています。このアプリケーション (i2b2) は、Apache Axis 2 Web サービスを使用しています。JAX-WS Web サービスはポート 9090 で実行され、ポート 8083 で JBoss のアプリケーション ソース コードを呼び出しています。混乱を避けるために、アプリケーション コードの完全なコピー (Apache Axis 2 で抽出された war ファイルを含む) を作成しました。 {jboss フォルダー}\server\default\deploy\jboss-webdeployer\server.xml で、2 番目のインスタンスの Web サービスのポート接続を 9090 から 9091 に変更しました。

私はこれについて間違った方法で行っているかもしれません。異なるポートで実行することにはあまり関心がありません。必要なのは 2 つのインスタンスだけです。したがって、アプリケーションのコンパイル済みソース コードのコピーを作成し、ポートを切り替えることが最善の方法ではない場合は、別のアイデアがあれば教えてください。

<Connector port="9091" address="${jboss.bind.address}"    
     maxThreads="250" maxHttpHeaderSize="8192"
     emptySessionPath="true" protocol="HTTP/1.1"
     enableLookups="false" redirectPort="8443" acceptCount="100"
     connectionTimeout="20000" disableUploadTimeout="true" />

JBoss bin フォルダーからこのコマンドを使用して JBoss を起動すると、以下の例外が発生します。ポート 8083 が参照されていることがわかった場所の詳細を参照してください。

run -b 0.0.0.0 > debug.txt

例外:

14:39:04,011 INFO  [Server] Starting JBoss (MX MicroKernel)...
14:39:04,011 INFO  [Server] Release ID: JBoss [Trinity] 4.2.2.GA (build: SVNTag=JBoss_4_2_2_GA date=200710221139)
14:39:04,011 INFO  [Server] Home Dir: C:\i2b2\jboss-4.2.2.GA - QA
14:39:04,011 INFO  [Server] Home URL: file:/C:/i2b2/jboss-4.2.2.GA - QA/
14:39:04,011 INFO  [Server] Patch URL: null
14:39:04,011 INFO  [Server] Server Name: default
14:39:04,011 INFO  [Server] Server Home Dir: C:\i2b2\jboss-4.2.2.GA - QA\server\default
14:39:04,011 INFO  [Server] Server Home URL: file:/C:/i2b2/jboss-4.2.2.GA - QA/server/default/
14:39:04,011 INFO  [Server] Server Log Dir: C:\i2b2\jboss-4.2.2.GA - QA\server\default\log
14:39:04,011 INFO  [Server] Server Temp Dir: C:\i2b2\jboss-4.2.2.GA - QA\server\default\tmp
14:39:04,011 INFO  [Server] Root Deployment Filename: jboss-service.xml
14:39:04,395 INFO  [ServerInfo] Java version: 1.6.0_26,Sun Microsystems Inc.
14:39:04,395 INFO  [ServerInfo] Java VM: Java HotSpot(TM) 64-Bit Server VM 20.1-b02,Sun Microsystems Inc.
14:39:04,396 INFO  [ServerInfo] OS-System: Windows Server 2008 6.0,amd64
14:39:06,280 INFO  [Server] Core system initialized
14:39:07,778 INFO  [WebService] Using RMI server codebase: http://dev-himci2b2:8083/
14:39:07,779 INFO  [Log4jService$URLWatchTimerTask] Configuring from URL: resource:jboss-log4j.xml
14:39:07,893 WARN  [ServiceController] Problem starting service jboss:service=WebService
java.lang.Exception: Port 8083 already in use.
    at org.jboss.web.WebServer.start(WebServer.java:233)
    at org.jboss.web.WebService.startService(WebService.java:322)
    at org.jboss.system.ServiceMBeanSupport.jbossInternalStart(ServiceMBeanSupport.java:289)
    at org.jboss.system.ServiceMBeanSupport.jbossInternalLifecycle(ServiceMBeanSupport.java:245)
    at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
    at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
    at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
    at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
    at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
    at org.jboss.system.ServiceController$ServiceProxy.invoke(ServiceController.java:978)
    at $Proxy0.start(Unknown Source)
    at org.jboss.system.ServiceController.start(ServiceController.java:417)
    at org.jboss.system.ServiceController.start(ServiceController.java:435)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
    at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
    at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
    at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
    at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
    at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
    at $Proxy4.start(Unknown Source)
    at org.jboss.deployment.SARDeployer.start(SARDeployer.java:302)
    at org.jboss.deployment.MainDeployer.start(MainDeployer.java:1025)
    at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:819)
    at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:782)
    at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:766)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
    at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
    at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:133)
    at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
    at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:142)
    at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
    at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
    at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
    at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
    at $Proxy5.deploy(Unknown Source)
    at org.jboss.system.server.ServerImpl.doStart(ServerImpl.java:482)
    at org.jboss.system.server.ServerImpl.start(ServerImpl.java:362)
    at org.jboss.Main.boot(Main.java:200)
    at org.jboss.Main$1.run(Main.java:508)
    at java.lang.Thread.run(Thread.java:662)
Caused by: java.net.BindException: Address already in use: JVM_Bind
    at java.net.PlainSocketImpl.socketBind(Native Method)
    at java.net.PlainSocketImpl.bind(PlainSocketImpl.java:383)
    at java.net.ServerSocket.bind(ServerSocket.java:328)
    at java.net.ServerSocket.<init>(ServerSocket.java:194)
    at org.jboss.web.WebServer.start(WebServer.java:226)
    ... 50 more
14:39:07,919 WARN  [ServiceController] Problem starting service jboss:service=Naming
java.rmi.server.ExportException: Port already in use: 1098; nested exception is: 
    java.net.BindException: Address already in use: JVM_Bind
    at sun.rmi.transport.tcp.TCPTransport.listen(TCPTransport.java:310)
    at sun.rmi.transport.tcp.TCPTransport.exportObject(TCPTransport.java:218)
    at sun.rmi.transport.tcp.TCPEndpoint.exportObject(TCPEndpoint.java:393)

ここで、ポート 8083 が参照されていることがわかりました。ポート 8084 に変更してみましたが、まだポート 8083 を探しているようです。

jboss-4.2.2.GA\server\all\conf\jboss-service.xml

jboss-service.xml のソース コード:

   <!-- ==================================================================== -->
   <!-- Class Loading                                                        -->
   <!-- ==================================================================== -->

   <!-- A mini webserver used for dynamic and class and resource loading --> 
   <mbean code="org.jboss.web.WebService"
      name="jboss:service=WebService">
      <!-- The Bind address and Port -->
      <attribute name="BindAddress">${jboss.bind.address}</attribute>      
      <attribute name="Port">8083</attribute>
      <!--  The address to use for the host portion of the RMI codebase URL -->
      <attribute name="Host">${java.rmi.server.hostname}</attribute>
      <!-- Should non-EJB .class files be downloadable -->
      <attribute name="DownloadServerClasses">true</attribute>
      <!-- Should resources other than .class files be downloadable. Both
         DownloadServerClasses and DownloadResources must be true for resources
         to be downloadable. This is false by default because its generally a
         bad idea as server configuration files that container security
         information can be accessed.
       -->
      <attribute name="DownloadResources">false</attribute>

      <!-- Use the default thread pool for dynamic class loading -->
      <depends optional-attribute-name="ThreadPool"
         proxy-type="attribute">jboss.system:service=ThreadPool</depends>
   </mbean>

編集 @ 2013 年 3 月 18 日の午後 4 時 20 分:

このポートを 8084 に更新しました。

\jboss-4.2.2.GA\server\default\conf\jboss-service.xml

ソースコード:

   <!-- ==================================================================== -->
   <!-- Class Loading                                                        -->
   <!-- ==================================================================== -->

   <!-- A mini webserver used for dynamic and class and resource loading --> 
   <mbean code="org.jboss.web.WebService"
      name="jboss:service=WebService">
      <!-- The Bind address and Port -->
      <attribute name="BindAddress">${jboss.bind.address}</attribute>      
      <attribute name="Port">8084</attribute>
      <!--  The address to use for the host portion of the RMI codebase URL -->
      <attribute name="Host">${java.rmi.server.hostname}</attribute>
      <!-- Should non-EJB .class files be downloadable -->
      <attribute name="DownloadServerClasses">true</attribute>
      <!-- Should resources other than .class files be downloadable. Both
         DownloadServerClasses and DownloadResources must be true for resources
         to be downloadable. This is false by default because its generally a
         bad idea as server configuration files that container security
         information can be accessed.
       -->
      <attribute name="DownloadResources">false</attribute>

      <!-- Use the default thread pool for dynamic class loading -->
      <depends optional-attribute-name="ThreadPool"
         proxy-type="attribute">jboss.system:service=ThreadPool</depends>
   </mbean>

そして今、私はこの例外を受け取ります:

16:19:49,473 INFO  [Server] Starting JBoss (MX MicroKernel)...
16:19:49,475 INFO  [Server] Release ID: JBoss [Trinity] 4.2.2.GA (build: SVNTag=JBoss_4_2_2_GA date=200710221139)
16:19:49,475 INFO  [Server] Home Dir: C:\i2b2\jboss-4.2.2.GA - QA
16:19:49,475 INFO  [Server] Home URL: file:/C:/i2b2/jboss-4.2.2.GA - QA/
16:19:49,476 INFO  [Server] Patch URL: null
16:19:49,476 INFO  [Server] Server Name: default
16:19:49,476 INFO  [Server] Server Home Dir: C:\i2b2\jboss-4.2.2.GA - QA\server\default
16:19:49,476 INFO  [Server] Server Home URL: file:/C:/i2b2/jboss-4.2.2.GA - QA/server/default/
16:19:49,476 INFO  [Server] Server Log Dir: C:\i2b2\jboss-4.2.2.GA - QA\server\default\log
16:19:49,476 INFO  [Server] Server Temp Dir: C:\i2b2\jboss-4.2.2.GA - QA\server\default\tmp
16:19:49,477 INFO  [Server] Root Deployment Filename: jboss-service.xml
16:19:49,642 INFO  [ServerInfo] Java version: 1.6.0_26,Sun Microsystems Inc.
16:19:49,643 INFO  [ServerInfo] Java VM: Java HotSpot(TM) 64-Bit Server VM 20.1-b02,Sun Microsystems Inc.
16:19:49,643 INFO  [ServerInfo] OS-System: Windows Server 2008 6.0,amd64
16:19:49,871 INFO  [Server] Core system initialized
16:19:51,393 INFO  [WebService] Using RMI server codebase: http://dev-himci2b2:8084/
16:19:51,395 INFO  [Log4jService$URLWatchTimerTask] Configuring from URL: resource:jboss-log4j.xml
16:19:51,546 WARN  [ServiceController] Problem starting service jboss:service=Naming
java.rmi.server.ExportException: Port already in use: 1098; nested exception is: 
    java.net.BindException: Address already in use: JVM_Bind
    at sun.rmi.transport.tcp.TCPTransport.listen(TCPTransport.java:310)
    at sun.rmi.transport.tcp.TCPTransport.exportObject(TCPTransport.java:218)
    at sun.rmi.transport.tcp.TCPEndpoint.exportObject(TCPEndpoint.java:393)
    at sun.rmi.transport.LiveRef.exportObject(LiveRef.java:129)
    at sun.rmi.server.UnicastServerRef.exportObject(UnicastServerRef.java:190)
    at java.rmi.server.UnicastRemoteObject.exportObject(UnicastRemoteObject.java:293)
    at java.rmi.server.UnicastRemoteObject.exportObject(UnicastRemoteObject.java:256)
    at org.jnp.server.Main.initJnpInvoker(Main.java:354)
    at org.jnp.server.Main.start(Main.java:316)
    at org.jboss.naming.NamingService.startService(NamingService.java:284)
    at org.jboss.system.ServiceMBeanSupport.jbossInternalStart(ServiceMBeanSupport.java:289)
    at org.jboss.system.ServiceMBeanSupport.jbossInternalLifecycle(ServiceMBeanSupport.java:245)
    at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
    at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
    at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:133)
    at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
    at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:142)
    at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
    at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
    at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
    at org.jboss.system.ServiceController$ServiceProxy.invoke(ServiceController.java:978)
    at $Proxy0.start(Unknown Source)
    at org.jboss.system.ServiceController.start(ServiceController.java:417)
    at org.jboss.system.ServiceController.start(ServiceController.java:435)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
    at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
    at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
    at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
    at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
    at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
    at $Proxy4.start(Unknown Source)
    at org.jboss.deployment.SARDeployer.start(SARDeployer.java:302)
    at org.jboss.deployment.MainDeployer.start(MainDeployer.java:1025)
    at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:819)
    at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:782)
    at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:766)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
    at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
    at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:133)
    at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
    at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:142)
    at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
    at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
    at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
    at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
    at $Proxy5.deploy(Unknown Source)
    at org.jboss.system.server.ServerImpl.doStart(ServerImpl.java:482)
    at org.jboss.system.server.ServerImpl.start(ServerImpl.java:362)
    at org.jboss.Main.boot(Main.java:200)
    at org.jboss.Main$1.run(Main.java:508)
    at java.lang.Thread.run(Thread.java:662)
Caused by: java.net.BindException: Address already in use: JVM_Bind
    at java.net.PlainSocketImpl.socketBind(Native Method)
    at java.net.PlainSocketImpl.bind(PlainSocketImpl.java:383)
    at java.net.ServerSocket.bind(ServerSocket.java:328)
    at java.net.ServerSocket.<init>(ServerSocket.java:194)
    at org.jboss.net.sockets.DefaultSocketFactory.createServerSocket(DefaultSocketFactory.java:120)
    at org.jboss.net.sockets.DefaultSocketFactory.createServerSocket(DefaultSocketFactory.java:95)
    at sun.rmi.transport.tcp.TCPEndpoint.newServerSocket(TCPEndpoint.java:649)
    at sun.rmi.transport.tcp.TCPTransport.listen(TCPTransport.java:299)
    ... 61 more
16:19:51,594 INFO  [TransactionManagerService] JBossTS Transaction Service (JTA version) - JBoss Inc.
16:19:51,594 INFO  [TransactionManagerService] Setting up property manager MBean and JMX layer

編集 2013 年 3 月 18 日の午後 6 時 35 分:

これらは最高の指示でした。 http://darrellgrainer.blogspot.com/2010/02/ching-ports-in-jboss.html ...

-->朗報です... XMLタグの前に移動することで、xmlファイルのJBoss port-01セクションのコメントアウトを解除できました。次に、jboss\default\ フォルダーのコピーを作成し、名前を変更しましたdefault-qa。したがって、JBoss の 2 番目のインスタンスはポート 8183 を使用する必要があります。フォルダーの port-default は、デフォルトでdefault引き続きポート 8083 にバインドされます。そして、jboss bin フォルダーからこれを実行することで、JBoss の 2 番目のインスタンスを正常に起動しましたrun -b 0.0.0.0 -c default-qa > debug-qa.txt。それはうまくいきました。

悪いニュース... アプリケーション コードには ${jboss.home}/server/default/deploy/ がハード コーディングされており、Spring Web Framework の *.properties ファイルで Apache Axis 2 ポートがどこでも 9090 に設定されています。JBoss の 2 番目のインスタンスは Apache Axis 9091 に依存しているため、ソース コードの別のコピーを作成し、ポート 9091 を使用する必要があると考えています。2 番目のインスタンスでは同じフォルダー構造を維持し、ルート フォルダーを移動します。何処か別の場所。その後、再コンパイルします。

4

1 に答える 1

1

同じマシンで 2 つの JBoss インスタンスを実行する場合は、ポートの入札を変更する必要があります (たとえば、JBoss 4.X については、1 つのマシンで JBoss の複数のインスタンスを実行する方法を参照してください。JBossのバージョンごとに、これは異なる方法で構成されていることに注意してください (これを参照してください)。

また、他のプログラムが必要なポートを取得した可能性もあります。最もよく犯されるのは、MS Outlook と Skype の 2 つです。この実行を確認するには:

netstat -a -o

これにより、占有されているポートとプロセス ID のリストが表示されます。特定のポートを使用しているプログラムをタスクマネージャーで確認し、場合によってはそれを強制終了できます。

于 2013-03-18T22:06:10.373 に答える