一、简介
JBoss是一个运行EJB的J2EE应用服务器。它是开放源代码的项目,遵循最新的J2EE规范。从JBoss项目开始至今,它已经从一个EJB容器发展成为一个基于的J2EE的一个web 操作系统(operating system for web),它体现了J2EE规范中最新的技术。无论是学习还是应用,JBoss为我们提供了一个非常优秀的平台。
JBoss具有如下优点:
1、JBoss是免费的,开放源代码J2EE的实现,通过LGPL许可证进行发布.但同时也有闭源的,开源和闭源流入流出的不是同一途径。
2、 JBoss需要的内存和硬盘空间比较小。
3、安装便捷:解压后,只需配置一些环境变量即可。
4、JBoss支持"热部署",部署BEAN时,只拷贝BEAN的JAR文件到部署路径下即可自动加载它,如果有改动,也会自动更新
5、JBoss与Web服务器在同一个Java虚拟机中运行,Servlet调用EJB不经过网络,从而大大提高运行效率,提升安全性能
6、用户可以直接实施J2EE-EAR,而不是以前分别实施EJB- JAR和Web-WAR,非常方便。
7、Jboss支持集群。
2006年,Jboss公司(http://jboss.org)被Redhat公司(http://redhat.com)收购。
有关JBoss的详细信息请参阅其主页 http://www.jboss.org
二、系统环境
系统平台:RHEL 5.4
Java version:jdk-6u17-linux-i586
Jboss version:jboss-5.1.0.GA-jdk6
三、安装准备
下载jboss 5.1和jdk1.6
jboss http://sourceforge.net/projects/jboss/files/JBoss/JBoss-5.1.0.GA/jboss-5.1.0.GA-jdk6.zip/download
jdk1.6 http://download.oracle.com/otn/java/jdk/6u31-b04/jdk-6u31-linux-i586.bin
四、解压
#./jdk-6u17-linux-i586.bin //当前目录生成一个jdk1.6.0_17
#mv jdk1.6.0_17 /usr/local/java //把刚生成的目录"jdk1.6.0_17"重命名为"java"
#unzip jboss-5.1.0.GA-jdk6.zip -d /usr/local/ //解压到/usr/local目录下
#mv jboss-5.1.0.GA jboss //重命名为jboss
五、配置环境变量
#vi /etc/profile
//添加如下内容
JAVA_HOME="/usr/local/java"
CLASS_PATH="$JAVA_HOME/lib:$JAVA_HOME/jre/lib"
PATH=".:$PATH:$JAVA_HOME/bin"
export JAVA_HOME CLASS_PATH PATH
六、运行
#/usr/local/jboss/bin/run.sh -b 10.0.0.133 //IP写本机地址
[root@linux bin]# ./run.sh -b 10.0.0.133
=========================================================================
JBoss Bootstrap Environment
JBOSS_HOME: /usr/local/jboss
JAVA: /usr/local/jdk/jdk1.6.0_17/bin/java
JAVA_OPTS: -Dprogram.name=run.sh -server -Xms128m -Xmx512m -XX:MaxPermSize=256m -Dorg.jboss.resolver.warning=true -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000 -Djava.net.preferIPv4Stack=true
CLASSPATH: /usr/local/jboss/bin/run.jar:/usr/local/jdk/jdk1.6.0_17/lib/tools.jar
=========================================================================
01:57:50,713 INFO [ServerImpl] Starting JBoss (Microcontainer)...
01:57:50,718 INFO [ServerImpl] Release ID: JBoss [The Oracle] 5.1.0.GA (build: SVNTag=JBoss_5_1_0_GA date=200905221634)
01:57:50,725 INFO [ServerImpl] Bootstrap URL: null
01:57:50,727 INFO [ServerImpl] Home Dir: /usr/local/jboss
01:57:50,742 INFO [ServerImpl] Home URL: file:/usr/local/jboss/
01:57:50,756 INFO [ServerImpl] Library URL: file:/usr/local/jboss/lib/
01:57:50,761 INFO [ServerImpl] Patch URL: null
01:57:50,776 INFO [ServerImpl] Common Base URL: file:/usr/local/jboss/common/
01:57:50,778 INFO [ServerImpl] Common Library URL: file:/usr/local/jboss/common/lib/
01:57:50,806 INFO [ServerImpl] Server Name: default
01:57:50,811 INFO [ServerImpl] Server Base Dir: /usr/local/jboss/server
01:57:50,814 INFO [ServerImpl] Server Base URL: file:/usr/local/jboss/server/
01:57:50,817 INFO [ServerImpl] Server Config URL: file:/usr/local/jboss/server/default/conf/
01:57:50,818 INFO [ServerImpl] Server Home Dir: /usr/local/jboss/server/default
01:57:50,826 INFO [ServerImpl] Server Home URL: file:/usr/local/jboss/server/default/
01:57:50,829 INFO [ServerImpl] Server Data Dir: /usr/local/jboss/server/default/data
01:57:50,832 INFO [ServerImpl] Server Library URL: file:/usr/local/jboss/server/default/lib/
01:57:50,834 INFO [ServerImpl] Server Log Dir: /usr/local/jboss/server/default/log
01:57:50,840 INFO [ServerImpl] Server Native Dir: /usr/local/jboss/server/default/tmp/native
01:57:50,857 INFO [ServerImpl] Server Temp Dir: /usr/local/jboss/server/default/tmp
01:57:50,860 INFO [ServerImpl] Server Temp Deploy Dir: /usr/local/jboss/server/default/tmp/deploy
01:57:52,509 INFO [ServerImpl] Starting Microcontainer, bootstrapURL=file:/usr/local/jboss/server/default/conf/bootstrap.xml
01:57:53,876 INFO [VFSCacheFactory] Initializing VFSCache [org.jboss.virtual.plugins.cache.CombinedVFSCache]
01:57:53,888 INFO [VFSCacheFactory] Using VFSCache [CombinedVFSCache[real-cache: null]]
01:57:54,617 INFO [CopyMechanism] VFS temp dir: /usr/local/jboss/server/default/tmp
01:57:54,637 INFO [ZipEntryContext] VFS force nested jars copy-mode is enabled.
01:57:58,247 INFO [ServerInfo] Java version: 1.6.0_17,Sun Microsystems Inc.
01:57:58,249 INFO [ServerInfo] Java Runtime: Java(TM) SE Runtime Environment (build 1.6.0_17-b04)
01:57:58,259 INFO [ServerInfo] Java VM: Java HotSpot(TM) Server VM 14.3-b01,Sun Microsystems Inc.
01:57:58,266 INFO [ServerInfo] OS-System: Linux 2.6.18-194.el5,i386
01:57:58,283 INFO [ServerInfo] VM arguments: -Dprogram.name=run.sh -Xms128m -Xmx512m -XX:MaxPermSize=256m -Dorg.jboss.resolver.warning=true -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000 -Djava.net.preferIPv4Stack=true -Djava.endorsed.dirs=/usr/local/jboss/lib/endorsed
01:57:58,408 INFO [JMXKernel] Legacy JMX core initialized
01:58:04,694 INFO [ProfileServiceBootstrap] Loading profile: ProfileKey@19b7c62[domain=default, server=default, name=default]
01:58:10,585 INFO [WebService] Using RMI server codebase: http://10.0.0.133:8083/
01:58:32,816 INFO [NativeServerConfig] JBoss Web Services - Stack Native Core
01:58:32,823 INFO [NativeServerConfig] 3.1.2.GA
01:58:34,296 INFO [AttributeCallbackItem] Owner callback not implemented.
01:58:37,600 INFO [LogNotificationListener] Adding notification listener for logging mbean "jboss.system:service=Logging,type=Log4jService" to server org.jboss.mx.server.MBeanServerImpl@63a1ae[ defaultDomain='jboss' ]
01:59:05,890 INFO [Ejb3DependenciesDeployer] Encountered deployment AbstractVFSDeploymentContext@19213615{vfsfile:/usr/local/jboss/server/default/deploy/profileservice-secured.jar/}
01:59:05,904 INFO [Ejb3DependenciesDeployer] Encountered deployment AbstractVFSDeploymentContext@19213615{vfsfile:/usr/local/jboss/server/default/deploy/profileservice-secured.jar/}
01:59:05,908 INFO [Ejb3DependenciesDeployer] Encountered deployment AbstractVFSDeploymentContext@19213615{vfsfile:/usr/local/jboss/server/default/deploy/profileservice-secured.jar/}
01:59:05,927 INFO [Ejb3DependenciesDeployer] Encountered deployment AbstractVFSDeploymentContext@19213615{vfsfile:/usr/local/jboss/server/default/deploy/profileservice-secured.jar/}
01:59:13,087 INFO [JMXConnectorServerService] JMX Connector server: service:jmx:rmi://10.0.0.133/jndi/rmi://10.0.0.133:1090/jmxconnector
01:59:15,053 INFO [MailService] Mail Service bound to java:/Mail
01:59:41,437 WARN [JBossASSecurityMetadataStore] WARNING! POTENTIAL SECURITY RISK. It has been detected that the MessageSucker component which sucks messages from one node to another has not had its password changed from the installation default. Please see the JBoss Messaging user guide for instructions on how to do this.
01:59:41,508 WARN [AnnotationCreator] No ClassLoader provided, using TCCL: org.jboss.managed.api.annotation.ManagementComponent
01:59:41,673 WARN [AnnotationCreator] No ClassLoader provided, using TCCL: org.jboss.managed.api.annotation.ManagementComponent
01:59:41,797 INFO [TransactionManagerService] JBossTS Transaction Service (JTA version - tag:JBOSSTS_4_6_1_GA) - JBoss Inc.
01:59:41,802 INFO [TransactionManagerService] Setting up property manager MBean and JMX layer
01:59:42,339 INFO [TransactionManagerService] Initializing recovery manager
01:59:43,127 INFO [TransactionManagerService] Recovery manager configured
01:59:43,131 INFO [TransactionManagerService] Binding TransactionManager JNDI Reference
01:59:44,517 INFO [TransactionManagerService] Starting transaction recovery manager
01:59:45,893 INFO [AprLifecycleListener] The Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: /usr/local/jdk/jdk1.6.0_17/jre/lib/i386/server:/usr/local/jdk/jdk1.6.0_17/jre/lib/i386:/usr/local/jdk/jdk1.6.0_17/jre/../lib/i386:/usr/java/packages/lib/i386:/lib:/usr/lib
01:59:46,259 INFO [Http11Protocol] Initializing Coyote HTTP/1.1 on http-10.0.0.133-8080
01:59:46,266 INFO [AjpProtocol] Initializing Coyote AJP/1.3 on ajp-10.0.0.133-8009
01:59:46,375 INFO [StandardService] Starting service jboss.web
01:59:46,389 INFO [StandardEngine] Starting Servlet Engine: JBoss Web/2.1.3.GA
01:59:46,482 INFO [Catalina] Server startup in 214 ms
01:59:46,554 INFO [TomcatDeployment] deploy, ctxPath=/jbossws
01:59:47,951 INFO [TomcatDeployment] deploy, ctxPath=/web-console
01:59:48,849 INFO [TomcatDeployment] deploy, ctxPath=/invoker
01:59:49,346 INFO [RARDeployment] Required license terms exist, view vfszip:/usr/local/jboss/server/default/deploy/jboss-local-jdbc.rar/META-INF/ra.xml
01:59:49,997 INFO [RARDeployment] Required license terms exist, view vfszip:/usr/local/jboss/server/default/deploy/jboss-xa-jdbc.rar/META-INF/ra.xml
01:59:50,087 INFO [RARDeployment] Required license terms exist, view vfszip:/usr/local/jboss/server/default/deploy/jms-ra.rar/META-INF/ra.xml
01:59:50,134 INFO [RARDeployment] Required license terms exist, view vfszip:/usr/local/jboss/server/default/deploy/mail-ra.rar/META-INF/ra.xml
01:59:50,221 INFO [RARDeployment] Required license terms exist, view vfszip:/usr/local/jboss/server/default/deploy/quartz-ra.rar/META-INF/ra.xml
01:59:50,456 INFO [SimpleThreadPool] Job execution threads will use class loader of thread: main
01:59:51,545 INFO [QuartzScheduler] Quartz Scheduler v.1.5.2 created.
01:59:51,559 INFO [RAMJobStore] RAMJobStore initialized.
01:59:51,561 INFO [StdSchedulerFactory] Quartz scheduler 'DefaultQuartzScheduler' initialized from default resource file in Quartz package: 'quartz.properties'
01:59:51,563 INFO [StdSchedulerFactory] Quartz scheduler version: 1.5.2
01:59:51,566 INFO [QuartzScheduler] Scheduler DefaultQuartzScheduler_$_NON_CLUSTERED started.
01:59:53,273 INFO [ConnectionFactoryBindingService] Bound ConnectionManager 'jboss.jca:service=DataSourceBinding,name=DefaultDS' to JNDI name 'java:DefaultDS'
01:59:55,170 INFO [ServerPeer] JBoss Messaging 1.4.3.GA server [0] started
01:59:55,735 INFO [ConnectionFactory] Connector bisocket://10.0.0.133:4457 has leasing enabled, lease period 10000 milliseconds
01:59:55,739 INFO [ConnectionFactory] org.jboss.jms.server.connectionfactory.ConnectionFactory@1e88ea started
01:59:55,795 INFO [QueueService] Queue[/queue/DLQ] started, fullSize=200000, pageSize=2000, downCacheSize=2000
01:59:55,801 INFO [ConnectionFactoryJNDIMapper] supportsFailover attribute is true on connection factory: jboss.messaging.connectionfactory:service=ClusteredConnectionFactory but post office is non clustered. So connection factory will *not* support failover
01:59:55,813 INFO [ConnectionFactoryJNDIMapper] supportsLoadBalancing attribute is true on connection factory: jboss.messaging.connectionfactory:service=ClusteredConnectionFactory but post office is non clustered. So connection factory will *not* support load balancing
01:59:55,835 INFO [ConnectionFactory] Connector bisocket://10.0.0.133:4457 has leasing enabled, lease period 10000 milliseconds
01:59:55,845 INFO [ConnectionFactory] org.jboss.jms.server.connectionfactory.ConnectionFactory@17503eb started
01:59:55,850 INFO [ConnectionFactory] Connector bisocket://10.0.0.133:4457 has leasing enabled, lease period 10000 milliseconds
01:59:55,852 INFO [ConnectionFactory] org.jboss.jms.server.connectionfactory.ConnectionFactory@956f01 started
01:59:55,881 INFO [QueueService] Queue[/queue/ExpiryQueue] started, fullSize=200000, pageSize=2000, downCacheSize=2000
01:59:56,199 INFO [ConnectionFactoryBindingService] Bound ConnectionManager 'jboss.jca:service=ConnectionFactoryBinding,name=JmsXA' to JNDI name 'java:JmsXA'
02:00:09,338 INFO [JBossASKernel] Created KernelDeployment for: profileservice-secured.jar
02:00:09,384 INFO [JBossASKernel] installing bean: jboss.j2ee:jar=profileservice-secured.jar,name=SecureProfileService,service=EJB3
02:00:09,385 INFO [JBossASKernel] with dependencies:
02:00:09,388 INFO [JBossASKernel] and demands:
02:00:09,400 INFO [JBossASKernel] jndi:SecureManagementView/remote-org.jboss.deployers.spi.management.ManagementView
02:00:09,402 INFO [JBossASKernel] jboss.ejb:service=EJBTimerService
02:00:09,404 INFO [JBossASKernel] and supplies:
02:00:09,406 INFO [JBossASKernel] Class:org.jboss.profileservice.spi.ProfileService
02:00:09,408 INFO [JBossASKernel] jndi:SecureProfileService/remote
02:00:09,410 INFO [JBossASKernel] jndi:SecureProfileService/remote-org.jboss.profileservice.spi.ProfileService
02:00:09,414 INFO [JBossASKernel] Added bean(jboss.j2ee:jar=profileservice-secured.jar,name=SecureProfileService,service=EJB3) to KernelDeployment of: profileservice-secured.jar
02:00:09,422 INFO [JBossASKernel] installing bean: jboss.j2ee:jar=profileservice-secured.jar,name=SecureDeploymentManager,service=EJB3
02:00:09,424 INFO [JBossASKernel] with dependencies:
02:00:09,426 INFO [JBossASKernel] and demands:
02:00:09,430 INFO [JBossASKernel] jboss.ejb:service=EJBTimerService
02:00:09,432 INFO [JBossASKernel] and supplies:
02:00:09,435 INFO [JBossASKernel] jndi:SecureDeploymentManager/remote-org.jboss.deployers.spi.management.deploy.DeploymentManager
02:00:09,437 INFO [JBossASKernel] Class:org.jboss.deployers.spi.management.deploy.DeploymentManager
02:00:09,443 INFO [JBossASKernel] jndi:SecureDeploymentManager/remote
02:00:09,450 INFO [JBossASKernel] Added bean(jboss.j2ee:jar=profileservice-secured.jar,name=SecureDeploymentManager,service=EJB3) to KernelDeployment of: profileservice-secured.jar
02:00:09,452 INFO [JBossASKernel] installing bean: jboss.j2ee:jar=profileservice-secured.jar,name=SecureManagementView,service=EJB3
02:00:09,454 INFO [JBossASKernel] with dependencies:
02:00:09,459 INFO [JBossASKernel] and demands:
02:00:09,461 INFO [JBossASKernel] jboss.ejb:service=EJBTimerService
02:00:09,462 INFO [JBossASKernel] and supplies:
02:00:09,464 INFO [JBossASKernel] jndi:SecureManagementView/remote-org.jboss.deployers.spi.management.ManagementView
02:00:09,466 INFO [JBossASKernel] Class:org.jboss.deployers.spi.management.ManagementView
02:00:09,468 INFO [JBossASKernel] jndi:SecureManagementView/remote
02:00:09,470 INFO [JBossASKernel] Added bean(jboss.j2ee:jar=profileservice-secured.jar,name=SecureManagementView,service=EJB3) to KernelDeployment of: profileservice-secured.jar
02:00:09,505 INFO [EJB3EndpointDeployer] Deploy AbstractBeanMetaData@1431022{name=jboss.j2ee:jar=profileservice-secured.jar,name=SecureProfileService,service=EJB3_endpoint bean=org.jboss.ejb3.endpoint.deployers.impl.EndpointImpl properties=[container] constructor=null autowireCandidate=true}
02:00:09,522 INFO [EJB3EndpointDeployer] Deploy AbstractBeanMetaData@14534db{name=jboss.j2ee:jar=profileservice-secured.jar,name=SecureDeploymentManager,service=EJB3_endpoint bean=org.jboss.ejb3.endpoint.deployers.impl.EndpointImpl properties=[container] constructor=null autowireCandidate=true}
02:00:09,523 INFO [EJB3EndpointDeployer] Deploy AbstractBeanMetaData@7787ee{name=jboss.j2ee:jar=profileservice-secured.jar,name=SecureManagementView,service=EJB3_endpoint bean=org.jboss.ejb3.endpoint.deployers.impl.EndpointImpl properties=[container] constructor=null autowireCandidate=true}
02:00:10,269 INFO [SessionSpecContainer] Starting jboss.j2ee:jar=profileservice-secured.jar,name=SecureDeploymentManager,service=EJB3
02:00:10,447 INFO [EJBContainer] STARTED EJB: org.jboss.profileservice.ejb.SecureDeploymentManager ejbName: SecureDeploymentManager
02:00:10,817 INFO [JndiSessionRegistrarBase] Binding the following Entries in Global JNDI:
SecureDeploymentManager/remote - EJB3.x Default Remote Business Interface
SecureDeploymentManager/remote-org.jboss.deployers.spi.management.deploy.DeploymentManager - EJB3.x Remote Business Interface
02:00:10,940 INFO [SessionSpecContainer] Starting jboss.j2ee:jar=profileservice-secured.jar,name=SecureManagementView,service=EJB3
02:00:10,945 INFO [EJBContainer] STARTED EJB: org.jboss.profileservice.ejb.SecureManagementView ejbName: SecureManagementView
02:00:11,059 INFO [JndiSessionRegistrarBase] Binding the following Entries in Global JNDI:
SecureManagementView/remote - EJB3.x Default Remote Business Interface
SecureManagementView/remote-org.jboss.deployers.spi.management.ManagementView - EJB3.x Remote Business Interface
02:00:11,217 INFO [SessionSpecContainer] Starting jboss.j2ee:jar=profileservice-secured.jar,name=SecureProfileService,service=EJB3
02:00:11,226 INFO [EJBContainer] STARTED EJB: org.jboss.profileservice.ejb.SecureProfileServiceBean ejbName: SecureProfileService
02:00:11,254 INFO [JndiSessionRegistrarBase] Binding the following Entries in Global JNDI:
SecureProfileService/remote - EJB3.x Default Remote Business Interface
SecureProfileService/remote-org.jboss.profileservice.spi.ProfileService - EJB3.x Remote Business Interface
02:00:11,982 INFO [TomcatDeployment] deploy, ctxPath=/admin-console
02:00:12,321 INFO [config] Initializing Mojarra (1.2_12-b01-FCS) for context '/admin-console'
02:00:20,855 INFO [TomcatDeployment] deploy, ctxPath=/
02:00:20,988 INFO [TomcatDeployment] deploy, ctxPath=/jmx-console
02:00:21,378 INFO [Http11Protocol] Starting Coyote HTTP/1.1 on http-10.0.0.133-8080
02:00:21,436 INFO [AjpProtocol] Starting Coyote AJP/1.3 on ajp-10.0.0.133-8009
02:00:21,475 INFO [ServerImpl] JBoss (Microcontainer) [5.1.0.GA (build: SVNTag=JBoss_5_1_0_GA date=200905221634)] Started in 2m:30s:582ms
七、测试
web-console
八、关闭服务器
#/usr/local/jboss/bin//shutdown.sh -S
或找到它的pid号,然后kill掉。
[root@linux bin]# ps -ef|grep jboss
root 3775 3754 26 01:57 pts/0 00:02:38 /usr/local/jdk/jdk1.6.0_17/bin/java -Dprogram.name=run.sh -server -Xms128m -Xmx512m -XX:MaxPermSize=256m -Dorg.jboss.resolver.warning=true -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000 -Djava.net.preferIPv4Stack=true -Djava.endorsed.dirs=/usr/local/jboss/lib/endorsed -classpath /usr/local/jboss/bin/run.jar:/usr/local/jdk/jdk1.6.0_17/lib/tools.jar org.jboss.Main -b 10.0.0.133
root 3919 3464 0 02:07 pts/1 00:00:00 grep jboss
[root@linux bin]# kill -9 3775
[root@linux bin]#