我可以在简单的Meecrowave项目中结合REST类和静态资源吗?

时间:2019-02-10 02:45:09

标签: java rest web-applications

我有两个要合并的Maven Meecrowave项目。 -第一个项目是一个简单的类,具有主要方法: -第二个项目仅包含静态html文件。

为了避免出现XSS或CSRF错误,我想将两个项目结合起来。

我在一个项目中组合了我的java类和html / js文件 src / main / java中的Java src / main / resources / www

中的HTML / JS

我尝试在POM配置文件中设置“ webapp”。似乎被REST装饰器扫描的类覆盖了。

public static void main(String... args) throws Exception {
    try (final Meecrowave meecrowave = new Meecrowave().bake()) {
        new Scanner(System.in).nextLine();
    } finally {

    }
}

我的REST控制器如下所示:

@Path("modules")
@ApplicationScoped
@Produces("application/json")
public class MyApplication {
...
    @GET
    public List<Module> getModules() {
        return modules;
    }
}

Maven POM文件包含如下所示的插件:

<build>
    <resources>
        <resource>
            <directory>${frontend.base}</directory>
        </resource>
    </resources>
    <plugins>
        <plugin>
        <groupId>org.apache.meecrowave</groupId>
        <artifactId>meecrowave-maven-plugin</artifactId>
        <version>${mw.version}</version>
        <configuration>
        <httpPort>8082</httpPort>
        <webResourceCached>false</webResourceCached>
        <webapp>${frontend.base}/www</webapp>
        </configuration>
        </plugin>
    </plugins>
</build>

我希望能够浏览到我的HTML文件: http://localhost:8082/

我希望能够浏览到我的Java REST资源: http://localhost:8082/modules

1 个答案:

答案 0 :(得分:0)

默认情况下,jaxrs应用程序绑定在/ *上,因此与资源重叠,请尝试添加@ApplicationPath(“ / api”)左右,以便将其余端点放在api子上下文下,并且应该可以使用。