前些日子,一直困惑着我。使用jetty:run启动项目为什么我的请求地址中就不用加上项目名,而别人的就需要。我还以为这是jetty与tomcat的的不同之处,甚至认为jetty比tomcat高级多了。终于在今天我找到了原因。
之前我的pom.xml文件中jetty插件是这样配置的:
<plugin>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
</plugin>
这里面并没有关于路径的配置。默认就是以”/”作为上下文路径了。
后来在做shiro权限控制的时候,发现路径和别人的感觉不一样。经他查看,改成下面这个样子了:
<plugin>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<configuration>
<webApp>
<contextPath>/gis</contextPath>
</webApp>
</configuration>
</plugin>
这里就配置了上下文路径,这就是上下文路径了。
后来又去查找资料,其实可配的东西还不只这些呢:
<plugin>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>9.0.4.v20130625</version>
<configuration>
<scanIntervalSeconds>10</scanIntervalSeconds>
<!-- 这里根据工程web根目录对应 -->
<webAppSourceDirectory>${basedir}/WebRoot</webAppSourceDirectory>
<webApp>
<!-- 设置发布 -->
<contextPath>/</contextPath>
<!-- 设置web.xml所在位置-->
<descriptor>${basedir}/WebRoot/WEB-INF/web.xml</descriptor>
<!-- 设置默认webdefault.xml,这个主要是为了禁止jetty启动之后,锁定文件.需要修改webdefault.xml里面的useFileMappedBuffer属性为false-->
<defaultsDescriptor>E:/jetty/jetty-distribution-9.0.4.v20130625/etc/webdefault.xml</defaultsDescriptor>
</webApp>
<httpConnector>
<!-- 设置端口-->
<port>8888</port>
</httpConnector>
</configuration>
</plugin>