java - 从 EJB 调用 shell 脚本有哪些缺点?

标签 java jakarta-ee

我们的业务案例需要我们从消息 Bean 调用 shell 脚本。除了明显的可移植性问题和标准遵从性之外,从 bean 调用 shell 脚本还有什么问题?从技术上讲,容器 WebLogic 允许我这样做,但这似乎是一个不好的做法。一个好的替代方案是什么?在这种情况下,这是一个同步调用。

最佳答案

Other than the obvious portability issues, and the standards compliance, what is the problem with calling a shell script from a bean?

您已经涵盖了最重要的内容。

我能想到的唯一其他的是:

  • 维护“混合”解决方案的工程问题
  • 潜在的性能问题;例如如果用 Java 编码并(通常)在主 JVM 中运行,任务是否可以显着更快地完成。

Technically speaking, the container, WebLogic, will allow me to, but it sure seems like a bad practice.

不良做法不应等同于不优雅。好的/坏的实践是指根据某些客观标准将产生可衡量的影响的事情......如果你可以衡量它们的话。

What would a good alternative be? It is a synchronous call in this case.

一般的替代方法是用 Java 编写任务代码。您应该能够在 awk/sed 情况下执行此操作。如果您使用 ps 查找外部进程,您可能根本无法用纯 Java 完成该任务,这意味着您当前的方法是最好的。

关于java - 从 EJB 调用 shell 脚本有哪些缺点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12270868/

相关文章:

java - java中实现大量具有相似签名的方法的最佳设计模式是什么?

eclipse - 从 Java 获取 derby 数据库连接(在 eclipse 中)

java - JVM "throw"异常怎么办

javax.命名.NameNotFoundException : Unable to connect to derby database

java - 如何用java处理selenium webdriver中的重叠页面

java - 我正在制作圣经应用程序,我想打印特定的章节并突出显示特定的行

java - 结合原始类型和泛型方法

java - 如何在Java中检查文件是否为gzip

jakarta-ee - Hazelcast 端口没有被杀死

java - 为什么 Java Web 应用程序会包含一系列具有 main() 方法的类?