现场有WAS5、6,均安装在AIX下,且都已经设置PJA,在WAS5上报表正常,但是在WAS6下报表会报错,两个应用下的配置均相同。

反馈的报错日志:

[11-4-25 14:20:42:758 GMT+08:00] 0000002a WebApp [Servlet Error]-[com_icss_rqtool_app_province_servlet_AppReportServlet]: java.lang.AbstractMethodError: sun/java2d/SunGraphicsEnvironment.createFontConfiguration()Lsun/awt/FontConfiguration;

问题解决方案:

错误原因分析:

根据客户反馈的信息,初步判断,这个可能是因为字体原因引起的错误,并且客户反馈这两个应用服务器的软件配置均相同,那么差别可能在于WAS5使用JDK1.4而WAS6使用JDK1.5,基于上面两点原因,我们有理由怀疑问题出现在JDK的版本差别上。

经过与之前接手该项目的售后确认,该客户使用了润乾的PJA方案,并且使用的PJA版本为2.5。

解决方案:

在网上查找了一些类似错误信息,终于有点眉目了,在国外的一个论坛中找到了一些原因解释,如下:

目前已经使用的渲染图像的PJA工具包的最新版本(2.5)是针对JDK 1.4.2版本的开源插件,没有问题。JDK 由1.4.x versions升级至JDK 1.5版本,由于升级,原有JDK1.4方法不能再渲染图像,现在生成以下AbstractMethodError消息;“JDK
1.5中现在有一个概念“字体配置“(而不是只是“在JDK 1.4.x的字体属性“)在java.awt.SunGraphicsEnvironment,他们已经增加了两个新的抽象方法重写。该版PJA实现了在PJAGraphicsEnvironment后一种方法。现在的JDK
1.5已经成为成为一个内部类的PropertiesHandler这本身就是一个新的静态内部类FontProperties
FontConfiguration类。

综上所述,也就是JDK的升级导致原有的类方法改变了,但是与JDK1.4版本对应的PJA2.5
PJAGraphicsEnvironment方法需要createFontConfiguration实现,所以找到相应与JDK1.5对应的开源PJA版本即可。

在网上下载最新的PJA包,给客户更新,经过测试,该问题解决。

解决PJA错误的更多相关文章

  1. 解决ORA-00020错误

    解决ORA-00020错误 分类: Oracle2009-05-13 17:26 3398人阅读 评论(0) 收藏 举报 数据库sessionoraclesql服务器object 项目上使用的Orac ...

  2. 如何解决Ora-04031错误(转)

    诊断并解决ORA-04031 错误 当我们在共享池中试图分配大片的连续内存失败的时候,Oracle首先清除池中当前没使用的所有对象,使空闲内存块合并.如果仍然没有足够大单个的大块内存满足请求,就会产生 ...

  3. 解决:错误的语法:”XXXX“必须是批处理中仅有的语句

    原文:解决:错误的语法:”XXXX“必须是批处理中仅有的语句   SQL Server 数据库提示“错误的语法:”XXXX“必须是批处理中仅有的语句”报错的原因分析 解析:批处理必须以 CREATE ...

  4. Maven解决NoPluginFoundForPrefixException错误

    Maven解决NoPluginFoundForPrefixException错误方法 错误出现的原因 你指的是一个不存在的插件,如由于错误的前缀. 您使用的是第三方的Maven插件没有部署到中央Mav ...

  5. Android Studio 错误: 非法字符: '\ufeff' 解决方式|错误: 须要class, interface或enum

    在导入eclipse项目到Android Studio出现这种错误, 非法字符: '\ufeff' 解决方式|错误: 须要class, interface或enum.查阅后了解到Eclipse能够智能 ...

  6. 诊断并解决 ORA-4030 错误 (Doc ID 1548826.1)

    适用于: Oracle Database - Enterprise Edition - 版本号 8.1.7.4 和更高版本号 本文档所含信息适用于全部平台 用途 怎样诊断 ORA-4030 错误 排错 ...

  7. php - 如何解决CURL错误( 7 ): 无法连接到主机?

    php - 如何解决CURL错误( 7 ): 无法连接到主机? 1. 问题描述 调用第三方接口,本地调用一切ok,线上调用失败! 本地通过curLRequest()方法调用第三方接口时,curl_er ...

  8. 解决bind错误 bind: Address already in use

    关于bind错误的处理: bind: Address already in use 原因: 操作系统没有立即释放端口 解决一: 等待一段时间运行网络程序即可 解决二:通过setsockopt进行设置, ...

  9. magento -- 解决magento错误:ERROR: Base table or view already exists: 1050 Table ... already exists

    相信有更新magento或者,备份转移magento站点的时候可能会碰到类似这样的错误提示: Base table or view already exists: 1050 Table ... alr ...

随机推荐

  1. POJ 1082

    #include <iostream> using namespace std; int main() { //freopen("acm.acm","r&qu ...

  2. Vue-Router路由Vue-CLI脚手架和模块化开发 之 使用props替代路由对象的方式获取参数

    在上一章博文中使用路由对象$route获取参数时,组件和路由对象耦合,在这篇博文中就可以使用props来进行解耦: 1.在组件中使用props选项定义数据,接收参数: 2.在路由中,使用props选项 ...

  3. 原生JavaScript的DOM操作方法总结

    什么是DOM? DOM即文档对象模型,Document Object Model.  是HTML和XML文档的编程接口.它提供了对文档的结构化的表述,并定义了一种方式可以使从程序中对该结构进行访问,从 ...

  4. Java学习之路(十):异常

    ---恢复内容开始--- 异常的概述和分类 Throwable类是Java语言中所有错误或者异常的超类(也就是说,Java中所有的报错都是继承与Throwable的),也只有当对象是此类或者此类的子类 ...

  5. 假如想要建设一个能承受500万PV/每天的网站,服务器每秒要处理多少个请求才能应对?

    假如想要建设一个能承受500万PV/每天的网站,服务器每秒要处理多少个请求才能应对?如何计算? 1.PV是什么:PV是page view的简写.PV是指页面的访问次数,每打开或刷新一次页面,就算做一个 ...

  6. .Net Core使用 MiniProfiler 进行性能分析(转)

    转自:http://www.cnblogs.com/ideacore/p/9505425.html 官方文档: https://miniprofiler.com/dotnet/AspDotNetCor ...

  7. 关于js的 for...in 你了解多少

    For...In 声明用于对数组或者对象的属性进行循环/迭代操作. 1. 求value: 对于数组 ,迭代出来的是数组元素,对于对象,迭代出来的是对象的属性值: 1)数组示例 var x var my ...

  8. 修改 /etc/pam.d/login, linux 本地账号密码无法登陆,一直返回 登陆的login界面

    今天我在我虚拟机测试的时候遇到了一个问题.登陆centos一直是返回login,账号和密码没错,我也换了两个用户. 1.问题描述 我正常的输入用户名和密码 错误提示截图:返回登陆界面,我重新试了另外的 ...

  9. Node.js之Express四

    Express提供的大部分功能是通过中间件函数完成的,这些中间件函数在Node.js收到请求的时点和发送响应的时点之间执行.Express的Connect模块提供了中间件框架,可以方便的在全局或路径级 ...

  10. PLC一种启停程序