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 番目のインスタンスでは同じフォルダー構造を維持し、ルート フォルダーを移動します。何処か別の場所。その後、再コンパイルします。