guangxian2012 发表于 2014-6-30 09:36:59

Java业务服务器部署出错:anychatserver4java.dll already loaded in another class...

各位anyhat大神,如题,我在部署将Java 业务服务器部署在tomcat中的时候遇到问题。
。部署的步骤是参照http://bbs.anychat.cn/forum.php?mod=viewthread&tid=335&extra=page%3D1的,在开发环境中是可以运行的,放到服务器上面部署就不行了。
出错的提示(anychatserver4java.dll already loaded in another classloader)如图片所示:

佰锐赵仙平 发表于 2014-6-30 09:46:08

你好,anychatserver4java.dll already loaded in another classloader 异常是因为重复加载了anychatserver4java.dll库文件,你把tomcat\conf文件夹下server.xml文件贴出来看看。

guangxian2012 发表于 2014-6-30 10:04:53

佰锐赵仙平 发表于 2014-6-30 09:46
你好,anychatserver4java.dll already loaded in another classloader 异常是因为重复加载了anychatserver ...

部署anychat项目的是这个部分:   <Host name="live.cn" debug="0" appBase="webapps"
            unpackWARs="true" autoDeploy="true"
            xmlValidation="false" xmlNamespaceAware="false">
                       
                                <Context path="" docBase="BGChatLive"reloadable="true" debug="0"/>

佰锐赵仙平 发表于 2014-6-30 10:17:31

原因分析:<Host name="live.cn" debug="0" appBase="webapps"
            unpackWARs="true" autoDeploy="true"
            xmlValidation="false" xmlNamespaceAware="false">
                        
                              <Context path="" docBase="BGChatLive"reloadable="true" debug="0"/>

1.当为 Host 容器 设置了 appBase 属性时, Tomcat 会在启动时自动加载 appBase 指定目录下的所有合法工程;
2. 由于同时又通过 Context 的docBase 属性设置了Tomcat 默认工程, 所以,指定的 BGChatLive工程又会被加载一次
基于以上两点,造成了 BGChatLive工程的重复加载。
解决办法:
1. 新建一个目录专门用于存放工程, 如: E:\apache-tomcat-6.0.20\project
2. 将工程存放到以上目录下:即:E:\apache-tomcat-6.0.20\project\BGChatLive
3. 在 Context 容器中设置 docBase 属性, 如:
<Context path="" docBase="E:\apache-tomcat-6.0.20\project\BGChatLive" />

注意:记得把webapps目录下的原项目删除

guangxian2012 发表于 2014-6-30 11:20:23

佰锐赵仙平 发表于 2014-6-30 10:17
原因分析:
                        
                              


谢谢你的详细解答,我试下看看!

guangxian2012 发表于 2014-6-30 12:52:26

guangxian2012 发表于 2014-6-30 11:20
谢谢你的详细解答,我试下看看!

可以了,是这个原因,谢谢!
页: [1]
查看完整版本: Java业务服务器部署出错:anychatserver4java.dll already loaded in another class...