`
Mysun
  • 浏览: 273167 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Jboss 4.x 端口及其修改

阅读更多
注:本文中所述内容适合于Jboss 4.x系列应用服务器。

为了在同一台服务器上能够运行多个Jboss服务器,或者同时运行Jboss和Tomcat服务器,我们需要修改Jboss的各种端口。

Why configure JBoss's Ports?
    Configuring port numbers in JBoss can seem a little complicated, but it's actually pretty easy to understand once you get how JBoss is configured. However, why bother spending the time learning all this if it isn't going to be useful? Here are a few reasons why you might want to configure JBoss ports:
  1. You are running an instance of Tomcat on your machine already, and you can't start JBoss because port 8080 is already in use.
  2. You have a team of developers sharing a deployment machine. Each developer needs their own instance of JBoss (Note: if so, you will want to look at Shared JBoss Installation Directory also)
  3. A testing team wants to test different versions of the application using the same machine.
  4. You are planning on deploying more than one JBoss JVM per machine in a cluster to get higher availability and better performance (lots of smaller JVMs).


JBoss 4.x Ports
Here are the ports used by JBoss 4.x:
Default port numbers and where they are configured.
Default PortLocationDescription
1099./conf/jboss-service.xml or ./naming.sar/META-INF/jboss-service.xmlBootstrap JNP port.
1098 (anon)./conf/jboss-service.xml or ./naming.sar/META-INF/jboss-service.xml RMI naming service port.Use '0' for an anonymous port.
4444./conf/jboss-service.xml or ./deploy/invokers-service.xmlRMI/JRMP invoker port
4445 ./conf/jboss-service.xml or ./deploy/invokers-service.xmlPooled invoker
8083./conf/jboss-service.xml or ./deploy/dynclassloader-service.xmlRMI dynamic class loader port
8080 ./deploy/jbossweb-tomcat55.sar/server.xmlHTTP port for the web container
8009./deploy/jbossweb-tomcat55.sar/server.xmlAJP port for the web container
8093 ./deploy/jms/uil2-service.xmlUIL for JMS.
8443 (optional)./deploy/jbossweb-tomcat55.sar/server.xmlHTTPS port for the web container

Additional port numbers for clustered configurations
Default PortLocationDescription
1100 ./deploy/cluster-service.xmlHA-JNDI
1101 (anon) ./deploy/cluster-service.xmlRMI for HA-JNDI Use '0' for an anonymous port.
4446./deploy/cluster-service.xmlHA Pooled Invoker
4447./deploy/cluster-service.xmlHA JRMP
45566 (mcast)./deploy/cluster-service.xmlJGroups clustering


Other ports for optional services
Default PortLocationDescription
3528./deploy/iiop-service.xmlCORBA port
3873./deploy/ejb3.deployer/META-INF/jboss-service.xmlEJB3 remote invoker
1162./deploy/snmp-adaptor.sar/META-INF/jboss-service.xmlSNMP Log
1161./deploy/snmp-adaptor.sar/META-INF/jboss-service.xmlSNMP Adaptor
19001jmx-rmi-adaptor.sarJMX over RMI


How to configure ports for different instances of JBoss
Solution #1 : Use the Service Binding facility
The "Service Binding" feature uses a JMX bean to configure the other JMX beans (as far as I can tell). This requires you to make a file that has all of the possible bindings for each 'jboss server name'. The basics are:
这段话是说,Jboss在启动时会用一个MBean去配置其他MBean使用到的端口,我们就可以将不同Jboss实例使用的端口号预先定义在这个文件中,然后在jboss-service.xml中使用那个MBean,指定需要的参数,然后Jboss就会用你指定的端口去配置其他MBean。这个MBean的名字是org.jboss.services.binding.ServiceBindingManager。在jboss-service.xml中可以找到其定义,如下:
<mbean code="org.jboss.services.binding.ServiceBindingManager"
     name="jboss.system:service=ServiceBindingManager">
     <attribute name="ServerName">ports-01</attribute>
     <attribute name="StoreURL">${jboss.home.url}/docs/examples/binding-manager/sample-bindings.xml</attribute>
     <attribute name="StoreFactoryClassName">
       org.jboss.services.binding.XMLServicesStoreFactory
     </attribute>
   </mbean>

其中<attribute name="ServerName">ports-01</attribute>这个属性指定你要使用的某组端口号,<attribute name="StoreURL">${jboss.home.url}/docs/examples/binding-manager/sample-bindings.xml</attribute>这个属性定义了你使用的配置端口号的文件,这个链接是一个例子,我们可以根据这个例子配置自己的端口号。
  1. Create a globally shared "Service Binding" file that will contain the port numbers for each possible instance of JBoss on the machine by 'configuration name'.
  2. 例如,我$JBOSS_HOME$\server\default\conf目录下面建立了一个名为bindings.xml的文件,在这个文件中,定义了多组端口号,每组端口号对应一个Jboss实例。
  3. Uncomment or add a "Service Binding" section in conf/jboss-service.xml. This where the configuration will select which set of bindings it will use from the shared bindings file.
  4. 在jboss-service.xml里面启动org.jboss.services.binding.ServiceBindingManager这个MBean,指定参数之后,Jboss启动时就会用你指定的那组端口来配置其他的MBean。

See: [url]http://wiki.jboss.org/wiki/Wiki.jsp?page=ConfiguringMultipleJBossInstancesOnOneMachine [/url]
这个功能在JBoss 5.x系列中是默认提供的。
Solution #2: Use M4 or ANT to pre-process the XML configuration files.
If JBoss isn't the only thing that needs port numbers, host names and directories configured into each instance than you need more than just the Service Binding feature. In this case, we experience one drawback of JBoss's modular configuration: there are lots of files to change! Although this isn't really that difficult it requires a bit of work and it might break if JBoss changes their configuration files around if you're not careful.


Solution #3 (the best of both) : Use a combination of Service Binding and ANT or M4

The answer to the drawbacks of solutions #1 and #2: Use both! If you use substitution on the service binding configuration file itself then it is as if all JBoss ports are configured in one file. This means you don't have to process each individual configuration file. The basic idea here is to create a service binding XML file that has the substitutable tokens in it, and use ANT or M4 to process this one file.

Mapping the EJB3 Remote Invoker Port
The example port bindings file doesn't map the EJB3 remoting port. This is easy:
<service-config name="jboss.remoting:type=Connector,name=DefaultEjb3Connector,handler=ejb3"
        delegateClass="org.jboss.services.binding.AttributeMappingDelegate">
       <delegate-config>
          <attribute name="InvokerLocator">socket://${jboss.bind.address}:3873</attribute>
       </delegate-config>
        <binding port="3873"/>
     </service-config>

Just replace '3873' with the port number you want to use.

What ports is JBoss Listening on?
On Linux, you can use:
$ lsof -p {jboss pid} | grep TCP

附:
Jboss 5.x以上版本的应用服务器跟4.x本版的应用服务器在端口修改上有很大不同。从本文可以看到对4.x端口修改要涉及到很多个文件,这样修改起来还是很不方便的。所以在5.x以上版本中,jboss提供了一个binding.xml文件,在/default/conf/bootstrap目录下面。所以在5.x版本里面端口的修改要方便一点。
分享到:
评论

相关推荐

    JBOSS集群........

    - **JBoss 3.0.x 版本**:支持基于轮询的简单负载均衡算法。 - **JBoss 3.2 及以上版本**:引入了更复杂的负载均衡算法,如最少活跃事务优先(LATTP)等。 #### 七、HTTP Session 集群 ##### 7.1 概念介绍 - **定义...

    JBoss Ports

    了解这些默认端口及其配置位置对于管理JBoss实例至关重要。 1. **1099**:此端口用于BootStrap JNP(Java Naming and Directory Protocol)服务,可以在`./conf/jboss-service.xml`或`./naming.sar/META-INF/jboss-...

    Eclipse中如何集成JBOSS7.0版本

    - 更改默认端口:如果在同一台机器上需要启动多个JBOSS实例,需要更改JBOSS的默认端口。可以在`.\Jboss\server\port-bindings`目录下的配置文件中更改端口号。 #### 结语 通过以上步骤,您应该能够在Eclipse环境中...

    Linux下安装jboss

    使用`mkdir /app/jboss`创建了“/app/jboss”目录,随后通过`chown jboss /app/jboss/ -R`和`chmod 755 /app/jboss/ -R`命令分别更改了该目录的所有者为“jboss”用户,并赋予了相应的读写执行权限。 ### 二、安装...

    JBOSS数据库配置大全.pdf

    - **位置**: `X:\jboss4\server\default\conf` - **功能**: 标准的CMP实体EJB部署描述文件。 - **配置要点**: - 描述数据源及其映射类型。 - 描述EJB映射的表。 - 描述EJB的finder方法。 - 描述类型映射。 ###...

    Faceye 基础版概框

    如果你使用的是JBoss,请拷贝至:x:/jboss/server/default/deploy (注:默认部署后既解包,如没有解包,请首先解包) 4.4.数据库连接配置 打开:x:/tomcat/faceye/WebRoot/Web-INF/classes/...

    apache-tomcat-9.0.52-windows-x64.zip

    4. **配置Tomcat**:在`conf`目录下的`server.xml`是主要的配置文件,用于定义服务器端口、虚拟主机、Context(应用上下文)和其他设置。根据需求,可能需要修改默认配置。 5. **启动与停止**:在`bin`目录下,可以...

    apache-tomcat-9.0.27-windows-x64.rar

    通过修改`server.xml`中的Connector元素,可以配置端口、协议和其他相关参数。 9. **安全管理**:Tomcat允许配置角色和权限,通过`conf/tomcat-users.xml`文件添加用户和角色,实现基于角色的访问控制。 10. **JMX...

    linux常用部署文档

    - 在JBoss的`bin`目录下,使用`chmod u+x *.sh`命令使所有`.sh`文件具有执行权限。 **3.3 启动与停止JBoss** - 使用`&lt;JBOSS_HOME&gt;/bin/standalone.sh`启动JBoss。 - 使用`&lt;JBOSS_HOME&gt;/bin/jboss-cli.sh`关闭JBoss...

    weblogic技术培训(一)考试试题.pdf

    - **重要性**: 修改服务端口对于避免端口冲突以及满足特定需求非常重要。 #### 三、问答题知识点解析 1. **WebLogic的定义** - **定义**: WebLogic是BEA公司(现已被Oracle收购)开发的一款基于J2EE架构的中间件...

    apache-tomcat-6.0.9.zip

    配置主要通过修改`conf/server.xml`文件,可以设置端口号、上下文路径、连接器参数等。 4. **部署Web应用** 应用程序通常以WAR(Web ARchive)文件形式部署到Tomcat的`webapps`目录下,Tomcat会自动解压并启动应用...

    apache-tomcat

    - `web.xml`:每个Web应用程序都有一个此文件,定义了应用的Servlet、过滤器、监听器等组件及其配置。 4. **目录结构**: - `conf`:存放所有配置文件。 - `webapps`:默认的Web应用程序部署目录。 - `logs`:...

    servlet基础教程

    - **监听端口**:Tomcat 默认监听端口为 **8080**,可以通过配置文件修改。 - **Web 应用部署**:每个 Web 应用都需要放置在 `webapps` 目录下,并且包含一个 `WEB-INF` 目录,其中存放 `classes`、`lib` 文件夹及...

Global site tag (gtag.js) - Google Analytics