Wildfly Swarm JAXRSArchive添加webapp目录

问题描述:

我试图将带有静态HTML页面的webapp文件夹添加到带有Wildfly Swarm的JAXRSArchive中。但不幸的是它没有成功。我怎样才能做到这一点?Wildfly Swarm JAXRSArchive添加webapp目录

+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); 
+0

我做了同样的事情,但它不适合我。也许我想念什么? – Nikita

+0

你可以检查罐子/战争的内容,看看他们是否正确添加 – ravthiru

+0

这是一个问题。他们不。 – Nikita

你能细说为什么你需要一个定制的main()?

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

您只需拨打Swarm.deploy(),它会创建一个默认的部署,而如果你的项目类型的战争,将正常工作

+0

我喜欢基于Java的方法。此部署定制用于大多数野蛮群体示例中(例如添加招摇)。对我来说,这看起来更好,但没有很好的文档记录。 – Nikita

+0

大多数示例和文档都可以自定义部署,所以它不会更容易。 – Nikita

+0

如果您确实需要定制main(),因为您需要以某种方式定制WAR,请使用Swarm.createDefaultDeployment()为您提供一个相当于Maven WAR包装的存档,而不是从头开始构建它 – Ken

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

如果您使用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,让你与静态内容合作。