JBoss的使用与部署
1、 安装
1.1、软件安装
首先要安装JDK(仅仅安装JRE是不行的,因为JSP页面需要编译),最新的正式版是JDK1.4.2。然后把JBoss的压缩包解压到一个目录下,目
录名一般是"Jboss_版本号",JBoss目前的最新正式版是JBoss4.0.0(2004年9月20日发布)。下面的配置都是针对
JBoss3.2.5。
1.2、环境变量的设置
需要的环境变量有JAVA_HOME和JBOSS_HOME。环境变量JAVA_HOME设置为刚才JDK的安装路径,JBOSS_HOME设置为刚才JBoss解压后的路径。设置方法如下:
在Windows2000中可以右键点我的电脑,选"属性"-> 选"高级"选项卡 -> 点击"环境变量"按钮 ->
点击系统变量的"新建"按钮,然后在对话框中输入"变量名"为"JAVA_HOME",变量值为JDK的安装路径,最后确定。同样的方法添加
JBOSS_HOME。
1.3、运行
直接执行JBoss\bin目录下的run.bat批处理文件即可,启动时间从20秒到1分钟左右不等,视CPU速度和内存大小而定。
1.4、终止JBoss的运行
最好不要直接关闭运行JBoss时的控制台窗口,直接关闭控制台可能导致JBoss下次启动时出现异常。正常关闭JBoss的方法是另外打开一个
控制台窗口,执行JBoss\bin目录下的shutdown.bat批处理文件,不过要带一个参数"-S",注意是大写字母。为了方便起见,也可以创建
一个快捷方式。
1.5、把JBoss安装为Windows2000的系统服务
每次从控制台启动JBoss不是很方便,虽然调试程序时可以从控制台看到很多信息,但有的时候需要JBoss作为系统服务自动运行。这需要下载一个小工具JavaService.exe,到如下地址下载:
http://www.alexandriasc.com/software/JavaService/index.html
我已经下载了该工具。
2、 WAR文件的部署
JBoss支持热部署,也就是war文件部署到服务器上后不需要重新启动JBoss(Tomcat不支持这种特性)。war文件的部署很简单,直接将war文件拷贝到JBoss\server\default\deploy目录下即可。
3、 JBoss的目录结构
bin目录:改目录包含各种脚本文件以及相关文件,前面已经用过run.bat和shutdown.bat两个批处理文件。
client目录:存储配置信息和可能被Java客户端应用程序或外部Web容器用到的jar文件。
docs目录:保存在JBoss中引用到的XML文件和DTD文件(这里也提供了在JBoss中如何写配置文件的例子)。该目录下有针对不通的数据库(如MySql、Oracle、SQL Server、Postgres等)配置数据源的JCA配置文件。
lib目录:这里存储运行JBoss微内核所需的jar文件。该目录下不要存储任何你自己的jar文件。
server目录:这里的每一个子目录对应着一个服务器配置。该配置由运行脚本文件时的参数"-c
<配置名称>"来确定。在server目录下有三个配置例子,即all、default和minimal,每一个配置安装的服务都不一样。其
中default下是缺省配置。
minimal目录:仅加载启动JBoss所需的最少服务,如日志服务、JNDI和URL部署扫描器(发现新的部署),不包含Web容器、EJB和JMS。
all目录:启动所有的服务,包括RMI/IIOP、集群服务和Web服务部署器(默认配置不会被加载)。
启动JBoss时,如果run.bat不带任何参数,则使用的配置是server/default目录下的配置。如果要以其它目录下的配置启动JBoss,可以使用如下参数:
run -c all
上述命令将以all目录下的配置信息启动JBoss。也可以在server目录下新建目录,按自己的需要写配置文件。
下面以default目录为例,介绍服务器配置的目录结构。
conf目录:该目录下有指定核心服务的jboss-service.xml文件,也可以放其它服务配置的文件。
data目录:该目录是JBoss内置的数据库Hypersonic存储数据的地方,也是JBossMQ(the JBoss implementation of JMS)存储相关信息的地方。
deploy目录:这是部署J2EE应用程序(jar、war和ear文件)的位置,只需将相应文件拷贝到该目录下即可。该目录也用来热部署服务和JCA
资源适配器。已经有一些服务部署到这个目录了,如jmx-console,你启动JBoss后即可访问。JBoss会周期性的扫描deploy目录,当有
任何组件改变,JBoss会重新部署该程序。
lib目录:存放服务器配置所需的jar文件,比如,你可以将JDBC驱动程序放在该目录下。
log目录:存放日志信息。JBoss使用Jakarta log4j包存储日志,在程序中你也可以直接使用该信息。
tmp目录:存储在部署过程中解压时产生的临时文件。
work目录:Tomcat编译JSP文件时的工作目录。
目录data、log、tmp和work在JBoss安装后并不存在,当JBoss运行时自动建立。
4、 JBoss中和数据库的连接
这里所说的数据库连接是在JBoss中通过XML文件配置数据源,在程序中通过名字来访问数据库。从JBoss3.2.3之后的数据库连接配置比较简单,
关于配置文件的书写在JBoss中针对不同的数据库有相应的例子,配置文件的例子在目录JBoss_HOME\docs\examples\jca下,如
对MySql数据库的配置文件是mysql-ds.xml。只要针对数据库的具体情况修改该配置文件即可。修改完成之后,将配置文件拷贝到
JBoss_HOME\server\default目录下。下面是一个设置MySql数据库为数据源的mysql-ds.xml配置文件的内容:
- <?xml version="1.0" encoding="UTF-8"?>
- <datasources>
- <local-tx-datasource>
- <jndi-name>MySqlTest</jndi-name>
- <connection-url>jdbc:mysql://127.0.0.1:3306/test</connection-url>
- <driver-class>com.mysql.jdbc.Driver</driver-class>
- <user-name>root</user-name>
- <password></password>
- </local-tx-datasource>
- </datasources>
另外,连接数据库所用到的JDBC驱动程序要拷贝到JBoss_HOME\server\default\lib目录下。
5、 端口号的修改
- ..\server\default\deploy\jbossweb-tomcat55.sar\server.xml
- ort 参数
- (1).修改JBoss配置文件
- 改的配置文件:JBOSS_HOME/server\default\deploy\jboss-web.deployer/server.xml,下面是xml中我们需要修改的地方:
- 1: <Connector port="80" address="0.0.0.0"
- 2: maxThreads="250" maxHttpHeaderSize="8192"
- 3: emptySessionPath="true" protocol="HTTP/1.1"
- 4: enableLookups="false" redirectPort="8443" acceptCount="100"
- 5: connectionTimeout="20000" disableUploadTimeout="true" />
- port:访问端口,默认是8080,这就是为什么上面我们在访问网址时,需要加“:8080”这东西了,把它改为80,访问网页时就可以不加端口号了,如:http://localhost/demo.html(当然,你要继续加上端口号访问也是可以的,如http://localhost:80/demo.html)
- address:要外网能访问你的网页,关键是设置这个!把address的值改为0.0.0.0就可以了。
- (2).重启JBoss
Window下将JBoss安装为服务
2 安装Jboss为JBoss服务
JavaService.exe -install JBoss %JAVA_HOME%\jre\bin\server\jvm.dll -Djava.class.path=%JAVA_HOME%\bin\tools.jar;%JBOSS_HOME%\bin\run.jar -start org.jboss.Main -stop org.jboss.Main -method systemExit -current %JBOSS_HOME%\bin
3 查看服务中,是不是多了个JBoss服务呢,以后可以利用服务来管理JBoss了
4 若要卸载此程序运行:JavaService.exe -uninstall JBoss
用javaservice将java程序发布为windows服务
上网查了一下怎么才能让java应用变成nt服务,也就是要自动运行没有界面,网上用的比较多的方法大致有三个
1.开源项目javaservice(http://javaservice.objectweb.org/)
2.开源项目java service wrapper(http://sourceforge.net/projects/wrapper/)
3.利用jbuilder或其他工具将java类打包成exe文件,然后用微软提供的开发包中的文件将exe发布成服务
我首先排除了3,因为3实在是太麻烦,而且限制比较多
1和2我都实验了一下,说来惭愧,java service wrapper虽然得到了很多牛人的认可,但是我按照文档上的配置方法怎么都不行,总是提示找不到我要执行的main方法
无奈只好用javaservice了,不过这个用起来真的很容易,也很方便
我是这么做的,首先当然是写程序,代码我就不往上贴了,我写了两个类,其中一个包含main方法,我利用jdbc连接oracle数据,通过 timer和timertask,以一定的时间间隔访问数据库,提取特定标记的数据,将这些数据写到一个文本文件中.将两个类写完后生成两个.class 文件,分别是a.class和b.class其中a中包含main方法
因为用到了oracle的jdbc驱动所以要把oracle的driver包一起打包
命令如下:
jar cvf test.jar a.class b.class oracle
其中oracle是从oracle的lib文件夹下classess12.jar内提取出来的oracle文件夹
打包成功后生成test.jar
从http://forge.objectweb.org/project/download.php?group_id=137&file_id=6015下载
JavaService-2.0.10.zip ,解压后得到javaservice和其他一些批处理文件,那些批处理都是例子,比如发布jboss的和发布tomcat的
将javaservice复制到test.jar的同一目录下新建一个文本文件另存为.bat,当然你也可以修改例子用的bat文件
文件一(安装服务)
JavaService -install testservice C:\jdk1.4\jre\bin\server\jvm.dll -Djava.class.path=E:\test\test.jar -Xms64M -Xmx128M -start a -err err.log -current e:\test
具体的含义就不解释了,大家可以去看javaservice的文档,这里需要说明的是start后面是带静态main方法的类,文档写的很清楚
文件二(卸载服务)
javaservice -uninstall testservice
执行文件一即可将其发布为windows的服务
执行文件二可卸载
安装成功后,服务的状态是停止,启动类型为自动