二开插件常见异常:java.lang.ClassNotFoundException排查方法

栏目:云苍穹知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:1

二开插件常见异常:java.lang.ClassNotFoundException排查方法


1 问题描述

在日常开发,系统运行中,会碰到这样一种报错, java.lang.ClassNotFoundException,

这种报错是通常所说的类找不到的。下文将介绍如何排查以及解决方案。

2 原因分析

通过下面链接

http://ip:port/ierp/metadata/getClassUrl.do?className=类全路径名称

会有两种情况,如下图

通过这个请求,可以获取到目标类的类加载器,以及类在服务器存放的地址。

这是第一种情况,这个请求传回了值,说明类在服务器是存在,因为苍穹是支持分应用部署的,每个应用部署加载的jar包是根据启动参数 BIZLIBSBOSLIBS,TRDLIBSCUSLIBS  4个参数控制的,容器服务在启动时,会依次按照顺序去服务器的应用仓库(appstore)下载并解压到指定的目录中。


而这个问题在getClassUrl获取到值得情况下可能的原因是

分容器部署后,报错的容器节点下面几个启动参数没有配置上jar包打包的xml,或者zip名称。

解决方案是,在启动参数上补上即可。




第二种情况,如下图

通过这个请求,只得到空白信息页面。

有可能是原因是

1   jar包没有部署上去

    在服务器上代码仓库以及容器目录mservice/lib检查是否存在jar包。

2   Java代码编译不通过

    之前有过开发人员未仔细审查某个插件类,从而开发工具编译不通过,最后导出部署的jar包不含插件类的案例。

3   Java代码编译通过,但是代码中依赖的静态属性,代码块报错导致的没有加载到JVM中。

    通常此类报错都会打印日志,可以在monitor/天梯日志根据类名当关键字搜索,并根据实际的报错来分析报错原因。

二开插件常见异常:java.lang.ClassNotFoundException排查方法

1 问题描述在日常开发,系统运行中,会碰到这样一种报错, java.lang.ClassNotFoundException,这种报错是通常所说的类找不到的。下文将介...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息