使用this link,我制作了休息api服务器。当我运行eclipse ide时,它运行良好。但是,我不知道如何在服务器上部署。我制作了war文件,并尝试在tomcat上部署,但不知何故无法访问我定义的任何页面,不像在eclipse上运行。这是我做的一些gradle配置。
apply plugin: 'war'
war {
baseName = 'server'
manifest {
attributes 'Implementation-Title': 'SparkAPIServer', 'Implementation-Version': '1.0', 'Main-Class': 'com.server.Main'
}
}
我确定' Main-Class'路径是正确的。对此有何想法?
答案 0 :(得分:4)
从Eclipse IDE运行与在Tomcat上运行不同,因为在Eclipse上运行时,Spark使用内置的Jetty服务器,当部署到Tomcat时,Spark运行在Tomcat服务器上。
其他网络服务器
要在Web服务器(而不是嵌入式jetty服务器)上运行Spark, spark.servlet.SparkApplication接口的实现是 需要。您必须在init()方法中初始化路由,并且 必须在web.xml中配置以下过滤器:
...
因此,为了在部署到Tomcat后运行相同的代码,您需要:
答案 1 :(得分:1)
看到您使用Spark和main方法启动Web服务器,您实际上是在创建一个jar,如下所示(根据需要进行调整):
jar {
manifest {
attributes 'Main-Class': 'com.foo.bar.MainClass'
}
}
请参阅jar task文档。并且不要忘记将外部库的类路径添加到清单中。