我正在尝试制作一个Web应用程序,该应用程序在Spring-boot上使用HTML
Form接收来自用户的输入(在嵌入式Tomcat上运行);我需要将此输入作为命令行参数传递给位于硬盘上某个地方的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:/";
}
}
变量“ cmd”最后存储该值: python Fetch.py "Command-line-arg-from-html"
Python代码正在抓取网络。 该代码太大,无法移植到Java。 我的v.sweet老师要求我在Spring-
Boot上制作网络应用。
由于该应用程序在Tomcat上运行,因此好像无法像在控制台上一样直接执行Py脚本。有人可以建议一种方法吗?非常感谢您的帮助。
注意:Spring-Boot Project和Python Script都可以独立运行而没有问题。
我遇到的问题是,代码仅在控制台上打印变量“ cmd”并继续。数据库中没有反映出任何更改(应该由Py脚本完成),这表明该脚本未执行。这是控制台窗口:
2018-03-03 05:44:47.733 INFO 10752 --- [ restartedMain] o.s.j.e.a.AnnotationMBeanExporter : Registering beans for JMX exposure on startup
2018-03-03 05:44:47.771 INFO 10752 --- [ restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8080 (http) with context path ''
2018-03-03 05:44:47.771 INFO 10752 --- [ restartedMain] org.OpenLyrics.Portal.PortalApplication : Started PortalApplication in 3.161 seconds (JVM running for 7.414)
2018-03-03 05:44:55.737 INFO 10752 --- [nio-8080-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring FrameworkServlet 'dispatcherServlet'
2018-03-03 05:44:55.738 INFO 10752 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : FrameworkServlet 'dispatcherServlet': initialization started
2018-03-03 05:44:55.765 INFO 10752 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : FrameworkServlet 'dispatcherServlet': initialization completed in 26 ms
python Fetch.py "Argument 1"
python Fetch.py "Argument 2"
python Fetch.py "Argument 3"
我挖了很多互联网,找到了解决方案。
可以使用以下命令执行此操作:
String fetching = "python " + "c:\\Fetch.py \"" + songDetails + "\"";
String[] commandToExecute = new String[]{"cmd.exe", "/c", fetching};
Runtime.getRuntime().exec(commandToExecute);
我刚刚进入spring boot应用程序教程(1.5.8版)。我创建了一个简单的hello world独立应用程序,它支持log(log4j2)。当我执行应用程序时,我得到一个错误,端口8080已经在使用中。我有点困惑,我以为这个应用程序是独立的程序,不需要web容器或应用服务器。我想你可以根据阅读来部署它。 为了避免异常,在阅读了一些关于它的文章后,我通过提供参数使其工作。 我读到spring
我下面介绍了spring的RESTAPI,但我无法让它在tomcat服务器上运行(尝试了tomcat 7和9)。在eclipse中,我确实以- 编辑 尝试在项目上安装mvn,然后java-jarproject.jar 编辑2 我将项目导出到一个可运行的jar(并将所需的库打包到生成的jar中),但是 提供 编辑3 我没有删除我的m2,因为那里有很多东西,但我现在通过eclipse的spring工具
我正在尝试在Tomcat上部署多个spring boot web应用程序。所有应用程序都有相同的application.properties。如何拆分在Tomcat上运行的不同应用程序的配置文件。
我有一个Spring Boot项目,我想在嵌入式spring tomcat上部署该项目,因为服务器(suse-linux)没有应用程序容器。我怎么能这么做?是.war还是un.jar?我如何配置嵌入式tomcat以指向服务器上安装的java?。 pom.xml .罐子 谢谢你的帮助。
我怎么能做到..以编程方式有什么方法可以做到这一点。 Pls救命!
是否有一种方法来运行一个Spring Boot应用程序(可运行的war),以便它监听两个端口--一个带有SSL,一个不带有SSL。我使用的是嵌入式Tomcat8。 SSL当前正在使用 任何建议都欢迎一如既往!
我试图使用Intellij启动一个Spring应用程序,但我得到了下面的错误。我尝试将Tomcat依赖项放在pom.xml中,但这并不奏效(我后来也发现不需要这样做)。 应用程序应该可以正常工作,因为它已经在一个同事的电脑上工作了,所以我不太确定为什么我会得到这个错误。我已经尝试了几个修复,我在这里遇到了,但没有一个奏效。下面是我的: