<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 不需要类似的操作。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于