[英]Invoking groovy method in Mule 4
我已经使用 JPA 存储库构建了一个完整的 groovy 项目,用于数据持久化操作。 现在我想从 Mule 4 中的脚本调用方法,而不更改 groovy 项目中的任何内容。
例如。 CustomerService.groovy(伪代码)
import com.example.dao.CustomerDao.groovy
... other imports...
@Service
class CustomerService {
@Autowired
CustomerDao cDao
@Transactional
publid Customer createCustomer(Customer customer) {
return cDao.save(customer)
}
... other methods...
}
CustomerDao.groovy
import spring.JPA (the original import path may vary)
@Repository
class CustomerDao implements JPARepository<Customer, Integer> {
}
该项目在 Mule 3 中运行。在 Mule 3 中,我们有一个 Invoke 组件,可用于调用 groovy 脚本中的方法。 Mule 4 Invoke 组件仅与 Java 兼容,而不与 groovy 兼容。
脚本模块的“执行”组件可以调用 groovy 脚本,但不确定如何调用该方法。 Mule 4中是否有任何解决方法?
目前出现的问题
Unalbe to resolve class com.example.dao.CustomerDao
@ line 3 column 1,
import com.example.dao.CustomerDao.groovy
^
找到了类似问题https://help.mulesoft.com/s/article/Compilation-exception-in-Mule4-x-when-using-Groovy-script-with-Import-statement但无法实现的解决方案。
在文章中,他的开发人员遇到了 apache 依赖项的问题,他/她可以从 mvn repo 获得。 我正在尝试导入我开发的 groovy 文件。 因此无法将其添加到依赖项中。 我尝试在我的本地仓库中添加 groovy 项目并获取它,但它没有用。 此外,当这个 Mule 4 应用程序部署在 CloudHub 上时,它会出现问题,因为它无法访问我的本地存储库。
需要一个解决方案来向 Mule 4 添加一个 spring-groovy 项目
谢谢:)
问题是脚本模块执行的 Groovy 脚本试图导入不在 Java 的类路径中的 class。 所以它会抛出错误。 class 位于另一个 Groovy 源文件中。 您可以做的是将 Groovy 代码编译成实际的 Java class。 您可以尝试Groovy 文档中描述的方法之一,将 Maven 插件与您的 Mule 应用程序 pom.xml 文件集成。
如果您有大量 Groovy 类,另一种选择是创建一个单独的项目来构建 Jar 库,然后使用您提到的知识库文章中的解决方案。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.