【问题标题】:Is it possible to run java application in both commandline / as a webservice是否可以在命令行/作为 web 服务中运行 java 应用程序
【发布时间】:2018-11-29 15:51:18
【问题描述】:

我想创建一个类似于比特币客户端的 Java 应用程序。但它可以在命令行 cmd 上运行,也可以作为 Web 服务向其他客户咨询我的客户。我应该使用哪种技术来处理我的任务。请给我一个例子解释问题

【问题讨论】:

  • 你也可以在包中添加一个类,它有一个可运行的 Main - 调用你的 web 服务,我在测试 web 服务时经常这样做

标签: java jax-ws bitcoin webservice-client json-rpc


【解决方案1】:

期望

猜猜这就是你所期待的

  1. 从命令行或作为操作系统服务运行 Java 程序
  2. 该程序应该是向其他消费者公开一些 API 的 Web 服务

解决方案

  • 您可以在 Spring MVC、Spring Boot 和 Maven 的帮助下做到这一点

原因

  • Spring MVC 可用于将您的业务公开为 REST Web 服务
  • Spring Boot 可用于将 Web 服务应用程序作为普通 Java 应用程序(使用主类)启动,而无需使用 Tomcat 或 Jetty 等外部 Web 服务器
  • Maven 构建工具可用于从 Spring Boot 应用程序创建 fat jar(包含所有依赖项的单个 jar 文件)
  • 您将从命令行运行生成的 fat jar,但服务仍将作为 REST 服务公开

参考

  • 使用https://start.spring.io/
  • 这个 Spring 自己的托管工具将为您生成所有样板代码。您只需将下载的 zip 导入您的工作区并添加您的业务逻辑
  • 要构建一个胖罐子,您不需要做任何特别的事情。只需运行mvn clean install。样板将有一个 pom.xml 文件,该文件将负责生成 fat jar

【讨论】:

  • 非常感谢您详细、优雅的回答。你的最后一句话引起了我的注意。我将把这个程序提供给我的股票经纪人客户,他们可以使用这个程序访问我系统中的信息。在这样做时,它将使用命令行或浏览器。这部小说有错误吗。不过,我可以用你所说的解决它。
  • 我从来没有使用过spring boot和maven。有没有一个例子涵盖了你提到的完成这项任务的技术。
  • 编辑了答案,希望能帮助你快速启动(也许这就是spring boot的动机)。
  • 这样,我可以同时从命令行和浏览器发出请求吗?
  • 当你的意思是请求时,我猜你的意思是 HTTP 请求。是的,您可以从浏览器和 cmd 中获取。对于 cmd 你必须使用 cURL 命令。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-27
相关资源
最近更新 更多