Weblogic下部署服务遭遇各种问题的解决方案
[转:http://blog.csdn.net/lklinkang/article/details/6605466]
Weblogic下部署服务注意事项:
?
1.?解决weblogic与hibernate的jar包冲突问题:
首先找到该系统的DOMAIN_HOME(即你所建的域所在的位置)如:域empi的DOMAIN_HOME为:/home/wl11g/Oracle/Middleware/user_projects/domains/empi,再在${DOMAIN_HOME}/bin下找到startWeblogic.sh文件用文本编辑器将其打开,并在里面加入如下内容(在此之前需要将准备好的antlr-2.7.6.jar+拷贝到${DOMAIN_HOME}/lib目录下,也可以是其他目录,但下面的hibernate_classpath的值也得跟着作出相应的变化):
export hibernate_classpath=${DOMAIN_HOME}/lib/antlr-2.7.6.jar
接着修改SAVE_CLASSPATH成SAVE_CLASSPATH="${hibernate_classpath}:${CLASSPATH}",此时该问题已经成功解决。
2.?解决weblogic找不到hibernate.dialect的问题:
在将要部署的应用的classpath下面加入一个hibernate.properties文件,里面只要一句设置hibernate.dialect的值的内容即可(不论你是否在hibernate.cfg.xml或spring的配置文件中有进行相关的配置,只要是出现系统找不到hibernate.dialect的异常时便可以通过此方法解决),如:hibernate.dialect=org.hibernate.dialect.Oracle10gDialect。
3.?如果你需要在该服务器上发布基于axis2的webservice时还需解决axis2与weblogic的jar包冲突问题。
在你的应用的WEB-INF下面新建一个weblogic.xml文件,其内容如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE weblogic-web-app PUBLIC "-//BEA Systems, Inc.//DTD WebApplication 8.1//EN""http://www.bea.com/servers/wls810/dtd/weblogic810-web-jar.dtd">
<weblogic-web-app>
<container-descriptor>
???<prefer-web-inf-classes>true</prefer-web-inf-classes>
</container-descriptor>
</weblogic-web-app>
但此时如果你的应用中有重复的jar包,将会报jar包冲突的相关异常,此时要细心处理,避免这种情况出现,(如果你的应用的classpath下面有xml-api这个jar包应该删掉,否则会出现jar包冲突异常)此问题到写该文档为止还没又发现更好的解决方案。
对于该问题还可以参考以下文档:http://ws.apache.org/axis2/1_4_1/app_server.html
4.:如果你的应用在tomcat等应用服务器下工作都正常,部署在weblogic下时却发现由spring管理的某个javaBean没有被定义,这时可能是你在web.xml中配置spring的配置文件使用了通配符的原因,可以试将原本用通配符表示的一系列spring配置文件改成全名配置。或许有希望解决问题
5:如果你有配置文件放在了classpath下面,而且代码里面用File这样的类来读取这个文件可能会出现找不到相关文件的情况,这时可以改用InputStream来读取该文件。