WAS 调整类加载顺序

给自己备忘下该问题,解决方法、was类加载机制

1. java的类加载器:


JAVA类加载器分为3层——引导加载器、扩展加载器、应用程序加载器,类加载遵循"父委托模式".

引导加载器(Bootstrap): 加载<JAVA_HOME>/jre/lib 下的vm.jar,core.jar等核心

扩展加载器(Extensions):   加载<JAVA_HOME>/jre/lib/ext  或者通过java.ext.dirs 这个系统属性指定的路径下的代码

应用程序加载器(Application):  加载java.class.path下的代码(就是我们程序及程序依赖的第三方类)

2. websphere类加载模型



JVM ClassLoader层(包含上述的JAVA 3个层次的类加载器)——>WebSphere Extensions Classloader——>WebSphere "server" Class loader——>Application Classloader(包含有Application Module Classloader和Web Module ClassLoader.这2个类加载器上可以设置类加载顺序)

3.默认类加载顺序(父类优先)

Websphere采用的是父类优先的类加载顺序。通过websphere控制台——故障诊断——类装入器查看器 我们可以看到一个应用在websphere上部署完成启动后真正形成的类加载层次:



如图,类加载层次是:

JDK扩展装入器(也就是java类加载器中的扩展加载器(Extensions))——应用程序装入器应用程序加载器(Application)——OSGI(was6.1新特性)装入、引导程序、类保护器——组合类装入器——组合类装入器

4.改变类加载顺序(应用程序优先)

这里是关键。我一直认为改变WAS中的类加载顺序,调整的是WAS扩展出来的那些类加载层次:也就是上面的“OSGI(was6.1新特性)装入、引导程序、类保护器——组合类装入器——组合类装入器”顺序的改变。

实际情况是:



可以看到,事实上的情况是,改变了类加载顺序之后,最低级的2个类加载器竟然排到了扩展加载器(Extensions)之上,仅在引导加载器(Bootstrap)之后,也就是说:

“应用程序优先”的类加载顺序的结果是:

引导加载器(Bootstrap)——原来最低级的web和module加载器——扩展加载器(Extensions)——应用程序加载器(Application)——was扩展classloader、WAS应用程序类加载器

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 如果您想要调整中间件WebSphere Application Server的字符编码,可以按照以下步骤操作: 1. 登录WebSphere管理控制台。 2. 选择“应用程序服务器”,然后选择您想要更改字符编码的服务器。 3. 在“服务器信息”部分下,单击“进程定义”。 4. 在“进程定义”页面上,单击“Java虚拟机”。 5. 在“自定义属性”下,单击“新建”。 6. 在“名称”字段中输入“client.encoding.override”。 7. 在“值”字段中输入您想要使用的字符编码,例如“UTF-8”。 8. 单击“应用”以保存更改。 9. 重新启动WebSphere应用程序服务器以使更改生效。 这些步骤应该能够帮助您调整中间件WebSphere Application Server的字符编码。 ### 回答2: 中间件(Middleware)是连接不同应用程序之间的软件,用于处理请求和响应的一系列操作。在调整中间件 WAS(Web Application Server,网络应用服务器)的字符编码时,需要按照以下步骤进行: 首先,了解当前中间件 WAS的字符编码设置。可以通过查看相关配置文件或者中间件的管理界面来确认当前的字符编码设置情况。 然后,确定需要调整的字符编码。根据项目需求和应用程序的特性,选择合适的字符编码。常见的字符编码包括UTF-8、GBK、ISO-8859-1等。UTF-8是一种通用的字符编码,支持全球范围内的字符和符号,因此在多语言环境下使用广泛。 接下来,进行字符编码的调整操作。具体的调整步骤可能会因中间件的不同而有所差异,但一般包括以下几个方面: 1. 找到中间件的字符编码配置文件。这个配置文件通常包含了设置字符编码的相关参数。 2. 打开配置文件,找到字符编码的设置项。这个设置项可能会以"编码"、"character set"或者"charset"等关键词命名。 3. 将当前的字符编码修改为目标编码。根据所选的字符编码,将配置文件中对应的参数值进行修改。 4. 保存修改后的配置文件,并重新启动中间件 WAS。在一些中间件中,修改字符编码后需要重新启动才能生效。 最后,进行测试并验证调整结果。通过向应用程序发送请求,并查看响应结果中的字符编码信息,确认调整是否成功。可以使用浏览器开发者工具或者网络抓包工具来查看字符编码信息。 调整中间件 WAS的字符编码需要根据具体情况进行操作,上述步骤仅为一般性指导。建议参考中间件的官方文档或者寻求相关技术支持,以确保正确设置字符编码。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值