当前位置: 首页 > 知识库问答 >
问题:

PMD规则“使用正确的类加载器”解释?

史旺
2023-03-14

在J2EE中,getClassLoader()可能无法正常工作。改用Thread.CurrentThread().GetContextClassLoader()

多少能说明他们在想些什么?这里的“J2EE”环境到底是什么意思?

共有1个答案

常永怡
2023-03-14

J2EE环境是指Java Enterprise Edition。在这里,您不将程序作为一个独立的应用程序在JVM上运行,而是让JEE应用服务器(例如Glassfish或Tomcat)为您运行它。

应用程序服务器提供了许多不同的方式来运行程序,例如,它们提供并发和分布式执行。AppServers使用类加载器,有时有一个层次结构,例如EAR(Enterprise ARchive)有一个层次结构,而EAR内部的WAR(Web ARchive)有一个不同的层次结构。因此,无法确保您总是通过getClassLoader()调用获得正确的类加载器。使用Thread.CurrentThread().GetContextClassLoader(),您将始终获得加载应用程序的类加载器。

(注意:这并不完全正确,有些应用程序使用ContextClassLoader(比如Spring、OSGi),但这是获得合适的类加载器的最佳方法)。

 类似资料:
  • PMD规则如下: 使用合适的类加载器(关键) 在J2EE中,可能无法按预期工作。使用。 你能解释一下他们的想法吗?这里“J2EE”环境的确切含义是什么?

  • 我们在Java项目中使用源代码分析器PMD。我正在努力解决报告中的问题,目前正在努力解决规则。我知道这个想法不是为了创建大型类。 然而,我不喜欢“巨大”这个词,因为它太模糊了。有人能解释一下这条规则是如何运作的吗?报告说。 可能的上帝类(WMC=47,ATFD=11,TCC=0.06315789473684211) 这些数字意味着什么?有人知道决定某个特定类是否庞大的公式吗? 这个规则的Javad

  • 而类的加载规则, 都是一样的: Yaf规定类名中必须包含路径信息, 也就是以下划线"_"分割的目录信息. Yaf将依照类名中的目录信息, 完成自动加载. 如下的例子, 在没有申明本地类的情况下: 例 5.1. 一个映射的例子Zend_Dummy_Foo //Yaf将在如下路径寻找类Foo_Dummy_Bar {类库路径(php.ini中指定的ap.library)}/Foo/Dummy/Ba

  • 我在我的项目中使用drools,并假设它有100条规则。我有两个流程(通常它有开始节点- 现在我使用第一个进程流的kiesation和调用start进程,我看到它加载了所有100条规则而不是只有50条,并给我编译和运行时错误。所以请帮助我理解为什么来自不同规则流组的规则在一个流程中执行,这些规则与它的规则流组无关?我在加载条件时看到了所有这些。

  • 有人能详细解释一下这条规则吗。规则:AccessorMethodGeneration优先级:3避免自动生成的方法访问私有字段和内部/外部类的方法,并提供字段和方法的具体示例?

  • 在处理arch4u-pmd项目期间,我们制定了几个基于java的pmd规则,在基于XML的规则集< code>our-rules.xml中配置它们,并将其作为普通的java库/工件(< code > io . github . ABC:my-PMD-rules:0 . 1 . 0 )发布到我们的工件存储库中。工件结构如下所示: 我们如何使用pmd插件将它们添加到Gradle项目中? 我们必须处理以