小编met*_*ord的帖子

在嵌入式 Tomcat 上从 Spring-Boot Web 应用程序运行 Python 脚本

我正在尝试制作一个 Web 应用程序,该应用程序在 Spring-boot(在嵌入式 Tomcat 上运行)上使用 HTML 表单从用户那里获取输入;我需要将此输入作为命令行参数传递给位于硬盘某处的 Python 脚本。

这是我的控制器,它从 HTML 表单中获取数据(从表单中获取数据工作正常。)

@Controller
public class PortalController {
    @RequestMapping(value="")
    public String hello(){
        return "portal/welcome";
    }
    @RequestMapping(value="",method=RequestMethod.POST)
    public String addAObjectForm(@RequestParam String val) throws IOException {
        String cmd = "python Fetch.py \""+val+"\"";
        System.out.println(cmd);
        Runtime.getRuntime().exec(cmd);
        return "redirect:/";
    }
}
Run Code Online (Sandbox Code Playgroud)

变量 'cmd' 最后存储这个值: python Fetch.py "Command-line-arg-from-html"

Python 代码正在抓取网络。代码太大,无法移植到Java。我的 v. sweet 老师让我在 Spring-Boot 上制作网络应用程序。由于该应用程序在 Tomcat 上运行,因此看起来我无法像在控制台上一样直接执行 Py 脚本。有人可以建议一种方法吗?非常感谢任何帮助。

注意:Spring-Boot 项目和 Python 脚本都可以独立工作,没有问题。

我遇到的问题是,代码只是在控制台上打印变量“cmd”并继续。数据库中没有反映任何更改(应该由 Py 脚本完成),这表明该脚本没有执行。这是控制台窗口:

2018-03-03 05:44:47.733  INFO 10752 --- [  restartedMain] o.s.j.e.a.AnnotationMBeanExporter …
Run Code Online (Sandbox Code Playgroud)

python java spring spring-boot

2
推荐指数
1
解决办法
1万
查看次数

容器内文件系统的更改未反映在 docker 卷中的主机上

我正在使用 TypeScript 编写的 Express 服务器。项目的流程是我有一个 npm 构建脚本,它在 src 文件夹中获取项目文件并将它们编译到 dist 文件夹。这两个文件夹都位于根目录下。该项目有效,但是在尝试将所有内容移动到 docker 时,虽然我正在安装卷并且构建的文件(dist 目录)在容器中,但更改并未反映在主机上。(我正在为 Docker 使用 Windows + VirtualBox)

我已经提到了这个这个问题。我看到他们的场景是一样的,但他们的解决方案似乎对我不起作用。我确保我使用了这些答案中提到的类似技术,它们似乎不起作用。

项目目录结构:

??? Backend
?   ??? src/
?   ?   ??? controllers/
?   ?   ??? models/
?   ?   ??? routes/
?   ?   ??? services/
?   ?   ??? index.ts
?   ?   ??? server.ts
?   ??? dist/ (Created upon compilation)
?   ?   ??? controllers/
?   ?   ??? data/ (Created upon starting the server)
?   ?   ??? models/
?   ?   ??? …
Run Code Online (Sandbox Code Playgroud)

docker docker-compose

0
推荐指数
1
解决办法
3053
查看次数

标签 统计

docker ×1

docker-compose ×1

java ×1

python ×1

spring ×1

spring-boot ×1