JBoss部署同一应用到不同虚拟主机发生class冲突(ouo2)

06-03-20 ouo
由于开发的需要,我在Jboss把我们的mis系统部署了两次,基本的步骤如下

1。SQLServer建立两个相同的数据库mis,mis01

2。在\server\default\deploy下建立两个数据源文件mssql-ds.xml,mis01_mssql-ds.xml

里面配制了不同的jndi-name。启动的时候窗口提示2个数据源都加载了。

3。修改xp下的hosts文件,把mis,和mis01指向107.0.0.1

4。\server\default\deploy部署了2个应用的目录mis,mis01

5。修改每个应用里面的jboss-web.xml

<jboss-web>

<context-root>/</context-root>

<virtual-host>mis</virtual-host>

</jboss-web>

另外一个

<jboss-web>

<context-root>/</context-root>

<virtual-host>mis01</virtual-host>

</jboss-web>

6。修改数据库连接的类DBConnection.class,指向不同的jndi数据源

结果通过http://mis:8080和http://mis01:8080可以访问2个不同的应用

但是似乎JBoss Load的都是一个应用里面的DBConnection.class,结果2个应用都使用了同一个数据源,修改也都在一个数据库里面发生了,这个问题是怎么回事呢?如何解决呢?

谢谢各位

ouo
2006-03-20 09:03
不好意思,中间的代码没有弄好

5。修改每个应用里面的jboss-web.xml

  <jboss-web>
          <context-root>/</context-root>
        <virtual-host>mis</virtual-host> 
  </jboss-web>
另外一个
  <jboss-web>
          <context-root>/</context-root>
        <virtual-host>mis01</virtual-host> 
  </jboss-web>

ouo
2006-03-20 11:07
经过javaeye的BirdGu的帮助,问题解决了

是 ClassLoader的问题。JBoss 缺省是所有的 web application共用一个Class loader的。需要改tomcat的 配置。

以jboss 4.0为例,修改jbossweb-tomcat55.war/meta-inf/jboss-service.xml文件:

把Java2ClassLoadingCompliance设为false,原为true。

把UseJBossWebLoader设为false,原为true。

还是要多看看jboss的设置

banq
2006-03-23 09:49
这个解决方案只是修改Web的classLoader,而不是JBoss本身的classloader,虽然能够解决问题,但是不是根本解决,提供一个JBoss classloader设置参考:

http://wiki.jboss.org/wiki/Wiki.jsp?page=ClassLoadingConfiguration

xuanhai
2006-04-30 11:08
我使用的是jboss2.25,为什么修改了jboss-service.xml的两个参数以后,应用都启动不起来了?

猜你喜欢
2Go 1 2 下一页