WebLogic问题排除概览
weblogic常见错误

这个错误信息意思是:名称为1234的服务器没有找到,在配置中只存在以下服务:myserver。
选择“Window -> Preferences”菜单,打开首选项对话框。展开 MyEclipse 下的 Application Servers 节点,点击 WebLogic 9,将Execution server name的属性改为:myserver。注意:如果在配置域的时候没有配置服务器名称,那么服务器名称默认为:AdminServer。
输入用户名和密码,是我们在第4步配置的用户名:weblogic,密码:weblogic。
三、在MyEclipse中配置Weblogic的开发环境。
1、Window(窗口)---> Preferences(首选项)---> MyEclipse ---> Application Servers(应用服务器)---> WebLogic ---> WebLogic 9.X ---> 选中Enable单选按钮,启用WebLogic服务器。
9、测试一下是否配置成功。开始菜单 ---> 程序 ---> BEA Products(BEA产品)---> User Projects ---> mydomain(是我们在第7步取的域名) ---> Start Admin Server for Weblogic Server Domain(启动WebLogic服务器)。当看到输出:Server started in RUNNING mode(服务器正在运行)的信息后,表示配置正确,服务器已经启动成功。停止服务,可以这样:开始菜单 ---> 程序 ---> BEA Products(BEA产品)---> User Projects ---> mydomain(是我们在第7步取的域名) ---> Stop Admin Server。
Weblogic不能正常启动的原因

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宕机事件定位分析段常飞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。
weblogic日常维护总结与故障诊断

中间件故障诊断总结一、步骤: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集群多播配置故障排除

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位weblogic安装部署以及常见问题解决

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中间件运维经验汇总目录关于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处理进程内存溢出报错,导致服务器宕机。
weblogic中间件常见问题

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包。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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采用托管模式进行类加载。