当前位置: 首页 > 知识库问答 >
问题:

尝试使用camel路由执行shell脚本&面临以下问题

赵选
2023-03-14
  1. shell脚本文件没有挑选和执行其中的命令。
  2. 甚至没有得到我保存在代码中的日志消息。

下面是我正在使用的路线

@component
public class ShellRoute extends RouteBuilder
{
@override
public void configure()
{
final Logger logger = LoggerFactory.getLogger(ShellRoute.class);
logger.info("shellRoute");

boolean startupRoute=true;

from("direct:start")
.log(LoggingLevel.INFO, "Enter into Route:")
.routeID("ShellRoute")
.autoStartup(startupRoute)
.onException(Exception.class);
.logExhausted(false)
.logStackTrace(false)
.end()
.log(LoggingLevel.INFO, "Starting Script:")
.to("exec:./run_setup.sh?args=dev")
.log(LoggingLevel.INFO, "End of Script:");
}
}

以下是日志:

2017-09-29 08:32:56 INFO DefaultTypeConverter:56-Loaded 209类型转换器

2017-09-29 08:32:57 INFO AnnotationMBeanExporter:431-在启动时为JMX公开注册bean

2017-09-29 08:32:57信息ShellRoute:33-ShellRoute

2017-09-29 08:32:57 INFO ManagedManagementStrategy:191-JMX已启用

2017-09-29 08:32:57 INFO DefaUltruntimeEndpointRegistry:203-运行时endpoint注册表处于扩展模式,正在收集所有传入和传出endpoint的使用统计信息(缓存限制:1000)

2017-09-29 08:32:57信息SpringCamelContext:3039-AllowUseOriginalMessage已启用。如果不需要访问原始消息,则建议关闭此选项,因为它可能会提高性能。

2017-09-29 08:32:57 INFO SpringCamelContext:2840-总共1条路由,其中1条已启动。

2017-09-29 08:32:57 INFO SpringCamelContext:2841-Apache Camel 2.17.2(camelContext:camel-1)在0.667秒内启动

2017-09-29 08:32:57 INFO SupportMain:57-在4.963秒内启动SupportMain(JVM运行6.767)

共有1个答案

谢锦程
2023-03-14

要在Apache camel中执行shell脚本命令,请参阅exec组件文档http://camel.Apache.org/exec.html

下面的示例使用构建文件camelexecbuildfile.xml执行Apache Ant(仅Windows),前提是Ant.bat位于系统路径中,并且camelexecbuildfile.xml位于当前目录中。

from(“direct:exec”).to(“exec:ant.bat?args=-f camelexecbuildfile.xml”)

 类似资料:
  • 问题内容: 我想从PHP脚本执行系统上存在的Bash脚本。我的系统上有两个脚本。其中一个是称为at at 的PHP脚本,另一个是称为at at 的Bash脚本。 我的client.php脚本看起来像 我的睾丸看起来像 当我在终端上执行以下操作时 我在终端上得到以下输出 但是当我在打开页面时 我得到以下输出 即使执行了chmod + x testscript,我仍然收到此错误。 我如何从浏览器中获取

  • 我最近开始使用Apache Camel,我遇到的一个问题是在选择的路由上正确地执行关闭逻辑。由于关闭逻辑在不同的路由之间会有所不同,所以Camel的RoutePolicy是最有意义的。这里有一个例子来说明我为什么要这么做。 运行这个会给我一个DirectConsumerNotAvailableException,我已经使用了seda和vm(我不打算与多个上下文交互,但我已经尝试过了),两者都没有异

  • 问题内容: 我尝试谷歌搜索答案,但没有运气。 我需要使用我的超级计算机服务器,但是要运行我的python脚本,必须通过shell脚本执行。 例如我要执行 如何做到这一点? 问题答案: 只需确保python可执行文件在PATH环境变量中,然后在脚本中添加 细节: 在文件job.sh中,放入 执行此命令以使脚本可运行: 运行 :

  • 问题内容: 我需要执行一个shell脚本。难得的是我想这样做 我不希望它等待命令完成,我希望它在后台进程中运行。我不想要另一个php线程,因为它将超时,该命令最多可能需要3个小时才能完成。 问题答案: 您需要重定向命令的输出。 如果使用此功能启动程序,则要使其在后台继续运行,必须将程序的输出重定向到文件或其他输出流。否则,PHP会挂起,直到程序执行结束。 http://php.net/manual

  • 本文向大家介绍Android 从Gradle执行Shell脚本,包括了Android 从Gradle执行Shell脚本的使用技巧和注意事项,需要的朋友参考一下 示例 Shell脚本是一种非常通用的方法,可以将您的构建扩展到您能想到的任何东西。 例如,这是一个简单的脚本,用于编译protobuf文件并将结果java文件添加到源目录中以进行进一步编译: 此示例的“ pbScript.sh” shell

  • 我有一个gradle构建设置,在开始时,我想在准备我的环境的子目录中执行一个shellscript。 但是,当我通过调用 或仅通过构建项目来执行任务时,会发生以下错误: 不幸的是,这就是我得到的一切。 我也尝试了以下 - 相同的错误。 我在Windows上使用Gradle 1.10(Android需要),在Cygwin shell中。有什么想法吗?