当包是WAR

时间:2017-02-21 03:16:17

标签: maven spring-boot

这有点复杂,所以我会一步一步地尝试解释它。

我已经构建了一个Maven / Spring Web框架,理论上可以被任何其他项目使用。 pom.xml包的类型为JAR。这基本上有两个网络过滤器和一些基本的身份验证代码,它们映射到' / auth / basic' (POST)并接受用户名'和密码' JSON文档。

我可以使用Maven成功构建这个项目,我甚至可以使用Spring-boot:run'我的' / auth / basic'自动获取映射。使用CURL,我可以从命令行查询我的Web API。一切都像魅力一样。

我的第二个Maven / Spring项目是另一个JAR。但是,这个具有特定的域名'网络API和代码。您可以创建,添加和删除用户。这也很好地编译,当通过' spring-boot执行时:run'我可以从命令行使用CURL成功查询我的Web API。用户被创建,删除等。

我的主要问题是下一部分。我想有第三个项目,但这一次,它的目的是成为一个WAR包。上面的两个JARS被列为此项目的依赖项。他们成功地打包到我的WAR文件中。该项目的目的是将所有html,css,javascript和图像文件作为此项目的一部分。我不想在这里找到任何Java代码(除了Spring Boot主类)。

当我使用' spring-boot启动它时:运行'它成功启动,我可以从浏览器查看我的网页。我可以成功导航(使用Angular)。我的主要问题是,当从JavaScript调用上述任何网络API(即:' / auth / basic'或' / user / *')时,我得到一个HTTP 405.这是非常明显的,因为没有Web API自动映射,就像我Spring Boot the the other other JARs一样。

我的问题是为什么会这样?为什么它足够智能自动查找我的所有控制器并在它是JAR时映射它们但是当它是WAR时,它不会做同样的事情?

我真的很讨厌必须手动将我的servlet /过滤器添加到' web.xml'文件。还有另一种方法吗?春天"自动化"方式是什么?

0 个答案:

没有答案