Mule ClassNotFoundException用于类路径中的库中存在的类

问题描述 投票:1回答:2

我在Mule应用程序中有一个类,它位于第三方库的jar中。在项目构建之后,库将包含在lib文件夹中,因此它肯定在类路径中。然后将该类用于Mule组件。应用程序在AnyPoint Studio的嵌入式服务器中成功部署。但是,当Mule组件处理数据时,Mule抱怨它无法找到该类。一旦遇到包含以下代码片段的行,它就会抛出NoClassDefFoundError

populator.put(ScanType.MRI,container);

这是堆栈跟踪的一部分:

Root Exception stack trace:
java.lang.ClassNotFoundException: com.tcfg.utils.defn.Populator
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at org.mule.module.launcher.FineGrainedControlClassLoader.findClass(FineGrainedControlClassLoader.java:175)
    at org.mule.module.launcher.MuleApplicationClassLoader.findClass(MuleApplicationClassLoader.java:134)
    at org.mule.module.launcher.FineGrainedControlClassLoader.loadClass(FineGrainedControlClassLoader.java:119)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)

我也知道,当我使用工具在整个lib文件夹中搜索类的实例时,这是整个项目中该类的唯一实例。这绝对不是该类的多个版本或其中一个具有相似名称的jar中存在的其他类的情况。可能是什么原因以及如何解决?

mule classloader esb
2个回答
0
投票

即使你在lib文件夹中添加jar,你也需要手动将jar添加到你的类路径中。所以,它将可用。


0
投票

它们有两种可能性,一种是可能需要在Anypoint Stduio中下载和配置OS特定的库,如运行配置,如SAP,我们需要将它指向windows将引用的DLL。举个例子。 -Djava.library.path = C:\用户\ ADM-snandu \ AnypointStudio \工作空间\

对于大多数Class Notfound错误,您需要确保在pom.xml中提供maven依赖关系,它负责下载所有相关库并在运行时引用它们。

© www.soinside.com 2019 - 2024. All rights reserved.