我正在尝试将
common-math Java jar
导入到我的 mule 项目中,然后对 java jar 进行基本功能检查。
根据此博客https://mulesy.com/external-jar-class-in-dataweave/ 我在 mule-artifact.json 中添加了 pom 依赖和外部包。
mule-artifact.json
{
"minMuleVersion": "4.4.0",
"classLoaderModelLoaderDescriptor": {
"id": "mule",
"attributes": {
"exportedPackages": [
"org.apache.commons.math3"
]
}
}
}
我的pom依赖:
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-math3</artifactId>
<version>3.6.1</version>
</dependency>
现在我的数据编织代码如下:
%dw 2.0
import * from java!org::apache::commons::math3::prime::Primes
output application/json
---
{
a: Primes::isPrime(13)
}
它应该根据 java 类返回我
true
或 false
。
但我收到错误消息 Unable to resolve the reference of: Primes::isPrime
缺少什么,我应该在
primes
中添加src/main/java
的整个java包吗?
让我知道如何导入外部 java jar 并在该 jar 中定义的 Mulesoft 中执行操作..
注意:我还在我的 m2 存储库中安装了这个 jar
当
Apache Commons Math3的正确包是
prime
时,您正在使用包 primes
。完整的包名称是org.apache.commons.math3.primes
。
我不确定是否真的需要在 mule-artifact.json 中声明
exportedPackages
键。在许多情况下,在构建时自动配置。我会尝试将其删除。如果仍然需要使用完整包。