Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 春季战靴部署_Java_Spring_Spring Boot - Fatal编程技术网

Java 春季战靴部署

Java 春季战靴部署,java,spring,spring-boot,Java,Spring,Spring Boot,如何在Spring2.1.4启动应用程序(打包为WAR)中控制我是创建Servlet3.1还是4.0Web应用程序。通常,当使用web.xml web应用程序描述符时,web应用程序上的属性将宣布所使用规范的版本。在没有web.xml的SpringWebApplicationInitializer应用程序中(这是我的情况),没有这样的广告 仅仅是使用servlet 3.1功能并将其部署到容器中并希望它能工作吗?由于servlet 3和Java EE 6引入了注释,如@WebServlet,@We

如何在Spring2.1.4启动应用程序(打包为WAR)中控制我是创建Servlet3.1还是4.0Web应用程序。通常,当使用web.xml web应用程序描述符时,web应用程序上的属性将宣布所使用规范的版本。在没有web.xml的SpringWebApplicationInitializer应用程序中(这是我的情况),没有这样的广告


仅仅是使用servlet 3.1功能并将其部署到容器中并希望它能工作吗?

由于servlet 3和Java EE 6引入了注释,如
@WebServlet
@WebFilter
@WebListener
,因此
web.xml
文件是可选的


但是,无法使用在
web.xml
之外声明此信息,因此您必须包含该文件并指定版本。

在发布此问题一年多后,我发现maven通过存在声明为依赖项的特定API来做出此决定。例如,如果在Pom文件中有javax.servlet:javax.servlet api:4.0.1依赖项,maven将采用servlet 4.0容器。我相信SpringBoot不支持这一点,但我认为它应该支持。作为旁注,M2eclipse插件也以这种方式工作

容器如何知道没有web.xml的WAR文件是否使用了其实现不支持的功能?例如,如果容器是3.1兼容的,它会在运行时失败时才发现WAR包含4.0特性吗?如果是这样,应该在规范中更新注释,以公布WAR文件所需的规范,就像web.xml当前所做的那样。