Mic*_*elP 18 java webserver spark-java
我使用spark web框架来创建webapp,但我不知道如何部署这个webapp.我很抱歉,如果这是非常基本的,但我是新的引发框架,我找不到任何指导我如何部署spark webapp的文档:
dMc*_*ish 15
您首先需要创建一个可以构建到.war文件中的常规Java项目(在Eclipse中,这将是一个动态Web项目)
此链接中的spark文档描述了需要添加到项目web.xml文件的内容.http://sparkjava.com/documentation.html#other-webserver
过滤器中文档中列出的参数值需要指向已定义路径的类.
此外,以前在main()中的所有代码都需要移动到init().
@Override
public void init() {
get(new Route("/test") {
@Override
public Object handle(Request request, Response response) {
return "response goes here;
}
});
Run Code Online (Sandbox Code Playgroud)
另外,为了让我将它部署到JBoss,我只需要包含spark库而不是Jetty库.完成此操作后,您应该能够构建战争并将其部署到服务器,就像使用任何其他Java项目一样.
小智 7
在这里,您可以找到有关部署的信息:http: //sparkjava.com/documentation.html#embedded-web-server
首先,为web.xmlconfig 设置过滤器选项:
<web-app>
<!-- some options -->
<filter>
<filter-name>SparkFilter</filter-name>
<filter-class>spark.servlet.SparkFilter</filter-class>
<init-param>
<param-name>applicationClass</param-name>
<param-value>your.package.Application</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>SparkFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
Run Code Online (Sandbox Code Playgroud)
Applicationclass应该实现接口,spark.servlet.SparkApplication并且必须初始化init()方法中的路由.
这个看起来像(在Java SE 8中,您可以将Lambda Expression用于路由器.):
package your.package;
import static spark.Spark.*;
public class Application implements SparkApplication {
@Override
public void init() {
get("/", (request, response) -> "Hello World");
get("/hello/:name", (request, response) -> {
return "Hello: " + request.params(":name");
});
}
}
Run Code Online (Sandbox Code Playgroud)
具有此配置的应用程序适用于tomcat和glassfish服务器.
| 归档时间: |
|
| 查看次数: |
23892 次 |
| 最近记录: |