赞
踩
weblogic.xml是可以选的,可以不要,除非你需要先加载web-inf/lib文件。
weblogic.xml主要配置web容器的一些属性,比较JSP编译时间间隔、编译路径等web.xml是配置整个应用工程的属性,如servlet等
第一个问题: [HTTP Session:100039]Replicated HTTP sessions specified for webapp: ydjyjc, but clustering not enabled
解决方案;
这个错误,其实大家很容易犯,但有个好处是,这个问题百度里很多答案,大家只要一百度都能搜索了到。 但是我有点傻,百度里告诉我要修改应用里面的weblogic.xml文件,把 replicated修改为 memory ,但我却从weblogic安装目录里面去全局搜索,搜索出所有的weblogic.xml,然后把 replicated修改为 memory,但是重新部署应用的时候,那些文件又重新生成了,我当时还在骂,到底谁写出这么烂的方法。后来发现我是傻到不行啊,应用文件里的weblogic.xml 指的是,你那个项目里面的weblogic.xml,(就比如web.xml).这是我的理解失误,我想大家是不会犯这样的错误的。
再次总结下解决方案,找到你的项目里的weblogic.xml 文件,修改里面的 配置
<session-descrīptor>
<session-param>
<param-name>PersistentStoreType</param-name>
<param-value>replicated</param-value>
</session-param>
</session-descrīptor>
把这段内容里面的 replicated 修改为 memory 就好了,有些版本可能不一样,配置的名称可能不同,如 我的weblogic.xml 是长这样的
<session-descriptor>
<persistent-store-type>replicated</persistent-store-type>
<url-rewriting-enabled>true</url-rewriting-enabled>
<sharing-enabled>true</sharing-enabled>
</session-descriptor>
但也是同样的修改方法,把这段内容里面的 replicated 修改为 memory 就好了。
第二个问题、找不到 jndi ,我在weblogic里面配置了数据源,但应用里面不知道该如何修改,这里需要看日志文件,日志文件路径一般在 E:\bea\user_projects\domains\epsoft_domain(这里是不一样的,是你自己建立的domain的名字)\servers\Server-zjyb(这里也是自己服务的名字)\logs
路径只是一个参考,要根据自己的配置不同而修改,这里面的logs有两个文件必须要看 Server-zjyb.log 和 Server-zjyb.out ,我的服务名字叫 Server-zjyb,所以这里都是 Server-zjyb打头的,这里的日志文件根据你的服务名字来,后缀一般都是.out 和 .log(再次强调,日志文件很重要)。
解决方案 : 看 .log日志文件,报的错误 javax.naming.NameNotFoundException: While trying to look up comp/env/jdbc/insiisin /app/webapp/ydjyjc.war/4821373.;
remaining name 'comp/env/jdbc/insiis'
在我打好的war包中查找 comp/env/jdbc/insiis,但是没有找到
这里回顾一点,我的weblogic部署的时候,配置的jndi的名字是jdbc.ydjyjc
所以,查找你开发的项目里,所以包含 comp/env/jdbc/insiis 的文件,然后把 comp/env/jdbc/insiis 修改成 comp/env/jdbc/ydjyjc 。(一切就都好了,这里需要强调一点,jndi的名字是 jdbc.ydjyjc,但是项目里面一般配置的时候都是斜杠,jdbc/ydjyjc,这点要注意,如果你在项目里配置的是jdbc点ydjyjc那就找不到了 )
第三个问题:
For server YDJY-JC, the Node Manager associated with machine MachineYDJYJC is not reachable.
All of the servers selected are currently in a state which is incompatible with this operation or are not associated with a running Node Manager or you are not authorized to perform the action requested. No action will be performed.
解决方案,创建机器的时候,在nodemanager中,第一个选项有ssh、plain、等,这里选择plain就Ok了。
第五个问题:
JSP乱码:
在你工程目录下面的/WEB-INF里面有一个weblogic.xml这个文件里有字符集设置
(这个weblogic.xml文件是你在使用weblogic对自己的这个WEB工程进行发布时,通过向导一步一步进行参数设置之后,自动生成的)。
解决办法:
weblogic.xml里的字符集设置为:
<charset-params>
<input-charset>
<resource-path>/*</resource-path>
<java-charset-name>UTF-8</java-charset-name>
</input-charset>
</charset-params>
第六个问题
部署出错。
部署出错常见问题就是,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。
第七个问题
乱码问题。
通常情况下在移植项目到Weblogic服务的时候,容易碰到HTML乱码问题。这个问题通常是因为页面中的Meta标签未生效。
解决的办法是在web.xml中加入下面的代码:
XML/HTML代码
Java代码
<mime-mapping>
<extension>html</extension>
<mime-type>text/html;charset=UTF-8</mime-type>
</mime-mapping>
第八个问题
有时候这样的错误,还会报关于“zip”压缩文件格式错误的提示。这是因为要发布的服务包在修改了之后发生了格式错误,可以通过拿一个可以正常发布的包,把包里面的内容删空,再把要发布的服务包里的内容全部拷贝出来,放进空包里,然后再把空包的名字改成要发布的包名就可以解决了。
第九个问题
web.xml里的contextConfigLocation,引入的资源中间不允许存在注释和空行;<display-name>DWR Servlet</display-name>不能与description存在重复,即2选1;
这里引入的资源文件特别要注意不要存在注释及空行,在weblogic下都会报错,说找不到资源。
display-name与description只需要2选1就可以了,不然会报莫名的错误。
第十个问题
关于xml解析的jar包冲突,这个烦了我半天,解决的办法是移除去掉wstx.jar包,在部署完成后再引入,重新部署。
我这里已经成功,以后重新启动就不需要再部署了。
第十一个问题
在安装完成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%。
第十二个问题
Date和Calender的区别
在tomcat 6.0上开发项目的时候,我使用了DateUtils下面的addWeeks(?,?)方法,但是,在weblogic下面,只要所有使用到这个方法或者 类似这个方法的地方点击链接都会报struts找不到异常,但是就奇怪了,后来一句句跟代码,才发现只要执行到这一句都会报错。于是就换成了用 Calendar的方式解决了问题。
部分代码如下:
- 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上部署的时候需要注意的一些问题及解决办法,一起贴出来和大家分享。
第十三个问题
ServletContext
今天发现在JSP页面中直接调用.getServletContext()会出错。解决方法:PageContext.getServletContext();
以上为本人在进行项目移植的时候遇到的问题,当然可能不够完整。希望大家在实际操作中能将新的问题反馈给我,好补充这篇文章。
第十四个问题
JSP写的验证码
这个验证码比较简单在文件的一开始加入out.clear();即可解决问题!
//8月10日更新 事实上out.clear();治标不治本!图片确实能显示出来了,可是控制台却报IO异常。折腾了半天找到原因,weblogic同tomcat不太一样,详情看代码。
Java代码
/** Tomcat写法 */
- ImageIO.write(image, "JPEG", response.getOutputStream());
- out.clear();
- out=pageContext.pushBody();
/** Weblogic写法 */
ImageIO.write(image, "JPEG", response.getOutputStream());
第十五个问题
FCKeditor JS错误
这个问题更加BT,简直让人无法忍受!你用记事本把根目录所有的文件都打开然后CTRL+S保存就OK了!另外还有可能出现载入XML错误!同上面一样,在web.xml中加入这段话就OK了!
XML/HTML代码
- <mime-mapping>
- <extension>xml</extension>
- <mime-type>application/xml</mime-type>
- </mime-mapping>
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。