**************************************************
*** 在JBoss+MySQL环境下运行obe ***
**************************************************
我按照obe文档的说明试着在JBoss+MySQL环境下运行obe程序,在部署obe程序后启动JBoss,总是一堆的异常信息;我曾试过好几个版本的JBoss(3.2.3/3.2.5/4.0.0)都没有成功,从cvs下载最新的源码后认真阅读了obe的文档,最后选择了JBoss 4.0.1,并对ConfigurationProperties文件中使用的JBoss数据源配置进行了修改,当然我们也需要在JBoss中配置对应的数据源信息。
##################################################
### obe文档中几个关键的说明部分
##################################################
1、关于运行obe的应用服务器(这是我们选择应用服务器的依据)
-----------------------------------------------------------------------------------------
Application Servers
The OBE build system is highly configurable and can easily be adapted to run on any J2EE
application server that is supported by XDoclet. The OBE server runtime is known to work
with the following application servers:
JBoss 3.2.3+
JBoss 4.0.1+ (but not JBoss 4.0)
WebLogic 7.x
WebLogic 8.x
Note that of these, only JBoss 4.0.1 supports Servlet 1.3 as required by the OBE Web-based
Worklist Handler client
------------------------------------------------------------------------------------------
2、运行obe的应用服务器的资源配置(这段内容说明了运行obe所需要的数据源、JMS队列以及JAAS)
------------------------------------------------------------------------------------------
Configure the application server, to ensure that the resources required by OBE will be available.
The resources required include:
One DataSource, JNDI name (default 'MySQLDS') to match
Two JMS Queues, JNDI names 'OBEAsyncRequest' and 'OBEApplicationEvent'.
One JAAS Configuration, default name 'other'
------------------------------------------------------------------------------------------
3、关于运行obe的JBoss服务器的配置(这段内容说明了如何配置Jboss应用服务器)
------------------------------------------------------------------------------------------
OBE provides some preconfigured resources for use with JBoss, under ${staging.dir}/j2ee/jboss.
The conf and deploy directories can be copied to the ${as.dir}/server/default directory - you
will need to rename / edit the *-ds.xml data source definition file in the conf directory to
suit your database type and connection properties. The 'default' server configuration should
be adequate for most purposes. Do not use the 'minimal' server configuration - it does not provide
all the J2EE container functionality required by OBE.
Note that OBE provides a modified version of the Castor XML library that fixes certain critical bugs,
so it is necessary either to delete the one that comes with JBoss in ${jboss.home}/server/default/deploy/snmp-adaptor.sar,
or to replace it with the OBE version (castor-0.9.5.3.jar) if you wish to use the JBoss SNMP adaptor.
This incompatibility is the result of the JBoss UnifiedClassLoader3 merging the classpaths of the
various J2EE applications.
------------------------------------------------------------------------------------------
##################################################
### 运行环境说明
##################################################
1、操作系统:Windows2000 pro
2、JBoss(4.0.1):(http://sourceforge.net/project/showfiles.phpgroup_id=22866&package_id=16942&release_id=305380)
3、MySQL(4.14):(http://www.mysql.com)
4、JDBC驱动程序:我使用的是mysql-connector-java-3.1.7-bin.jar,最新的驱动程序可以在(http://dev.mysql.com/downloads/connector/j)下载
##################################################
### 从cvs上下载的obe源程序
##################################################
1、cvs工具可以使用wincvs/TortoiseCVS
2、下载方法(转贴)
--------------------------------------------------
界面方式:
认证方式:pserver
路径:/cvsroot/obe
主机地址:cvs.sourceforge.net
用户名:anonymous
登陆,密码为空,检出模块为 .(注意:一个点,表示下载当前目录下的所有东西)
命令方式:
$cvs -d:pserver:
[email protected]:/cvsroot/obe login
$cvs -d:pserver:
[email protected]:/cvsroot/obe checkout .
--------------------------------------------------
##################################################
### 在MySQL中创建运行obe需要的数据库、用户名和密码
##################################################
mysql>create database obe;
mysql>grant all on *.* to obe@localhost identified by 'obe' with grant option;
##################################################
### 在JBoss中创建运行obe需要的数据源
##################################################
obe文档中指导我们在Jboss中配置的数据源名称为MySQLDS,我试着在Jboss中配置这个数据源,但是配置后运行obe出现了其他的问题,所以我就参照Jboss的相关文档把obe使用MySQL的数据源配置为DefaultDS,同时修改Jboss的相关配置让这个数据源可以正常使用。下面就如何在Jboss中配置obe使用的DefaultDS数据源作详细说明。(注:在Jboss中,默认的DefaultDS数据源是hsql使用的)
1、首先把我们要使用的JDBC驱动程序拷贝到$JBOSS_HOME/server/default/lib目录下;
2、然后拷贝$JBOSS_HOME/docs/examples/jca/mysql-ds.xml到$JBOSS_HOME/server/default/deploy目录下;
3、用文本编辑器打开mysql-ds.xml文件,搜索找到配置项[<jndi-name>MySqlDS</jndi-name>],修改该配置
项为[<jndi-name>DefaultDS</jndi-name>],同时修改配置项[connection-url]、[driver-class]、[user-name]、
[password]以符合我们自己的环境。下面是我修改完成后的mysql-ds.xml配置文件内容:
------------------------------------------------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<!-- $Id: mysql-ds.xml,v 1.3.2.1 2004/12/01 11:46:00 schrouf Exp $ -->
<!-- Datasource config for MySQL using 3.0.9 available from:
http://www.mysql.com/downloads/api-jdbc-stable.html
-->
<datasources>
<local-tx-datasource>
<jndi-name>DefaultDS</jndi-name>
<connection-url>jdbc:mysql://localhost:3306/obe</connection-url>
<driver-class>com.mysql.jdbc.Driver</driver-class>
<user-name>obe</user-name>
<password>obe</password>
<exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter</exception-sorter-class-name>
<!-- sql to call when connection is created
<new-connection-sql>some arbitrary sql</new-connection-sql>
-->
<!-- sql to call on an existing pooled connection when it is obtained from pool
<check-valid-connection-sql>some arbitrary sql</check-valid-connection-sql>
-->
<!-- corresponding type-mapping in the standardjbosscmp-jdbc.xml (optional) -->
<metadata>
<type-mapping>mySQL</type-mapping>
</metadata>
</local-tx-datasource>
</datasources>
------------------------------------------------------------------------------------------
4、由于$JBOSS_HOME/server/default/deploy目录下的hsqldb-ds.xml文件配置的数据源也为DefaultDS,所以必须把这个文件删除掉
5、接下来配置Jboss的消息队列以可以使用我们配置的DefaultDS(for MySQL)数据源。
A、拷贝$JBOSS_HOME/docs/examples/jms/mysql-jdbc2-service.xml到$JBOSS_HOME/server/default/deploy/jms目录下;
B、同样为了避免和hsqldb的冲突,需要把$JBOSS_HOME/server/default/deploy/jms目录下的hsqldb-jdbc2-service.xml删除掉;