JBoss ESB Tomcat 部署

最近一段时间在使用JBoss ESB,如果将其部署在JBoss上,先下载jbossesb-4.4.GA.zip文件,将install/deployment.properties-example文件复制更名成deployment.properties,再将其中的属性org.jboss.esb.server.home指向JBoss服务器的路径,如:org.jboss.esb.server.home=D:/jboss-4.2.3.GA,最后在install目录下运行ANT即可,还是很简单的。如果要将其部署在Tomcat上就要破费一番周折。

 

系统环境:

Java:v1.5.0.12

Tomcat:v5.5.27

JBoss ESB:v4.4GA (jbossesb-4.4.GA.zip,不必下载server版本)

 

1. 解压jbossesb-4.4.GA.zip文件

 

2. 将install/deployment.properties-example文件复制更名成deployment.properties

 

3. 将其中的属性org.jboss.esb.tomcat.home指向Tomcat服务器的路径

    例:org.jboss.esb.tomcat.home=D:/apache-tomcat-5.5.27

    注意:请不要使用\,要用/表示路径

 

4. 此时理论上可以执行ANT部署,但是执行ANT时发生编译错误,所以需要修改install/build.xml

    原文

<!-- Tomcat war deployment -->
<path id="classpath">
 <fileset dir="${org.jboss.esb.dist.lib}" includes="**/*jar"/>
 <fileset dir="${org.jboss.esb.tomcat.lib}" includes="**/*jar"/>
</path>
 
<target name="tomcat.compile">
 <mkdir dir="build"/>
 <javac srcdir="./tomcat/src"
     debug="true"
     destdir="tomcat/war/WEB-INF/classes/">
     <classpath refid="classpath"/>
 </javac>
</target>

    修改后

<!-- Tomcat war deployment -->
<path id="classpath">
	<fileset dir="${org.jboss.esb.dist.lib}" includes="**/*jar"/>
	<fileset dir="${org.jboss.esb.tomcat.lib}" includes="**/*jar"/>
</path>
	
<target name="tomcat.compile">
	<mkdir dir="build"/>
	<javac srcdir="./tomcat/src"
		   debug="true"
		   destdir="tomcat/war/WEB-INF/classes/">
	    	<fileset dir="${org.jboss.esb.dist.lib}" includes="**/*jar"/>
		<fileset dir="${org.jboss.esb.tomcat.lib}" includes="**/*jar"/>
	</javac>
</target>

    我没有看出原文有什么语法问题,但是就是编译报错,如果有人知道原因,请指点。

   

    修改\install\tomcat\src\org\jboss\soa\esb\servlet\ConfigListener.java文件,这是JBoss的一个Bug。

    在方法contextInitialized的第一句之前加上

System.setProperty("javax.xml.registry.ConnectionFactoryClass", "org.apache.ws.scout.registry.ConnectionFactoryImpl");

    修改后如下

public void contextInitialized(final ServletContextEvent servletContextEvent)
    {
        System.setProperty("javax.xml.registry.ConnectionFactoryClass", "org.apache.ws.scout.registry.ConnectionFactoryImpl");
        final ServletContext servletContext = servletContextEvent.getServletContext() ;
        
        servletContext.log("Initialising ESB Configuration Controller") ;
        final String catalinaHome = System.getProperty("catalina.home") ;

    如果不加这句,tomcat启动会报错。

 

 

5. 在install目录下执行命令行 ant tomcat

    注意:在此步骤之前要先设置好ANT_HOME以及将ANT_HOME/bin添加到PATH中

 

6. 发布完成,检查tomcat服务器webapps目录下,出现jbossesb的目录,说明部署成功

 

7. 创建一个数据库实例,oracle或者是MySql都可以,其他的也行。

 

8. 找到/webapps/jbossesb/WEB-INF/lib/juddi-2.0rc5.jar,解压后找到/juddi-sql/{database}/create_database.sql,将文件中的所有${prefix}删除,然后在数据库中执行,创建所有表。然后在原先jboss esb的下载包中找到 lib\jbossesb.sar\juddi-sql\{database}\import.sql,将文件中的所有${prefix}删除,然后在数据库中执行  

 

9. 修改/webapps/jbossesb/META-INF/context.xml文件中的数据库连接参数,只修改名为jdbc/juddiDB的Resource,另一个jdbc/JBossesbDS直接注释掉

    修改后文件 

<Resource name="jdbc/juddiDB" auth="Container" type="javax.sql.DataSource"
        maxActive="100" maxIdle="30" maxWait="10000" username="esb"
        password="esb" driverClassName="oracle.jdbc.driver.OracleDriver"
        url="jdbc:oracle:thin:@192.168.101.148:1521:orcl" /> 

 

10. 最后一步,添加jar包,但是有很多要添加,在jboss esb的下载包中都能找到,列表如下

commons-codec-1.3.jar
commons-httpclient-3.1.jar
commons-io-1.3.jar
commons-lang-2.1.jar
commons-logging-1.1.jar
commons-net-2.0.0-652071.jar
commons-ssl-0.3.4.jar
javassist-3.6.0.GA.jar
jboss-aop-jdk50-1.5.6.GA.jar
jboss-cache-1.2.4.SP2.jar
jbossall-client-4.2.2.GA.jar
jbossesb-config-model-1.0.1.jar
jbossesb-rosetta.jar
jbossts-common.jar
jgroups-all.jar
jsr173_1.0_ri.jar
juddi-2.0rc5.jar
juddi-client-2.0rc5.jar
log4j-1.2.14.jar
quartz-1.5.2.jar
scout-1.0rc1.jar
stax-api-1.0.1.jar
trove.jar
wstx-asl-3.2.0.jar
xbean-2.2.0.jar
xercesImpl-2.8.0.jar
xmlpublic-2.2.0.jar
xstream-1.2.2.jar 

 

注意:将数据库的jdbc包放到tomcat的common/lib下

 

11. 启动Tomcat

 

你可能感兴趣的:(oracle,tomcat,ant,SQL Server,jboss)