【问题标题】:Exposing simple Java application methods through HTTP calls (Not a web application)通过 HTTP 调用公开简单的 Java 应用程序方法(不是 Web 应用程序)
【发布时间】:2016-11-21 20:02:23
【问题描述】:

我有一个简单的 Java 应用程序(不是 Web 应用程序)并使用 maven 通过 Jar 文件分发它。我需要通过 HTTP(类似于 REST API)公开它的一些公共方法,以便其他应用程序可以通过进行 REST 调用来重用它。 例如,在做一些研究时,我看到 Jersey 是一个选项,但它似乎只适用于 Java Web 应用程序。我也遇到过 HTTPComponents + HTTPClient,但代码比 Jersey 复杂得多。

我的问题是Java应用程序通过HTTP暴露公共方法是否有一个简单的解决方案。

谢谢你, 萨拉

【问题讨论】:

  • 一旦您拥有 HTTP 端点,您就牢牢地处于 Web 应用程序领域。我不会挂断这些语义。 Jersey 是一个很棒的 Java 库。
  • 感谢您的回复@DejaVuSansMono。我的意思是我没有 web.xml 我仍然想将应用程序严格公开为一个 jar。我需要这些用户访问这些休息 URL 的方式是将我的 jar 添加到他们的应用程序中,然后进行休息调用以使用我将公开的那些 API。我知道这可以通过 httpcomponents 实现,我觉得它很麻烦,正在寻找更好的解决方案。
  • “作为罐子”是什么意思?如果您正在谈论让他们将 jar 包含在自己的程序中,那么直接进行 Java 调用会更简单、更有效。如果您说的是一个可运行的 jar,它是它自己的程序,那么 Spring Boot 会将您需要的一切(包括嵌入式 Web 服务器)打包到一个 jar 中。
  • 如果你想暴露接口被其他java运行应用程序通过http调用你可以使用Spring HttpInvokerProxyFactoryBean...
  • 听起来您还没有任何 Web 功能。 Spring Boot 将允许您使用 Web 界面非常简单地包装这些 API 调用。也就是说,如果他们有您的可运行 jar,他们对您的代码的访问权限与您将其作为库分发一样多,您不妨为每个人省去麻烦。

标签: java rest jersey httpclient apache-httpcomponents


【解决方案1】:

请参考 cmets 的答案。提出了多种 Web 技术,如果我们想作为 REST API 分发,我似乎必须将项目转换为基于 Web 的应用程序,否则,如果用户同意只使用 Jar 和 Java API。谢谢。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-04
    • 1970-01-01
    • 2011-02-09
    • 1970-01-01
    相关资源
    最近更新 更多