WebLogic常见问题
admin
2023-03-14 09:21:08
0


myeclipse+weblogic10的配置,配置成功 


运行中可能失败,由于weblogic10不稳定,重启机器后可以使用了 


web工程使用到hibernate3时可能出现问题 

ClassNotFoundException: org.hibernate.hql.ast.HqlToken 

参考http://blog.chinajavaworld.com/entry.jspa?id=829 

把本地的antlr.jar包考到weblogic.jar所在目录,在myeclipse配置服务器的path选项中添加这个antlr.jar包后运行OK 


下面转载了可能出现的其他问题和解决方法: 

1.其中发现jmesa处理时找不到配置文件,对应下面的问题6,我是改用archive方式发布后就OK了 


2.CXF在WebLogic10.3上的部署出现问题:org.apache.cxf.js.rhino.DOMPayloadProvider" failed to preload 

解决方法是web.xml文件的头改为 


3.有<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core_rt" %>无法处理,该工程中用到的jstl.jar包来自MyEclipse,找一个放到本工程的lib库下,可解决 


4.避免在lib库中出现重复包 


5.Hibernate-Validate-4.0.jar的不支持,用到该包,要用以前的Hibernate-Validate.jar包 


OS:Windows XP 

WebApp Server:Tomat5.5 WebLogic  server 10 (中文版) 

IDE:Bea workshop for weblogic platform。 

一.IDE注意事项 

创建动态web项目,选择是否共享j2ee库,如果共享,则需要域的共享库里面包含项目所需的库,比如beeHive netUi; 

不共享,则将所需的库拷贝到WEB-INF/lib目录,并自动创建相关配置文件于WEB-INF下 

如果访问页面时出现如下错误: 

index.jsp:2:4: 使用该 URI 无法找到标记库。可能是因为 URI 不正确或解析 .tld 文件时出错。 

<%@taglib uri="http://beehive.apache.org/netui/tags-html-1.0" prefix="netui"%> 

请删除多余的配置文件,或者重新建立一个工程,在向导第二页选择好正确的配置。 


二.WebLogic基础知识 

一个域可以包括多个服务器,应用程序依赖于某个服务器,通过部署-〉某应用程序-〉目标 来配置 

wl_server是weblogic默认域,通过开始菜单-〉Bea products->tools->Weblogic Server来启动 

要创建自己的域,则可以通过开始菜单-〉Bea products->tools->Configuration wizard来创建 

登录地址:http://localhost:7001/console/login/LoginForm.jsp 

登录用户密码:weblogic/weblogic 


1.部署war之后,测试时发生错误: 

Error   503--Service   Unavailable   

From   RFC   2068   Hypertext   Transfer   Protocol   --   HTTP/1.1: 

..... 

解决办法:一般是在刚刚激活更改后,就进行测试,还需要将该应用程序启动,状态为“活动”之后再测试就可以了。 


2.连接池测试时出错: 

Warning! Connectivity to backend database not verified. This is either because required connection pool attribute "TestConnectionsOnReserve" has not been enabled, or an invalid value has been specified for attribute "TestTableName". Please check the server log for more details.. 

配置连接缓冲池,在“高级”中选中“保留时测试连接”即可。此时需要先激活更改再进行测试。否则还会报错。 


3.jdbc jndi错误: 

javax.naming.NameNotFoundException: Unable to resolve 'jdbc_fbysss. Resolved ''; remaining name 'jdbc_fbysss' 

首先要在控制台中点击左边的控制栏中的服务->JDBC新建一个数据源,数据源名称无所谓,jndi name一定要注意,比如取名叫jdbc_fbysss,而且,jdbc源必须依赖于一个server。否则无法启动。 

对于Spring项目,修改applicationContext.xml的dataSource,(Tomcat的连接池在这里就不需要了)。 

       

         

         

          false 

          

         


4.xml校验错误 

(1)hbm.xml 

org.dom4j.DocumentException: unknown protocol: platform. Nested exception: unknown protocol: platform 

这个经检查是workshop导出时 ,hbm.xml文件生成错误。修改过来就好了 

(2)struts-config.xml 

正式部署时出现异常: 

ERROR Digester        []: Parse Error at line 2 column 

15: Document root element "struts-config", must match DOCTYPE root "null". 

org.xml.sax.SAXParseException: Document root element "struts-config", must match 

DOCTYPE root "null". 

需要在struts-config.xml中第二行加入 


5.ServletApi实现不一致情况 

发现一个奇怪的现象,tomcat中,一个servlet的子类,如果没有声明init方法,会自动执行父类的init方法,而weblogic不会。 

解决办法是显式声明init,super.init(); 


6.莫名其妙空指针错误 

完整错误信息: 

java.io.FileNotFoundException: F:\bea\wlserver_10.0\samples\domains\workshop\servers\cgServer\tmp\_WL_user\prj_fbysss\mlh6uz\war (拒绝访问。) 

        at java.io.FileInputStream.open(Ljava.lang.String;)V(Native Method) 

        at java.io.FileInputStream.(FileInputStream.java:106) 

        at workshop.util.filesystem.file.WlFileSystem.getInputStream(WlFileSyste 

m.java:148) 

        at workshop.util.filesystem.FS.getInputStream(FS.java:262) 

        at javelin.jsp.JspParser.readStaticInclude(JspParser.java:3261) 

        at javelin.jsp.JspParser.parseStaticInclude(JspParser.java:3198) 

        at javelin.jsp.JspParser.processImplicitIncludes(JspParser.java:3289) 

        at javelin.jsp.JspParser.jspParse(JspParser.java:703) 

        at javelin.jsp.JspParser._parse(JspParser.java:504) 

        at javelin.jsp.JspParser.parse(JspParser.java:497) 

        at javelin.jsp.JspAnalyzer.parseFile(JspAnalyzer.java:113) 

        at javelin.jsp.JspAnalyzer.parse(JspAnalyzer.java:101) 

        at javelin.ProxySourceFile.parse(ProxySourceFile.java:117) 

        at javelin.SourceFile.getAst(SourceFile.java:542) 

        at javelin.SourceFile.getAst(SourceFile.java:516) 

        at javelin.ProxySourceFile.codeGen(ProxySourceFile.java:215) 

        at javelin.SourceFile.codeGen(SourceFile.java:310) 

        at javelin.client.ClientUtilsImpl$CodeGenJob.run(ClientUtilsImpl.java:11 

05) 

        at javelin.client.Job.performJob(Job.java:81) 

        at javelin.client.ThreadPool$WorkerThread.run(ThreadPool.java:215) 

<2008-8-23 下午07时15分11秒 CST> <[weblogic.servlet. 

internal.WebAppServletContext@36b25e - appName: prj_fbysss, name: 'prj_fbysss', context-path: '/prj_fbysss] Root cause of ServletException. 

java.lang.NullPointerException 

        at javelin.jsp.JspAnalyzer.parse(JspAnalyzer.java:104) 

        at javelin.ProxySourceFile.parse(ProxySourceFile.java:117) 

        at javelin.SourceFile.getAst(SourceFile.java:542) 

        at javelin.SourceFile.getAst(SourceFile.java:516) 

        at javelin.ProxySourceFile.codeGen(ProxySourceFile.java:215) 

        Truncated. see log file for complete stacktrace 


最后发现是web.xml中一句不对,去掉就好了,很怪异。 

   

  http://www.sss.com/select 

  /WEB-INF/tlds/select.tld 

      

   

  http://www.sss.com/tree 

  /WEB-INF/tlds/tree.tld 

          

   

   

    

    WEB项目配置 

    

   JSPConfiguration 

   *.jsp 

   false 

   gbk 

   false 

    

   

 


7.类冲突问题 


(1)JSTL解析失败 

index.jsp:1:1: validator 类 "org.apache.taglibs.standard.tlv.JstlCoreTLV" 失败,出现如下异常: "java.lang.ClassCastException: weblogic.xml.jaxp.RegistrySAXParserFactory"。 

<%@page contentType="text/html;charset=gbk" language="java"%> 

项目属性-〉项目构面中的设置将记录在.setting/org.eclipse.wst.common.project.facet.core.xml文件中。 

最后是把prefer-web-inf-classes设置为false就可以了。 


(2)HQL语句执行失败 

org.springframework.orm.hibernate3.HibernateQueryException: ClassNotFoundException: org.hibernate.hql.ast.HqlToken 

这种情况是包版本冲突,必须设置prefer-web-inf-classes设置为true。 

这样一来,有的包需要true,有的需要false,怎么办?Weblogic的确够恶心的。JSTL的包都已经放webapp下了,设置prefer-web-inf-classes设置为ture还不行,只好采取以下稍显麻烦的方法: 

在workshop开发环境下,启动的服务器目录是 

F:\bea\wlserver_10.0\samples\domains\workshop\bin 

修改启动脚本startWebLogic.cmd 

找到set CLASSPATH=%SAVE_CLASSPATH%,在后面加入 

@REM sss added 

set PRE_CLASSPATH=%WL_HOME%\server\lib\antlr-2.7.6rc1.jar; 

set CLASSPATH=%PRE_CLASSPATH%;%CLASSPATH% 

其中,antlr-2.7.6rc1.jar包需要拷贝到F:\bea\wlserver_10.0\server\lib下。 

正式发布的时候,需要修改对应域目录下的启动脚本 

比如f:\bea\user_projects\domains\fbysssDomain\bin\startWebLogic.cmd 

8.部署问题 

部署时出现如下错误: 

<2008-8-23 下午07时37分42秒 CST>

Failures were detected while initiating redeploy task for application 'prj_fbysss'. Error is: ' 

[Deployer:149163]The domain edit lock is owned by another session in non-exclusi 

ve mode - this deployment operation requires exclusive access to the edit lock a 

nd hence cannot proceed.'> 

解决:进入http://localhost:7001/console,释放配置,再次部署即可。 

注:更新war:必须在删除该应用,并激活更改之后才能覆盖。 

但是用war方式,获取资源路径的方法和tomcat不同,存在臭名昭著的getRealPath等问题,移植困难,所以用目录方式部署比较好。 

具体方法:先把war解压,然后在weblogic控制台里面选择目录部署。 


相关内容

热门资讯

凤凰直击东盟峰会:菲方推海事中... 5月8日,第48届东盟峰会落幕。菲律宾提出设立“东盟海事中心”的倡议,成为本届峰会焦点之一。菲律宾总...
快30岁,还不像个大人,我们怎... 2025年,邓鹭下定决心裸辞。此后长达一年的gap时间里,她频繁觉得自己像漂在海上,且不知靠岸何处。...
历史性大手笔!中国向巴基斯坦交... 中国向巴基斯坦交付首艘“麒麟”级常规动力潜艇,这也是近年中国向世界出口的首艘新型现代潜艇,它注定成为...
郑丽文回故乡现身“云林人之夜”... 海峡导报综合报道 国民党主席郑丽文9日出席云林县“云林人之夜”活动,她表示特别穿着中山装来走秀,衣服...
以军空袭黎巴嫩南部多地,造成至... 总台记者获悉,当地时间5月9日下午,以军空袭黎巴嫩南部西顿、宾特朱拜勒、迈法敦等多地,位于黎南部的萨...
豪华邮轮3人死于汉坦,专家:中... 经济观察报 记者 刘晓诺“陈某下船至今39天,无相关症状,汉坦病毒核酸检测结果均为阴性。经专家研判,...
斯塔默迎来至暗时刻 入主唐宁街10号不到两年,斯塔默迎来至暗时刻,成为史上最不受欢迎的英国首相之一。5月7日举行的地方选...
视频丨天舟货运“零差评”背后 ... 5月8日,天舟十号货运飞船与长征七号遥十一运载火箭组合体垂直转运至发射区,计划于近日择机实施发射。天...
媒体:精神病院成十大股东,不该... 近日,一则“精神病院现身A股公司前十大股东”的消息引发广泛关注。有投资者发现,盛通股份2026年一季...
原创 美... 最近有个消息,可能不少人都刷到了。工信部正式批了一个6G试验的频率使用许可,支持在部分地区先搞一搞6...