WebLogic问题排除概览
- 格式:pdf
- 大小:3.65 MB
- 文档页数:92
1.WebLogic启动不正常时,可能有以下几个原因造成的:
问题描述:WebLogic启动失败。
点击WebLogic启动文件,启动失败,参考视频”WebLogic问题描述.wmv”;此时通过快捷方式无法查看具体的“错误信息”;那么采用命令行的方式启动WebLogic;如图
错误的提示信息,如图:
出现的这样的错误,可能是:path 的环境变量配置出现了问题,如图:
查看环境变量配置,此时的配置。
如:
其中:path 的环境变量配置出现了问题,应该将其中的path修改为:
path .;%JA V A_HOME%\lib;
如图:
修改path后,此时WebLogic可以正常的启动了。
启动后正常的path值为:
PATH=/cygdrive/d/bea/weblogic81/server/bin//cygdrive/D/bea/jdk142_05/jre/bin//cygdrive/D/bea /jdk142_05/bin/./:/usr/local
/bin:/usr/bin:/bin:/usr/X11R6/bin:%JA V A_HOME%/bin:%JA V A_HOME%/jre/bin:.:/bea/jdk160_0 5/lib:.//cygdrive/d/bea/weblogic81/
server/bin/oci920_8。
Weblogic宕机事件定位分析段常飞Weblogic宕机,是很多运维人员的噩梦,时不时的系统挂了,而且总是找不到源头,开发说程序没有大的变动,一直很平稳呀,客户反馈,系统硬件配置已经相当高了,足以支持系统运行呀。
又把问题抛给了运维人员,必须得找出原因了。
可是怎么下手呢?下面我以郑州为例来演示如何定位程序问题。
郑州市20160505、20160509宕机事件日志错误类型:<2016-5-9 上午11时22分13秒CST><Error><WebLogicServer><BEA-000337><[STUCK] ExecuteThread: '1' for queue: 'weblogic.kernel.Default (self-tuning)' has been busy for "3,708" seconds working on the request "Workmanager: default, Version: 0, Scheduled=true,Started=true, Started time: 3708125 ms[Cookie:JSESSIONID=yGn2XvYC6yV3nDLJHCQFyxVQLSBcpL1WmRxkhQl78nyZTpq13 J8v!-154976378; BIGipServerPool-zhongxinduan=1348708544.37919.0000]", which is more than the configured time (StuckThreadMaxTime) of "3,600" seconds. Stack trace:com.neusoft.udolink.OPSysManager.start(OPSysManager.java:361)2016/05/09-11:24:21 >> INFO >> Timer-3 >> p.cacheSynchronize.CacheTask.run(CacheTask.java:34) >>检查内存更新...<2016-5-9 上午11时24分21秒CST><Warning><Socket><BEA-000449><Closing socket as no data read from it on 192.168.99.251:39,310 during the configured idle timeout of 5 secs><2016-5-9 上午11时26分28秒CST><Warning><Socket><BEA-000449><Closing socket as no data read from it on 192.168.99.80:24,574 during the configured idle timeout of 5 secs><2016-5-9 上午11时26分28秒CST><Warning><Socket><BEA-000449><Closing socket as no data read from it on 192.168.99.80:24,539 during the configured idle timeout of 5 secs>分析原因:weblogic的线程阻塞,进而导致批量等待阻塞,最纵引起weblogic挂起现象Weblogic 线程处理的默认时间为3600s,StuckThreadMaxTime:3600。
中间件故障诊断总结一、步骤:1、准确描述现象:客户说的和自己查看到的:平台、版本、操作、信息等。
特别是,故障前是否有做过什么操作:网络调整、设备调整、主机参数调整、配置文件修改……反正将这一切都列入排查的对象。
2、使用工具收集数据,收集配置文件、日志、dump文件等等。
3、使用分析数据,根据问题或收集的数据,使用适当的工具分析数据,当然包括了在网上和在官方支持站点搜索类似的问题的解决办法。
4、尝试解决问题,根据找到的问题点,尝试解决。
如修改错的,复原正确的;运行有问题的,适当调整运行的环境和运行的参数等等。
5、给出最佳解决方案,一般就是继续观察了。
6、总结经验并加以重用,知识积累。
二、通过前台收集基本的信息:1、重点是故障前做过的操作2、比对运行平台是否在官方的兼容性列表中,一般就是关注各个版本,特别是一些比较怪异的问题3、检查环境和参数,如能打开控制台,就在控制台中初步观察,一般进入控制台的格式是如:。
常用的留意点如下:A、域运行状态(域-监视-健康状况);一般为running状态,如果不是running,那这些界面就没有了。
B、服务器运行状态(域-环境-服务器),正常的为running。
C、各个server性能(JVM)状态(域-环境-服务器,点击具体的serve后进入,监视-健康状况);留意JVM堆中当前可用的内存量。
不同的JVM,所显示的内容可能不一样,以下为sun的:D、各个server线程状态(域-环境-服务器,点击具体的serve后进入,监视-线程);一般来说,空闲线程要多;健康状况为ok如下图health状态为:Warning,这个是有线程阻塞的。
阻塞线程的内容为:####<2011-8-13上午02时42分35秒GMT+08:00><Error><WebLogicServer><dataweb1><dc_admin1><[ACTIVE]ExecuteThre ad:'15'forqueue:(self-tuning)'><<WLSKernel>><><><BEA-000337><[STUCK]Execut eThread:'19'forqueue:(self-tuning)'hasbeenbusyfor"2,492"secondsworkingonth erequestwhichismorethantheconfiguredtime(StuckThreadMaxTime)of"2,400"secon ds.Stacktrace:Method)Source)E、JDBC(域-环境-服务器,点击具体的serve后进入,监视-JDBC);活动连接数合理。
Weblogic集群多播配置故障排除使用IP 多播时,群集中的WebLogic Server 实例可以共享一个IP 地址和端口号。
此功能使得群集的所有成员可被视为一个实体,并且使得群集成员能够互相通信。
下列部分提供了对IP 多播配置问题进行故障排除的建议:验证多播地址和端口配置识别网络配置问题使用MulticastTest 实用工具调整多播功能调试多播杂项问题多播配置故障排除的其他资源有关在群集中使用和配置多播的常规信息,请参阅群集配置和config.xml。
有关在控制台中配置多播地址的信息,请参阅“管理控制台联机帮助”中的多播。
验证多播地址和端口配置多播问题故障排除过程的第一步是验证您是否正确配置了多播地址和端口。
必须为每个群集正确配置多播地址。
多播地址和端口配置问题属于群集无法启动或者服务器无法加入群集的最常见原因。
对于多播地址要注意下列事项:多播地址必须是介于224.0.0.0 和239.255.255.255 之间的IP 地址,或者具有此范围IP 地址的主机名。
WebLogic Server 使用的默认多播地址是239.192.0.0。
不要使用任何x.0.0.1 多播地址,其中x介于0 和9 之间(包括0 和9)。
可能的错误由于多播配置问题经常会出现下列类型的错误:无法为群集创建多播套接口多播套接口发送错误多播套接口接收错误检查多播地址和端口要检查多播地址和端口,请执行下列操作:通过WebLogic Server 管理控制台检查群集多播地址和端口,或检查config.xml 中<cluster>元素的多播信息。
识别网络配置问题验证了多播地址和端口配置正确之后,请确定网络问题是否正在干扰多播通信。
物理连接确保网络中不存在物理问题。
验证群集中每个承载服务器的计算机的网络连接。
验证网络的所有组件是否正确连接并且运行正常,其中包括路由器和DNS 服务器。
地址冲突网络中的地址冲突可能会对多播通信造成干扰。
64位weblogic11g安装部署以及常见问题解决方案目录(一) 安装 (1)在Windows 64位操作系统安装Weblogic的注意事项 (3)(二) 部署运行 (3)1. 包引入错误 (3)2.乱码现象 (3)3.mime-typeType配置问题 (4)4.应用不存在 (4)5.ClassNotFoundException: org.hibernate.hql.ast.HqlToken (4)6.weblogic部署war包action不能访问问题解决方法[There is no Action mapped fornamespace / and action name] (5)ng.StackOverflowError (5)(一)安装我们在64位的服务器上为提高性能要安装64位的weblogic。
经常在网上看到有人问,weblogic有64位的么?weblogic需要破解么?weblogic有专门的64位版本,这里安装的是weblogic11g,也就是10.3.6版本,12c的版本安装应该类似。
weblogic从bea被oracle收购后,不需要破解,就只有授权。
什么意思呢?就是说从oracle官网上下载的weblogic 就是全功能版本,不管是集群还是其他,功能没有任何限制。
但是如果要用于商业环境,必须要向oracle买license,当然可以偷偷的用,那就是盗版,侵权,有一天oracle可以告的破产……。
1、下载64位weblogic,打下这个地址:/technetwork/middleware/ias/downloads/wls-main-097127.html,在这里可以看到除了mac os X操作系统外,其他系统的64位都是同一个版本,wls1036_generic.jar。
如下图,weblogic的下载需要注册一个oracle官网的帐号。
2、下载64位JDK,我们下载的文件wls1036_generic.jar文件里面不包括JDK,如有可能, 请尽量在Windows/Linux平台下使用JRockit虚拟机,下载地址:/technetwork/middleware/jrockit/downloads/index.html。
Weblogic中间件运维经验汇总目录关于Weblogic参数调优的运维经验 (2)Weblogic性能调优的处理方法 (5)关于输电项目Weblogic安装的运维经验 (8)Weblogic回收数据库连接数配置的方法 (14)在Apache和Weblogic中分别部署静态页面的方法 (17)Weblogic Server性能调优经验 (20)WeblogicJVM堆参数设置方法 (24)关于Weblogic参数调优的运维经验报送单位:北京公司审核人:类型:业务应用关键字:GC垃圾回收1、引言为了提高维护人员运维水平,以集中与分享日常运行维护经验为目的,现进行典型经验的编制。
2、现象描述部分应用服务器出现宕机现象,在F5上查看时已经掉出集群状态。
3、处理过程停止宕机应用服务器上的Weblogic进程。
/home/weblogic/bea/user_projects/domains/pms/bin/setDomainEn v.sh文件中的启动内存大小并添加垃圾回收机制,修改后如下:MEM_ARGS="-Xms5248m -Xmx5248m -Xmn1536m-XX:SurvivorRatio=6-XX:+UseParNewGC-XX:+UseConcMarkSweepGC-XX:CMSFullGCsBeforeCompaction=20-XX:+UseFastAccessorMethods-XX:+AggressiveOpts"3、修改完成后重启Weblogic服务。
4、原因分析在收到报警信息后,对后台日志进行查看,报错信息如下:Exception in thread "CBM_正常处理任务线程" ng.OutOfMemoryError: Java heap spaceatoracle.jdbc.driver.OracleStatement.prepareAccessors(OracleStatement.ja va:868)atoracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatem ent.java:1045)atoracle.jdbc.driver.T4CPreparedStatement.executeMaybeDescribe(T4CPre paredStatement.java:839)atoracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatem ent.java:1132)atoracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePrepa redStatement.java:3316)atoracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3361)经过对报错日志分析,状态检修的CBM处理进程内存溢出报错,导致服务器宕机。
1Weblogic9.2 在linux下启动很慢打开setDomainEnv.sh 增加-Djava.security.egd=file:/dev/zero修改参数为JAVA_OPTIONS="${JAVA_OPTIONS} -Djava.security.egd=file:/dev/zero"2Windows x64 jrockit 启动3000M 报OutOfMemoryng.OutOfMemoryError: class allocation, 153359080 loaded, 154140672 footprint JVM@check_alloc(src/jvm/model/classload/classalloc.c:118). 19416 bytes通过修改启动内存,设置4G以上3后台日志出现以下报错User <anonymous> does not have permission on weblogic.management.home to perform lookupoperation1、网上找到的解决方案是:打开weblogic控制台,点击你部署工程的那个domain,在右边主页的下面有一个“View Domain-wide Security Settings”连接,点开它,看看复选框“Anonymous Admin Lookup Enabled”前面是没选的,把它勾上。
2、使用了1中的解决方案还是报这个错误,经过高手提醒后发现原因:如果一个weblogic.xml中包含以下的内容:<container-descriptor><prefer-web-inf-classes>true</prefer-web-inf-classes></container-descriptor>这个配置的意思是使weblogic优先加载应用WEB-INF/lib下面的jar包。
常见weblogical漏洞原理及危害和防御方法随着互联网的快速发展,网络安全问题日益突出。
WebLogic作为一款主流的Java EE应用服务器,广泛应用于企业级应用中。
然而,它也存在着一些安全漏洞,这些漏洞一旦被黑客利用,将对企业和用户造成极大的危害。
本文将详细解析WebLogic常见的漏洞原理、危害以及防御方法,以帮助大家更好地保障网络安全。
一、常见WebLogic漏洞原理及危害1.XMLDecoder反序列化漏洞原理:WebLogic中的XMLDecoder组件在解析XML数据时,未对数据进行严格的校验,导致攻击者可以构造恶意的XML数据,执行远程代码。
危害:攻击者可以利用该漏洞获取服务器权限,进而窃取敏感数据、破坏系统等。
2.T3协议反序列化漏洞原理:WebLogic使用T3协议进行远程方法调用,攻击者可以构造恶意的序列化数据,通过T3协议发送给WebLogic服务器,从而执行远程代码。
危害:与XMLDecoder反序列化漏洞类似,可能导致服务器被攻击者控制。
3.IIOP协议反序列化漏洞原理:WebLogic支持IIOP协议进行远程方法调用,攻击者可以利用该协议发送恶意序列化数据,执行远程代码。
危害:同样可能导致服务器被攻击者控制。
4.SSRF漏洞原理:WebLogic中的某些功能存在服务器端请求伪造(SSRF)漏洞,攻击者可以构造特定的请求,让服务器向指定的目标发起请求。
危害:攻击者可以利用该漏洞访问内部网络资源,甚至可能导致服务器成为攻击者的代理,对外发起攻击。
5.反向代理漏洞原理:WebLogic的反向代理功能存在安全缺陷,攻击者可以构造恶意的请求,绕过反向代理的限制,访问内部网络资源。
危害:可能导致内部网络资源被暴露,遭受攻击。
二、防御方法1.及时更新补丁针对已知的漏洞,Oracle官方会发布相应的补丁。
企业和开发者应及时更新WebLogic服务器,确保安全。
2.禁用不必要的服务和协议关闭WebLogic中不必要的服务和协议,如T3、IIOP等,减少潜在的攻击面。
1 WEBLOGIC服务器管理概述10域、管理服务器与受管服务器10启动管理控制台12运行时对象与配置对象12日志消息的集中访问14W EB L OGIC管理服务器与W EB L OGIC受管服务器15启动时的错误消息15启动W EB L OGIC管理服务器15WebLogic服务器启动时的口令使用16从Start菜单启动WebLogic管理服务器16启动与终止Windows服务形式的WebLogic服务器16从命令行启动WebLogic管理服务器17用脚本启动管理服务器20在受管服务器运行时重启管理服务器 20在同台机器上重启管理服务器21在其它机器上重启管理服务器21将W EB L OGIC受管服务器加入到域22启动W EB L OGIC受管服务器22通过脚本启动W EB L OGIC受管服务器 24从老版本W EB L OGIC服务器升级 25从管理控制台终止W EB L OGIC服务器 25从命令行停止服务器25暂停和恢复受管服务器26将W EB L OGIC服务器设置为W INDOWS服务26删除W INDOWS服务形式的W EB L OGIC服务器27更改安装成Windows服务的服务器口令27注册启动与终止类282 节点管理器 29节点管理器概述29配置与启动节点管理器30启动节点管理器31启动管理服务器323 配置WEBLOGIC服务器与集群35服务器与集群配置概述35管理服务器的角色35启动管理控制台37动态配置的工作原理38集群配置规划38- 1 -服务器配置任务列表39集群配置列表41新建一个域42概述43监控服务器44终止或暂停服务器45性能45集群数据46服务器安全46JMS 47JTA 47监控JDBC连接池 47管理控制台的M ONITORING页面一览表484 用日志消息管理WEBLOGIC服务器51日志子系统概述51本地服务器的日志文件53启动日志53客户端日志54日志文件的格式54消息属性54消息目录55消息的严重级别55消息调试56浏览日志文件56查看日志56创建域日志过滤器575 分发应用58分发格式58用管理控制台分发应用58步骤1:配置与分发应用59步骤2:分发应用组件 59分发顺序61自动分发62启用或禁用自动部署62动态分发64启用与禁用自动分发64自动分发展开目录格式的应用64卸载或重新分发被自动分发的应用656 配置WEBLOGIC服务器的WEB组件66- 2 -概述66HTTP参数66配置监听端口67W EB应用68Web应用与集群68指定缺省的Web应用68配置虚拟主机70虚拟主机与缺省Web应用70设置虚拟主机71W EB L OGIC服务器如何解析HTTP请求72设置HTTP访问日志73日志回旋(Log Rotation)73使用管理控制台设置HTTP访问日志 73普通日志格式74使用扩展日志格式75防止“POST拒绝服务”攻击80设置W EB L OGIC服务器的HTTP隧道 81配置HTTP隧道连接81建立客户端与WebLogic服务器之间的连接82用本地I/O提供静态文件服务(只适用于W INDOWS)827 代理对另一个HTTP服务器的请求 84概述84设置从服务器的代理84代理S ERVLET的分发描述符示例858 代理对WEBLOGIC集群的请求87概述87设置H TTP C LUSTER S ERVLET 87H TTP C LUSTER S ERVLET的分发描述符示例889 91配置W EB应用的安全性91设置对Web应用的授权91多Web应用、Cookies与身份验证92限制对Web应用资源的访问92在servlet中使用用户和角色94配置W EB应用的外部资源96在W EB应用中引用EJB S97配置会话管理98HTTP会话属性98- 3 -会话超时98配置会话Cookies 99使用长效cookies 99配置持久化会话100通用属性100使用基于内存的、单服务器的、非复制的持久存储 101使用基于文件的持久存储101使用基于数据库的持久存储 102使用URL重写103URL重写的编码指南104URL重写与无线访问协议(WAP) 104使用字符集与POST数据10410 配置APACHE-WEBLOGIC服务器插件106概述106平台支持107安装库107配置HTTPD.CONF文件109通过URL代理109通过MIME文件类型代理110A PACHE-W EB L OGIC S ERVER插件的参数110使用SSL协议112与SSL-A PACHE配置有关的问题 113H TTPD.CONF文件示例114配置文件示例115使用WebLogic集群的例子115不使用WebLogic集群的例子115配置虚拟主机的例子116分发A PACHE-W EB L OGIC S ERVER插件11611 配置MICROSOFT-IIS插件117概述117连接池以及保持活动状态117安装库118更新IIS设置使请求转给W EB L OGIC118创建IIS P ROXY.INI文件119文件扩展名方式的请求代理 122路径方式的请求代理123.ini文件示例123使用SSL 124将SERVLETS请求转交给W EB L OGIC服务器处理125- 4 -安装测试12612 配置NETSCAPE插件127概述127连接池和保持激活127插件的配置128步骤1:复制库128步骤2:设置obj.conf文件128步骤3:更改MIME.types文件132步骤4:分发与测试NSAPI插件 132参数132使用SSL协议135有关W EB L OGIC服务器集群失败转移的注意事项1360BJ.CONF文件示例(不使用W EB L OGIC集群的情况)136OBJ.CONF文件(使用W EB L OGIC集群的情况) 13813 安全管理141安全配置概述141改变系统口令143指定一个安全域143配置缓存域144配置LDAP安全域147配置Windows NT安全域151配置UNIX安全域 153配置RDBMS安全域154安装一个定制安全域155测试代用安全域与定制安全域156迁移安全域157定义用户157定义用户组159定义虚拟机的用户组159定义ACL 160配置SSL协议161获得私钥与数字证书162保存私钥与数字签名164定义可靠的证书管理机构165定义SSL协议的配置字段165配置双向验证167C ONFIGURING RMI OVER IIOP OVER SSL(TBD)168口令的保护168安装审计提供者170- 5 -安装连接过滤器170设置J AVA安全管理器171配置安全上下文传播17314 管理事务176事务管理概述176配置事务177事务的监控与日志记录178将服务器迁移到另一台机器中17815 管理JDBC连接180用管理控制台管理JDBC 180JDBC配置指南180JDBC配置概述181配置JDBC驱动程序182连接池187设置连接池187管理连接池188多池188创建多池188管理多池188数据源189创建数据源189数据源管理18916 管理JMS 191配置JMS 191配置连接工厂192配置模板193配置收信方主键193配置备份库194配置JMS服务器195配置收信方195配置会话池196配置连接使用者197监控JMS 197恢复失败的W EB L OGIC服务器198重启或替换WebLogic服务器198编程考虑19917 管理JNDI 200- 6 -将对象装载到JNDI树200查看JNDI树20018 管理WEBLOGIC J2EE连接器构架201W EB L OGIC J2EE连接器构架概述201安装资源适配器202配置与部署资源适配器202配置与部署资源适配器202查看已部署的资源适配器203卸载已部署的资源适配器203删除一个资源适配器204查看元素与属性205监控连接池与参数205编辑资源适配器分发描述符 20519 管理WEBLOGIC服务器许可证208安装W EB L OGIC许可证208更新许可证208A 使用WEBLOGIC JAVA工具210A PPLET A RCHIVER210语法211C ONVERSION211D ER2PEM211例子212DBPING212语法212D EPLOY212参数212Actions(从下表中选一个) 213其它参数213选项213例子213GET P ROPERTY 215语法215例子215LOG T O Z IP216语法216例子217M ULTICAST T EST217语法218例子218- 7 -MYIP219语法219例子219P EM2DER 219语法219例子220S CHEMA220语法220例子220SHOW L ICENSES221语法221SYSTEM221语法221例子221T3DBPING222语法222VERBOSE T O Z IP222语法223UNIX上的例子223NT上的例子223VERSION223语法223例子223WRITE L IENSE224语法224例子224B WEBLOGIC服务器的命令行接口参考226命令行接口简介226Before You Begin 226使用W EB L OGIC服务器命令227语法227参数227W EB L OGIC服务器管理命令参考228CONNECT 229HELP 229LICENSES 230LIST 230LOCK 231PING 231SERVERLOG 232SHUTDOWN 233THR EAD_DUMP 233- 8 -unlock 234VERSION 234M BEAN管理命令参考235CREATE命令 235DELETE命令 236GET命令237INVOKE命令 238SET命令239配置及管理连接池的命令240命令的名字240WEB服务器插件的参数241概述241W EB SERVER插件的一般参数241W EB SERVER插件的SSL参数245- 9 -1WebLogic服务器管理概述本章将介绍WebLogic服务器的管理工具,内容如下:✓域、管理服务器以及受管理的服务器✓启动管理控制台✓运行时对象与配置对象✓对日志消息的集中访问BEA WebLogic Server™包含了许多互相关联的资源。
【问题描述】
进入服务后,服务中出现“请按任意键继续”的提示,按了任意键后,服务退出。
【排查过程】
出现服务自动停止运行,可能原因有:
(1)相应数据库服务未启动;
(2)中间件weblogic有问题;
(3)已经有服务启动,之后启动的服务会自动退出。
1、检查oracle数据库服务,oracle服务已经启动
2、检查weblogic服务是否有问题,我们可以查看到重启服务时提示
有另一个服务正在运行。
3、查看任务管理器中,确实有CMD.EXE的进程,并且我们注意到,
同时有计划任务在运行,因此怀疑在任务计划中启动了服务。
查看计划任务,果然是已经启动了weblogic服务,
【解决方案】
因服务在计划任务中设置成了自动启动,因此不需要手动打开服务。
weblogic故障处理(BEA-000362)文章分类:Java编程由于weblogic所在磁盘空间不足,导致weblogic运行日志无法读写到本地磁盘,weblogic宕机,重新启动无效,抛出以下异常:####<2011-2-15 上午11时32分57秒 CST> <Critical> <WebLogicServer> <liaoning8dfbce1> <AdminServer> <Main Thread> <<WLSKernel>> <> <> <1297740777470> <BEA-000362> <Server failed. Reason:There are 1 nested errors:weblogic.diagnostics.lifecycle.DiagnosticComponentLifecycleException: weblogic.store.PersistentStoreException:[Store:280020]There was an error while reading from the log fileatweblogic.diagnostics.lifecycle.ArchiveLifecycleImpl.initialize(Archiv eLifecycleImpl.java:44)atweblogic.diagnostics.lifecycle.DiagnosticFoundationService.start(Diag nosticFoundationService.java:107)at weblogic.t3.srvr.SubsystemRequest.run(SubsystemRequest.java:64) at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)at weblogic.work.ExecuteThread.run(ExecuteThread.java:181)Caused by: weblogic.store.PersistentStoreException:[Store:280020]There was an error while reading from the log fileat weblogic.store.io.file.Heap.getNextRecoveryFile(Heap.java:794)at weblogic.store.io.file.Heap.recover(Heap.java:706)at weblogic.store.io.file.FileStoreIO.recover(FileStoreIO.java:585) at weblogic.store.io.file.FileStoreIO.open(FileStoreIO.java:94)atweblogic.store.internal.PersistentStoreImpl.open(PersistentStoreImpl. java:350)atweblogic.store.PersistentStoreManager.createFileStore(PersistentStore Manager.java:202)atweblogic.diagnostics.archive.DiagnosticStoreRepository.getStore(Diagn osticStoreRepository.java:61)atweblogic.diagnostics.lifecycle.ArchiveLifecycleImpl.initialize(ArchiveLifecycleImpl.java:42)... 4 moreCaused by: java.io.IOException: Error reading from file, 已到文件结尾。
Weblogic宕机事件定位分析段常飞Weblogic宕机,是很多运维人员的噩梦,时不时的系统挂了,而且总是找不到源头,开发说程序没有大的变动,一直很平稳呀,客户反馈,系统硬件配置已经相当高了,足以支持系统运行呀。
又把问题抛给了运维人员,必须得找出原因了。
可是怎么下手呢下面我以郑州为例来演示如何定位程序问题。
郑州市、宕机事件日志错误类型:<2016-5-9 上午11时22分13秒CST> <Error> <WebLogicServer> <BEA-000337><[STUCK] ExecuteThread: '1' for queue: ' (self-tuning)' has been busy for "3,708" seconds working on the request "Workmanager: default, Version: 0, Scheduled=true, Started=true, Started time: 3708125 ms[Cookie:JSESSIONID=yGn2XvYC6yV3nDLJHCQFyxVQLSBcpL1WmRxkhQl78nyZTpq13J8v!-8; BIGipServerPool-zhongxinduan=", which is more than the configured time (StuckThreadMaxTime) of "3,600" seconds. Stack trace:>> INFO >> Timer-3 >> >> 检查内存更新...<2016-5-9 上午11时24分21秒CST> <Warning> <Socket> <BEA-000449> <Closing socket as no data read from it on during the configured idle timeout of 5 secs><2016-5-9 上午11时26分28秒CST> <Warning> <Socket> <BEA-000449> <Closing socket as no data read from it on during the configured idle timeout of 5 secs><2016-5-9 上午11时26分28秒CST> <Warning> <Socket> <BEA-000449> <Closing socket as nodata read from it on during the configured idle timeout of 5 secs>分析原因:weblogic的线程阻塞,进而导致批量等待阻塞,最纵引起weblogic挂起现象Weblogic 线程处理的默认时间为3600s,StuckThreadMaxTime:3600。
Weblogic 部署在windows和linux的问题总结1Weblogic 11在windows下部署SSH项目问题1.1报错:web.xml节点配置有注释1.1.1报错原因:这个web.xml里面的<param-value> 节点有注释多了这个<!--classpath*:/sso/*.xml -->注释<context-param><param-name>contextConfigLocation</param-name><param-value>classpath:/applicationContext.xml<!-- classpath*:/sso/*.xml --></param-value></context-param>1.1.2报错现象:正在加载ADS Framework 初始化配置,请稍候......<2012-7-10 下午12时06分47秒CST> <Warning> <HTTP> <BEA-101162> <User defined listener com.augurit.ads.fw.listener.AdsFrameworkInitCheckListener failed: ng.IllegalStateException: applicaitonContext属性未注入, 请在applicationContext.xml中定义SpringContextHolder..ng.IllegalStateException: applicaitonContext属性未注入, 请在applicationContext.xml中定义SpringContextHolder.at org.springside.modules.utils.AssertUtils.state(AssertUtils.java:426)atorg.springside.modules.utils.spring.SpringContextHolder.assertContextInjected(SpringContextHol der.java:87)atorg.springside.modules.utils.spring.SpringContextHolder.getBean(SpringContextHolder.java:48) atcom.augurit.ads.fw.listener.AdsFrameworkInitCheckListener.checkSysConfig(AdsFrameworkInitCheckListener.java:35)atcom.augurit.ads.fw.listener.AdsFrameworkInitCheckListener.contextInitialized(AdsFrameworkIni tCheckListener.java:27)Truncated. see log file for complete stacktrace><2012-7-10 下午12时06分47秒CST> <Error> <Deployer> <BEA-149231> <Unable to set the activation state to true for the application '_appsdir_rmls_dir'.weblogic.application.ModuleException:at weblogic.servlet.internal.WebAppModule.startContexts(WebAppModule.java:1510)at weblogic.servlet.internal.WebAppModule.start(WebAppModule.java:482)atweblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:425) at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:52) at weblogic.application.internal.flow.ModuleStateDriver.start(ModuleStateDriver.java:119) Truncated. see log file for complete stacktraceCaused By: ng.IllegalStateException: applicaitonContext属性未注入, 请在applicationContext.xml中定义SpringContextHolder.at org.springside.modules.utils.AssertUtils.state(AssertUtils.java:426)atorg.springside.modules.utils.spring.SpringContextHolder.assertContextInjected(SpringContextHol der.java:87)atorg.springside.modules.utils.spring.SpringContextHolder.getBean(SpringContextHolder.java:48) atcom.augurit.ads.fw.listener.AdsFrameworkInitCheckListener.checkSysConfig(AdsFrameworkInitC heckListener.java:35)atcom.augurit.ads.fw.listener.AdsFrameworkInitCheckListener.contextInitialized(AdsFrameworkIni tCheckListener.java:27)Truncated. see log file for complete stacktrace>1.1.3解决办法:这个问题是因为加载不了applicaitonContext.xml文件:检查web.xml文件,网上资料说部署在weblogic的项目不支持通配符的写法的,引入多少个配置文件就要写多少个。
Caused By: com.rsa.jsafe.JSAFE_PaddingException: Could not perform unpadding: invalid pad byte.有时候,复制config.xml到其它一个WebLogic Domain下修改后启动(通常用于手动复制集群节点的操作), 或者Domain中的文件遭到了部分损坏, 那么启动过程中, 会在出现Security错误后,服务器进入强制退出状态, 一份可能的log 如下所示:<2011-6-25 下午09时57分30秒 CST> <Critical> <WebLogicServer> <BEA-000386> <Server subsystem failed.Reason: ng.AssertionError:ng.reflect.InvocationTargetExceptionng.AssertionError:ng.reflect.InvocationTargetExceptionatweblogic.descriptor.DescriptorManager$SecurityServiceImpl$Secu rityProxy._invokeServiceMethod(DescriptorManager.java:175)atweblogic.descriptor.DescriptorManager$SecurityServiceImpl$Secu rityProxy.decrypt(DescriptorManager.java:192)atweblogic.descriptor.DescriptorManager$SecurityServiceImpl.decr ypt(DescriptorManager.java:114)atweblogic.descriptor.internal.AbstractDescriptorBean._decrypt(A bstractDescriptorBean.java:1092)atweblogic.management.configuration.SecurityConfigurationMBeanIm pl.getCredential(SecurityConfigurationMBeanImpl.java:736)Truncated. see log file for complete stacktraceCaused By: ng.reflect.InvocationTargetExceptionat sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)atsun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccess orImpl.java:39)atsun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMeth odAccessorImpl.java:25)at ng.reflect.Method.invoke(Method.java:597) atweblogic.descriptor.DescriptorManager$SecurityServiceImpl$Secu rityProxy._invokeServiceMethod(DescriptorManager.java:173)Truncated. see log file for complete stacktrace Caused By:weblogic.security.internal.encryption.EncryptionServiceExcepti on: com.rsa.jsafe.JSAFE_PaddingException: Could not perform unpadding: invalid pad byte. atweblogic.security.internal.encryption.JSafeEncryptionServiceIm pl.decryptBytes(JSafeEncryptionServiceImpl.java:136)atweblogic.security.internal.encryption.JSafeEncryptionServiceIm pl.decryptString(JSafeEncryptionServiceImpl.java:184)atweblogic.security.internal.encryption.ClearOrEncryptedService. decrypt(ClearOrEncryptedService.java:96)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)atsun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccess orImpl.java:39)Truncated. see log file for complete stacktrace Caused By: com.rsa.jsafe.JSAFE_PaddingException: Could not perform unpadding: invalid pad byte.at com.rsa.jsafe.c.a(Unknown Source)atcom.rsa.jsafe.JSAFE_SymmetricCipher.decryptFinal(Unknown Source)atweblogic.security.internal.encryption.JSafeEncryptionServiceIm pl.decryptBytes(JSafeEncryptionServiceImpl.java:124)atweblogic.security.internal.encryption.JSafeEncryptionServiceIm pl.decryptString(JSafeEncryptionServiceImpl.java:184)atweblogic.security.internal.encryption.ClearOrEncryptedService. decrypt(ClearOrEncryptedService.java:96)Truncated. see log file for complete stacktrace><2011-6-25 下午09时57分30秒 CST> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to FAILED><2011-6-25 下午09时57分30秒 CST> <Error> <WebLogicServer><BEA-000383> <A critical service failed. The server will shut itself down><2011-6-25 下午09时57分30秒 CST> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to FORCE_SHUTTING_DOWN>Log中粗体的的部分显示了出错的真正原因是在JSAFE包中进行解密(decrypt)时报错, 而调用此功能的是WebLogic安全模块的解密字符串方法. JSafe是rsa 公司出品的一个收费的加密解密安全相关的软件包. 后台细节不必深究, 我们只需要关注解密字符串的部分即可. 首先需要指出的是密码加密后的内容只和文件 $DOMAIN_HOME/security/SerializedSystemIni.dat相关.解决方法1: 修改config.xml中的加密内容.首先, 必须找一份能正常运行的Domain文件, 然后使用如何破解WebLogic管理密码?中提到的解密工具, 来得到原始密码.需要解密的config.xml中的内容如下粗体部分所示:<default-realm>myrealm</default-realm>(1)<credential-encrypted>{AES}QIo54gGfn2Y+y62DqTCE7Q01ll5DF48PbAI1gBX22 wR8sWEuVlvdHXSc9kDAfknTJGfo1n1bO/RxkYMogv4XNZ4bFTmbAe1zYfpsBtSFbzI97 Y2HE3lwd5c9dv9gDISU</credential-encrypted><node-manager-username>weblogic</node-manager-username>(2)<node-manager-password-encrypted>{AES}stQ8+dVzw1jEDpF4xj+ub1m460793i jKqI0YBhpkZNE=</node-manager-password-encrypted>….<embedded-ldap><name>1034</name>(3)<credential-encrypted>{AES}OYLOL/6/sVdiwG/rkqTj8U2TdFUXIa9PgZRz WKlJqju1cVvUFKcWzqir1N4qtQHy</credential-encrypted></embedded-ldap>(1) 解密后的内容是WebLogic启动密码, (2), (3) 则为数字(似乎是随机的内容).然后需要动用WebLogic自带的明文加密工具weblogic.security.Encrypt, 在新的Domain中得出这几个密码的新内容并替换到正确的位置中. 相关文档请访问/docs/cd/E11035_01/wls100/admin_ref/utils.h tml#wp1209592.如果boot.properties有类似问题, 使用相同方法处理后即可.解决方法2: 替换新Domain中的SerializedSystemIni.dat为能正常运行的Domain中的相同文件, 此方法步骤最简单(不推荐, 可能有安全隐患).恢复忘记了的WebLogic密码分类:weblogic 2010-11-24 10:33 72人阅读评论(0) 收藏举报原文地址:/alfredxiao/archive/2010/09/16/weblogic_lost_password.html忘记或者丢失WebLogic管理员密码这样的事虽然不常碰到,但是也偶尔会有,如果碰着是你的生产环境或者其他重要环境,还是挺头疼的。
Weblogic常见报错以及解决⽅法[转载]Weblogic常见报错以及解决⽅法[转载]2020-09-13 09:55:22 4109 收藏 11⽂章标签:前⾔:Oracle WebLogic中间件在⽹站部署过程中经常会使⽤到。
该产品系列的核⼼是Oracle WebLogic服务器,它是⼀个功能强⼤和可扩展的Java EE服务器。
今天整理了在运维过程中经常会遇到的各种报错以及解决⽅法,纯技术⼲货,希望能够对正在学习weblogic过程中的您提供帮助。
weblogic有两种部署⽅式,单点模式和集群模式,单点模式直接创建⼀个域,在控制台进⾏程序部署即可;⽽集群模式分为admin(管理)节点和Managed(被管理)节点,管理节点通过控制台对被管节点进⾏管理,程序部署在被管节点的集群上。
不论是单点模式,还是集群模式,常见的报错基本⼀致。
基本概念Domain :域是作为单元进⾏管理的⼀组相关的 WebLogic Server 资源。
⼀个域包含⼀个或多个 WebLogic Server 实例,这些实例可以是集群实例、⾮群集实例,或者是集群与⾮群集实例的组合。
⼀个域可以包含多个集群。
域还包含部署在域中的应⽤程序组件、此域中的这些应⽤程序组件和服务器实例所需的资源和服务。
应⽤程序和服务器实例使⽤的资源和服务⽰例包括计算机定义、可选⽹络通道、连接器和启动类。
Domain 中包含⼀个特殊的 WebLogic 服务器实例,叫做 Administration Server,这是我们配置管理Domain中所有资源的核⼼。
通常,我们称加⼊Domain中的其他实例为 Managed Server,所有的Web应⽤、EJB、Web Services和其他资源都部署在这些服务器上。
Administration Server :管理服务器是控制整个域配置的中⼼操作节点,管理服务器维护着整个域的配置并将配置分配到每个被管理服务器 Managed Server 中。
WebLogic问题排除概览孟和技术咨询顾问大中华区渠道及联盟部以下内容旨在概述产品的总体发展方向。
此信息仅供参考,不可纳入任何合同。
此信息不承诺提供任何资料、代码或功能,并且不应该作为制定购买决策的依据。
此处所述有关Oracle 产品的任何特性或功能的开发、发布以及相应的日程安排均由Oracle 自行决定。
•Guardian•JVM层面的问题诊断•Java应用程序及服务器层面问题诊断•Guardian•JVM层面的问题诊断•Java应用程序及服务器层面问题诊断通过Guardian 能做什么能做什么??•Oracle Guardian :•就像是WLS 的杀毒软件或者病毒扫描器•检查域的常见配置问题和运行时问题,并针对性的提供建议的解决方案•包括图形化界面和命令行方式•也可以监控运行于WLS 之上的其他Oracle 产品•有Oracle 支持账户的用户可以免费使用•可以使售后服务Case 自动创建使用Guardian•在如下的场景可以使用Guardian对域进行评估:•域创建并配置之后•作为开发环节之一,在部署到生产系统之前•在打过WLS补丁之后•在系统中引入或者对其它第三方软件进行升级后•生产系统可以进行周期性的评估•在压力测试中,对域进行评估Guardian工作架构安装Guardian代理•WLS安装会自带Guardian代理(以war包的形式)•可以手动将代理部署到所有服务器,或者使用管理控制台的快捷方式部署•当Oracle支持部门发布新版本代理后,对其进行更新或重新部署收集数据•在评估过程中,Guardian代理会收集如下类型数据:•JMX(包括配置和运行时数据)•应用部署描述符设置•JVM系统属性•JRockit JVM运行时的统计数据Guardian客户端安装•从Oracle支持站点下载Guardian客户端的安装介质•需要用到JVM 1.5 或更新的版本•启动Guardian,并且选择workspace位置,该位置将存储用户偏好和评估数据Guardian用户界面激活Guardian对域的管理•激活域的过程:•在Workspace中注册域信息•利用代理生成初始化的域Inventory创建域Inventory•域的Inventory是:•域配置快照(包括服务器、应用、数据源等)•在每次域评估之前自动生成•也可以手动生成,用来开Case特征模式及特征包Signature Patterns & Signature Bundles•特征模式(Signature Patterns):•域评估数据的某种潜在问题模式的标识•由Oracle支持部门创建•也有不同的严重层次(Info,Warning,Critical等等)•特征包(Signature Bundles )•带有相似特征的Signature Patterns的集合•可以作为一个单元被评估更新特征库•通过如下方式更新Guardian的最新特性和特征模式:•运行Update Wizard•从支持站点下载文件,手动安装对域进行评估1.选择要评估的域2.选择要测试的特征模式评估结果生成SR(Support Request)•可以用Guardian生成文件附在支持Case中•生成的car文件包括:•所选择的特征模式的详细信息•域Inventory和评估结果•域配置文件(可选)•服务器的日志文件(可选)议程•Guardian•JVM层面的问题诊断•Java应用程序及服务器层面问题诊断Out of Memory•当JVM没有足够的内存执行任务时,会触发ng.OutOfMemoryError•当没有更多内存可以分配时•或空闲的内存有太多碎片,无法利用时•可能不足的内存类型有:•Native (物理内存)•Heap (堆内存)•特定Java 内存代(例如,permanet)对Out of Memory的响应 的响应• JVM会发送error到标准输出流和错误输出流 • WLS会将应用程序没有处理的Java异常和错误都输出 到服务器日志 • Out-of-Memory和类似的系统错误不应该由应用程序直 接处理 • 如果应用程序发生错误,会给客户端返回错误信息( 例如HTTP 500) • 如果WLS子系统发生错误,则服务器处于不稳定状态 ,需要重启内存泄漏• 内存泄漏:• 最常见的引发Out-of-Memory错误的原因 • 在Java中,内存泄漏并不常发生(相对传统语言) • 内存泄漏的原因是当对象不再被需要时,没有显式声明,进而 没有被垃圾回收处理• 常见的场景有:• • • • 太大的缓存造成内存泄漏 太多使用HTTP会话,导致内存泄漏 对数据库操作结束时,没有正常关闭数据集及数据连接 动态类加载问题JVM错误日志 错误日志• 该日志文件通常包括如下类型的信息:• • • • • • 操作系统错误消息 JVM版本 硬件和操作系统参数 系统环境变量 堆和垃圾回收汇总 线程汇总JVM工具类型 工具类型• 大多数的JVM诊断工具可以归为如下两大类:• 代理 • 在JVM里面运行 • 可以通过JVM命令行属性使能或配置 • 周期性触发或在特定情况下触发 • 客户端工具 • 与JVM通信并提取数据的外部进程 • 可以使用图形化界面或命令行接口JRockit Flight Recorder概念 概念• JRockit R28 版本的新添特性 New Data • JRockit JVM 中的“循环缓冲” 存储诊断 数据 Flight Recording• 时刻缓冲 • 新的数据进入缓冲,旧的数据溢出DCC1• 与JRMC的预集成• 代替原来的JRMC Runtime Analyzer 和 Latency AnalyzerTime• 接近零开销• 收集的数据本身就是JVM使用的数据• 数据除了来自于JVM的事件,也可以是 其他事件提供者• WebLogic Server (WLDF) • Fusion Middleware (DMS)Old DataSlide 25 DCC1 I fixed the color on thisDavid Cabelus, 2010-5-5JRockit Flight Recorder使用场景 使用场景• 适合使用JRockit Flight Recorder的场景?• • • • • 提供正在运行的生成系统的诊断信息 捕获导致故障问题的最新活动信息进行分析 捕获各个层次的事件JVM, WLS, DMS, … 可以使用JRMC GUI进行在线和离线分析 JRockit dumps 捕获crash相关信息进行辅助分析• 不适合使用JRockit Flight Recorder的场景?• 大事件负载和大事件规模 • 长时间事件分析 • 不作为Debug日志或服务器日志的代替品WebLogic诊断框架与 诊断框架与JFR的集成 诊断框架与 的集成• WLS事件可以传播到JFR– 可以把WLS数据在JFR中进 行统一的展示,进行黑盒和 性能分析 – 来自所有数据源的事件(JVM, WLDF, DMS) 可以进行统一 分析WLDFEvents触发JFR 写缓冲 触发• JFR文件与WLDF Watch rule/diagnostic image的集 成– 可以基于Watch rule捕获事件 – RADAR - Diagnostic image 可以触发JFR文件生成; JFR 文件包含在 WLDF diagnostic image中 – 包含所有事件生成器生成的 全部的JFR数据WLDF中捕获JFR 在Diag Image中捕获 中捕获JRMC图形界面的 图形界面的Flight Recorder数据 图形界面的 数据Java Stack Trace• 列出和描述程序中特定语句的方法调用序列 • 清晰的给出程序中各个层次的调用关系 • 包括源代码的行数,除非在编译时显式的删除了这些 行信息Java Thread Dump•Thread Dump提供程序中正在运行的线程的快照,包括:•当前状态(运行、阻塞、等待……)•当前的Stack TraceThread Dump 信号量•触发WLS实例的Thread Dump•通过管理控制台或者WLST脚本•在UNIX系统,可以通过发送QUIT信号量触发•在Windows系统,可以通过发送Break信号量触发•JVM通过其他工具管理控制台对JVM的监控配置WLS低内存检测防患于未然•服务器可以根据某些特定的阈值来识别此类情况,并将服务器的状态标记为WARNING•包括的阈值有:•Low Memory GCThreshold(判断内存低的GC阈值)•Low Memory Granularity Level(判断内存低的粒度级别)•Low Memory Sample Size(判断内存低的样例大小)•Low Memory Time Interval(判断内存低的时间间隔)JVM Crash•虽然JVM非常稳定,但极少数情况JVM本身也会出错,进而导致服务器Crash•根据JVM和出差类型的不同,会生成日志或core file •Core File:•虚拟机出错时,进程内存的二进制数据快照•由Native Code出错而触发(例如JVM、Native WLS库,Native数据库驱动等)•可使用操作系统工具查看•可根据操作系统设置进行禁用或跟踪分析JVM Crash行为•大多数的JVM在Crash时,支持额外选项:•暂停执行,进行最后的thread dump,或使用操作系统的调试工具•执行自定义脚本议程•Guardian•JVM层面的问题诊断•Java应用程序及服务器层面问题诊断Java异常处理概念•异常会给出JVM、WLS或应用程序的问题所在•Checked Exception是可恢复的问题,应该被捕获并且在应用程序代码中进行处理•Unchecked Exception或者error:•是底层系统问题•通常不需要应用程序处理•通常WLS会捕获该类问题,并作为error输出到日志客户端类库错误•远程EJB/JMS客户端通常需要在类路径中引用WLS客户端Jar文件•远程EJB客户端通常需要访问到生成的EJB客户端类或stubs(这些内容通常被打包到jar文件中)•客户端找不到需要的WLS客户端jar包,或者找到老版本的jar包,或者EJB客户端jar包找不到都会引起运行时错误使用jarbuilder为客户端应用生成wlfullclient.jar •解决办法:•使用jarbuilder 生成wlfullclient.jar•具体操作:•cd C:/beahome/wlserver_10.3/server/lib•java –jar wljarbuilder.jar // creates wlfullclient.jar which contains allthe classes from weblogic.jar plus some of the exploded modules.Null Pointer Errors•这类错误是因为程序中预期访问到一个有值的变量,但是该变量却并没有被赋值造成的•常见的原因可能是:•应用程序设计和实现有问题•应用的某些使用场景没有被很好的测试•配置文件中缺少参数•程序中没写错误处理逻辑•这类错误通常需要使用调试工具查找具体出错的代码Stack Overflow Errors•递归做为一种算法在程序设计中广泛应用,指函数在运行过程中直接或间接调用自身而产生的重入现象•Stack Overflow 这类错误通常是因为:•一些递归调用太深,达到了JVM调用堆栈的最大值•递归调用的程序实现本身有问题•周期性的进行thread dump来找到有问题的递归代码Too Many Open Files Errors•JVM需要操作系统的文件描述符对象来:•打开文件•建立TCP Socket连接•大多操作系统会限制单线程可以使用的描述符的数量•如果描述符打开的数量达到限制值,则JVM会触发errorClass Not Found Errors•这类错误通常是由于:•JVM找不到某个被创建或被调用对象的类定义文件•类定义在编译时是有的,但是运行时却找不到Class Cast Errors•这类错误当程序调用某类型的对象,却得到的不是期望的类型时发生•通常,由下面的原因造成:•应用程序设计和实现有问题•应用的某些使用场景没有被很好的测试•可能是JVM中存在多个相同类的不同版本•自定义的类加载器配置Classpath概览•Java classpath是JVM查找类和包的路径的静态列表,包括:•文件夹•Jar包•可以如下配置classpath:•使用JVM的-classpath属性•通过环境变量:CLASSPATHWebLogic启动脚本概览Manifest文件与Classpath•Jar文件通常会包含META-INF/manifest.mf文件•可以在Jar的manifest中添加更多类库到classpath •在启动时,WLS会输出这些manifest内容域的类库•WLS支持将域的lib文件夹中的Jar文件添加到系统classpath•该方式将对域中所有服务器有效Java Class Loader•系统的classpath的修改必须重启后才会生效•Class Loader•表示类定义所在路径•以层次结构组织,即父子方式•由WLS动态创建和销毁,以实现热部署•JVM采用托管模式进行类加载。