您的位置:首页 > 其它

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

2013-01-14 17:13 309 查看
部署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代码

                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();  

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代码

<mime-mapping>      
      <extension>html</extension>      

      <mime-type>text/html;charset=UTF-8</mime-type>      

</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());       

out.clear();       
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代码

<mime-mapping>      
        <extension>xml</extension>      

        <mime-type>application/xml</m
4000
ime-type>      

</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里配置的数据源名称一致。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: