weblogic集群部署hibernate项目

通过console控制台发布项目后 发现出现

ClassNotFoundException:org.hibernate.hql.ast.HqlToken错误

发现问题是 weblogic中使用较低版本的hibernate 而项目中使用了最新的hibernate3.5

weblogic加载了了weblogic的lib下的 包结构后 如果发先应用中存在相同的jar下的包 不会使用新的jar

所以出现应用的jar问题

 

解决办法 需要在weblogic的jar加载之前加载hibernate的包

Middleware\user_projects\domains\域名称\bin\startWebLogic.cmd加入

set PRE_CLASSPATH=C:\project\lib\hibernate3.jar;C:\project\lib\hibernate-jpa-2.0-api-1.0.1.Final.jar;C:\project\lib\hibernate-commons-annotations-4.0.1.Final.jar

将set CLASSPATH=%SAVE_CLASSPATH%改为

set CLASSPATH=%PRE_CLASSPATH%;%SAVE_CLASSPATH%

 

重新启动发现 出现找不到Dom4jExcepiton类 

解决方法:

set PRE_CLASSPATH=C:\project\lib\hibernate3.jar;C:\project\lib\hibernate-jpa-2.0-api-1.0.1.Final.jar;C:\project\lib\hibernate-commons-annotations-4.0.1.Final.jar

;C:\project\lib\dom4j-1.6.1.jar;

将set CLASSPATH=%SAVE_CLASSPATH%改为

set CLASSPATH=%PRE_CLASSPATH%;%SAVE_CLASSPATH%

 

重新启动发现 又找不到javassist中的类 继续加入

set PRE_CLASSPATH=C:\project\lib\hibernate3.jar;C:\project\lib\hibernate-jpa-2.0-api-1.0.1.Final.jar;C:\project\lib\hibernate-commons-annotations-4.0.1.Final.jar

;C:\project\lib\dom4j-1.6.1.jar;C:\project\lib\javassist-3.15.0-GA.jar

将set CLASSPATH=%SAVE_CLASSPATH%改为

set CLASSPATH=%PRE_CLASSPATH%;%SAVE_CLASSPATH%

 重新启动发现 报 Cannot set web app root system property when WAR file is not expanded。

通过源码 发现如下代码

/*     */   public static void setWebAppRootSystemProperty(ServletContext servletContext)
/*     */     throws IllegalStateException
/*     */   {
/* 138 */     Assert.notNull(servletContext, "ServletContext must not be null");
/* 139 */     String root = servletContext.getRealPath("/");
/* 140 */     if (root == null) {
/* 141 */       throw new IllegalStateException(
/* 142 */         "Cannot set web app root system property when WAR file is not expanded");
/*     */     }

发现是因为  servletContext.getRealPath("/"); 获取不到

这时才知道 因为打包的war没有完全发布出来 是获取不到根目录的  所以采用文件夹的方式发布 就没有这个问题 

建议将

<listener>
<listener-class>
org.springframework.web.util.Log4jConfigListener
</listener-class>
</listener>

修改为:
<servlet>
 <servlet-name>log4jConfigListener</servlet-name>
      <servlet-class>org.springframework.web.util.Log4jConfigServlet</servlet-class>
      <load-on-startup>0</load-on-startup>
     </servlet>


重新启动 发现没有启动cxf 报soap异常

将web。xml中

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xmlns="http://java.sun.com/xml/ns/javaee"
 xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
 xsi:schemaLocation="http://java.sun.com/xml/ns/javaeehttp://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
 id="WebApp_ID" version="2.5">

修改为

<web-app xmlns="http://java.sun.com/xml/ns/j2ee">

重新启动 发现启动成功

 

 

 

 

 

 

posted @ 2013-12-05 13:43  饺子吃遍天  阅读(198)  评论(0编辑  收藏  举报