Spark rest api 服务器部署

Spark rest api server deploy

有了this link,我做了休息api服务器。当我在 eclipse ide 上 运行 时效果很好。但是,我不知道如何在服务器上部署。我制作了 war 文件并尝试在 tomcat 上部署,但不知何故无法访问我定义的任何页面,这与 eclipse 上的 运行ning 不同。这是我做的一些 gradle 配置。

apply plugin: 'war'

war {
    baseName = 'server'
    manifest {
        attributes 'Implementation-Title': 'SparkAPIServer', 'Implementation-Version': '1.0', 'Main-Class': 'com.server.Main'
    }
}

我确定 'Main-Class' 路径是正确的。有 ide 个吗?

看到你使用 Spark 和一个 main 方法来启动一个网络服务器,你实际上是在创建一个 jar,如下所示(根据需要进行调整):

jar {
  manifest {
    attributes 'Main-Class': 'com.foo.bar.MainClass'
  }
}

请参阅 jar task 文档。并且不要忘记将外部库的类路径添加到清单中。

运行 来自 Eclipse IDE 不同于 运行ning on Tomcat,因为当 运行ning on Eclipse Spark 使用内置在 Jetty 服务器中,当部署到 Tomcat 服务器上的 Tomcat Spark 运行s 时。

引用自documentation

Other web server

To run Spark on a web server (instead of the embedded jetty server), an implementation of the interface spark.servlet.SparkApplication is needed. You have to initialize the routes in the init() method, and the following filter has to be configured in your web.xml:

...

因此,为了在部署到 Tomcat 后 运行 相同的代码,您需要:

  1. 您的 class 应该实现 SparkApplication。
  2. 执行 init() 方法,并在那里注册所有路由。 (当然,如果您希望能够 运行 在 Eclipse 本地和远程 Tomcat 上,只需将您的所有路由注册到某个私有方法 startSpark() ,该方法将从 init() 调用从 main()).
  3. 您的 web.xml 应该进行相应设置。