我们的业务案例需要我们从消息 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/