如何在aws elastic beanstalk中从java ee web应用程序运行python脚本?

如何在aws elastic beanstalk中从java ee web应用程序运行python脚本?,python,aws-eb,tomcat,python-2.7,jakarta-ee,amazon-elastic-beanstalk,Python,Aws Eb,Tomcat,Python 2.7,Jakarta Ee,Amazon Elastic Beanstalk,我正在开发一个JavaEE应用程序,它进行一些api调用,并将这些api调用的结果以json文件的形式传递给脚本。在本地,我的应用程序运行良好,但当我尝试在AWS Elastic Beanstalk上测试它时,我的项目根本不运行python脚本 在上部署web应用程序时,我选择了作为我的平台,并上载了我的.war文件 因为我的项目很简单,所以我保留了其余的配置 在我的代码中,我创建了一个运行时进程,该进程调用bash脚本,而bash脚本又运行python脚本。 我的bash脚本如下所示: !/b

我正在开发一个JavaEE应用程序,它进行一些api调用,并将这些api调用的结果以json文件的形式传递给脚本。在本地,我的应用程序运行良好,但当我尝试在AWS Elastic Beanstalk上测试它时,我的项目根本不运行python脚本

在上部署web应用程序时,我选择了作为我的平台,并上载了我的.war文件

因为我的项目很简单,所以我保留了其余的配置

在我的代码中,我创建了一个运行时进程,该进程调用bash脚本,而bash脚本又运行python脚本。 我的bash脚本如下所示: !/bin/bash DIR=$cd$dirname${BASH_SOURCE[0]}&&pwd python$DIR/json_to_matches.py$DIR/output.json

为了进行调试,我在python脚本的开头包含了一条printRunning python脚本语句

我的本地输出的屏幕截图是:

但当我部署应用程序并对其进行测试时,我的日志显示python脚本根本没有命中

我已经在eb cli上检查了我的webroot目录,我的output.json文件是由项目创建的,因此我认为这不是output.json文件找不到或读/写权限问题


但是,我是AWS-EB新手,在部署我的应用程序时可能会出错。我不确定。有人知道如何在aws eb环境中从Java EE web应用程序运行python脚本吗?

尝试使用Runtime类运行

 Process p = Runtime.getRuntime().exec("python example.py");
如果python不在PATH变量中,请使用python安装目录的地址作为

 Runtime.getRuntime().exec("/usr/local/bin/python example.py")
您可以读取命令的输出,如下所示:

        BufferedReader stdInput = new BufferedReader(new 
             InputStreamReader(p.getInputStream()));

我已经在使用运行时进程来执行python脚本。也没有路径依赖关系。不在本地主机中,也不在aws eb中(当我通过eb cli进行检查时)。如上所述,在我的本地主机中,项目运行良好,我在aws eb上执行项目时遇到问题。请检查shell脚本和python脚本的执行权限。两者都应该是可执行的。shell脚本和python脚本都对用户具有执行权限。我已经检查过了。试着运行这个ProcessBuilder pb=newprocessbuildersudo,sh,/home/ec2 user/testscript.sh;过程p=pb.start;int errCode=p.waitFor;您的代码一定会运行如果失败,请检查错误代码0是否成功,否则为非零