<dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>jsp-api</artifactId> <version>${jsp.version}</version> <!--scope>provided</scope--> <exclusions> <exclusion> <artifactId>servlet-api</artifactId> <groupId>javax.servlet</groupId> </exclusion> </exclusions> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>${servlet.version}</version> <!--scope>provided</scope--> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> <version>${jstl.version}</version> <!--scope>provided</scope--> </dependency>
在 jetty 容器中运行需要打开 provided,因为 jetty 容器中已经自带了 servlet,jstl 和 jsp 的实现。但当项目需要部署到 Tomcat 中时,由于 Tomcat 容器未带有 servlet,jstl 和 jsp 的实现所以需要关闭 provided,将相应的包代入。
在 Jetty 环境中若 Jetty 不设置项目的基本 Context 则相应的 ${ctx},即 Context Path 无法找到相应的项目路径,所以配置 Jetty 项目时需要配置好相应的 Context。
<plugin> <groupId>org.eclipse.jetty</groupId> <artifactId>jetty-maven-plugin</artifactId> <version>9.1.6.v20160112</version> <configuration> <stopPort>9966</stopPort> <stopKey>stop-jetty-for-it</stopKey> <webAppConfig> <contextPath>/${project.build.finalName}</contextPath> </webAppConfig> </configuration> <!--dependencies> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.38</version> </dependency> </dependencies--> </plugin>
更高版本的 mysql-connector-java 在配置到 jetty 时需要被 jetty 所依赖,但 Tomcat 不需要类似的操作。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于