Weblogic10.3项目部署出错的一些常见问题

来源:互联网 发布:超感知觉 知乎 编辑:程序博客网 时间:2024/06/08 08:19
部署weblogic,我用的版本是weblogic10.3的,在部署的时候采用的是产品模式的部署方式。(在本机上测试的时候用的是开发模式的方式)部署完成之后,把此前在Tomcat 6.0上开发的项目移植到weblogic上的时候,出现了一些在开发环境上没有出现的问题,在这里记录一下在weblogic上部署项目的时候需要注意的问题。

 

 

 

1、在安装完成weblogic之后,我们需要把hibernate框架使用的一个jar包(antlr-2.7.6rc1.jar)放到weblogic的安装目录里。具体路径为D:\bea\wlserver_10.3\common\lib。

    如果我们还不能够解决冲突的话则要到工程所在的域文件夹D:\bea\user_projects\domains\base_domain\bin里,setDomainEnv.cmd的文件中修改服务的环境变量,把A步骤中的路径加上:右键-> 编辑,打开文件,在set CLASSPATH之前加上:set PRE_CLASSPATH=D:\bea\wlserver_10.3\common\lib\antlr-2.7.6rc1.jar;在set CLASSPATH之后加上:
set CLASSPATH=%PRE_CLASSPATH%;%CLASSPATH%

 

2、Date和Calender的区别

   在tomcat 6.0上开发项目的时候,我使用了DateUtils下面的addWeeks(?,?)方法,但是,在weblogic下面,只要所有使用到这个方法或者类似这个方法的地方点击链接都会报struts找不到异常,但是就奇怪了,后来一句句跟代码,才发现只要执行到这一句都会报错。于是就换成了用Calendar的方式解决了问题。

 

部分代码如下:

   

Java代码
  1.                 Date startDate new Date();   
  2.         //     Date endDate DateUtils.addWeeks(startDate, 1);       //以前用的报错的东东  
  3. Calendar =new GregorianCalendar();   
  4. c.setTime(startDate);          
  5. c.add(Calendar.DAY_OF_MONTH, 7);   
  6. Date endDate c.getTime();  
 Date startDate = new Date(); // Date endDate = DateUtils.addWeeks(startDate, 1); //以前用的报错的东东 Calendar c =new GregorianCalendar(); c.setTime(startDate); c.add(Calendar.DAY_OF_MONTH, 7); Date endDate = c.getTime();

 

后来在网上查了一些文章,还发现在在weblogic上部署的时候需要注意的一些问题及解决办法,一起贴出来和大家分享。

1.部署出错。

       部署出错常见问题就是,web.xml不规范。web.xml不规范将直接导致部署不成功!weblogic对web.xml检查非常严格,大部分能在tomcat下调试成功的,在weblogic下不一定会成功。原因是,tomcat不能算是一个服务器所以检查相对不够严格。注意这里说的tomcat指的是5.5及以下。tomcat6在整个结构上有了一定的改变,部分tomcat5.5能通过的,在tomcat6下并不一定成功!所以出错后,应当根据提示检查下web.xml书写是否规范。

       部署不成功的另一种问题,JRE版本不对应。换句话说就是服务器上的JDK低于你开发环境中的JDK,导致的版本出错。这个是比较郁闷的,通常情况下有两种建议:其一,最好的办法是将服务器上的JDK升级至官方最高版本。这样做的好处是,不用担心版本问题,另外新版本通常支持新的特性,对开发也有很大的帮助。其二,将本地的JDK和服务器上的JDK控制在同一个版本。这样就不用担心版本不对应。下面说下问题出现以后的解决方法,通过MyEclipse的项目属性->JRE设置->添加新的JRE->让项目的使用新添加的JRE。

2.乱码问题。

        通常情况下在移植项目到Weblogic服务的时候,容易碰到HTML乱码问题。这个问题通常是因为页面中的Meta标签未生效,解决的办法是在web.xml中加入下面的代码:

XML/HTML代码

Java代码
  1. <mime-mapping>      
  2.       <extension>html</extension>      
  3.       <mime-type>text/html;charset=UTF-8</mime-type>      
  4. </mime-mapping>   
<mime-mapping> <extension>html</extension> <mime-type>text/html;charset=UTF-8</mime-type> </mime-mapping>

  
3.ServletContext

 

       今天发现在JSP页面中直接调用.getServletContext()会出错。解决方法:PageContext.getServletContext();

       以上为本人在进行项目移植的时候遇到的问题,当然可能不够完整。希望大家在实际操作中能将新的问题反馈给我,好补充这篇文章。

4.JSP写的验证码

  

    

这个验证码比较简单在文件的一开始加入out.clear();即可解决问题!

       //8月10日更新  事实上out.clear();治标不治本!图片确实能显示出来了,可是控制台却报IO异常。折腾了半天找到原因,weblogic同tomcat不太一样,详情看代码。

Java代码
   
   

Java代码 ImageIO.write(image, "JPEG"response.getOutputStream());       
  1. out.clear();       
  2. out=pageContext.pushBody();   
ImageIO.write(image, "JPEG", response.getOutputStream()); out.clear(); out=pageContext.pushBody();

    
  
   
   

Java代码
ImageIO.write(image, "JPEG"response.getOutputStream());  
 
5.FCKeditor JS错误

 

       这个问题更加BT,简直让人无法忍受!你用记事本把根目录所有的文件都打开然后CTRL+S保存就OK了!另外还有可能出现载入XML错误!同上面一样,在web.xml中加入这段话就OK了!

XML/HTML代码

Java代码
  1. <mime-mapping>      
  2.         <extension>xml</extension>      
  3.         <mime-type>application/xml</mime-type>      
  4. </mime-mapping>  
<mime-mapping> <extension>xml</extension> <mime-type>application/xml</mime-type> </mime-mapping>

 ------------------------------

 

就我个人成功部署的经历说说我的部署心得。

 

1.web.xml里的contextConfigLocation,引入的资源中间不允许存在注释和空行;<display-name>DWR Servlet</display-name>不能与description存在重复,即2选1;

 

这里引入的资源文件特别要注意不要存在注释及空行,在weblogic下都会报错,说找不到资源。

display-name与description只需要2选1就可以了,不然会报莫名的错误。

这个视个人应用不同自行配置。

 

7.关于图片输出的,在weblogic下我的测试结果是不需要out.clear();。可以直接删除。这个一般在jsp页面里有使用,干掉吧。

 

8.关于数据源的。weblogic10.3提供了很好的jndi数据源配置功能,命名上要规范统一,如果是部署时报数据库错误,先检查是否已经

设置了数据源了,并把数据源的“目标”指向服务器。如果OK,检查应用里使用的jndi命名是否与weblogic里配置的数据源名称一致。

原创粉丝点击