Wildfly Swarm JAXRSArchive添加webapp目录

时间:2016-12-29 00:05:00

标签: java java-ee jax-rs static-content wildfly-swarm

我尝试使用Wildfly Swarm将带有静态HTML页面的webapp文件夹添加到JAXRSArchive。但不幸的是,它没有成功。我怎么能这样做?

3 个答案:

答案 0 :(得分:0)

复制src/main/webapp中的所有静态文件,然后在主方法中添加调用staticContenet,如下所示

public static void main(String... args) throws Exception {
    Swarm container = new Swarm();
    JAXRSArchive jaxrsDeployment = ShrinkWrap.create(JAXRSArchive.class);
    jaxrsDeployment.addAsLibrary(container.createDefaultDeployment());
    jaxrsDeployment.addAllDependencies();
    jaxrsDeployment.staticContent();
    container.start();
    container.deploy(jaxrsDeployment);

答案 1 :(得分:0)

您能详细说明为什么需要自定义main()吗?

首选选项是不使用自定义main(),或者如果必须使用自定义main()来自定义部署。

您可以调用Swarm.deploy()并创建默认部署,如果您的项目类型为war,则可以正常工作

答案 2 :(得分:0)

这个问题已经过时了。但我为那些遇到同样问题的人发布了这个解决方案。

如果您在未指定JAX-RS的情况下使用@ApplicationPath,则可能会出现此问题。

默认情况下,JAX-RS会侦听应用的根/并覆盖标准映射。

在这种情况下,您必须添加如下配置:

import javax.ws.rs.ApplicationPath;
import javax.ws.rs.core.Application;

@ApplicationPath("/api")
public class JaxRSConfiguration extends Application {
}

这将为您的所有JAX-RS个终端添加前缀/api,并让您使用静态内容。