最近再用maven3给公司做一个demo,本来架构师SSH2的标准架构,在起初做的时候使用
mvn archetype:generate -DarchetypeCatalog=internal 命令列出了所有可选的archetype,然后选择了一个53号,也就是比较常用的一个struts2架构。(struts2-archetype-starter)
但问题出在使用命令 mvn jetty:run的时候,启动jetty容器插件一切正常(除了找不到log4j的一个属性文件以外,不影响使用),但当我在浏览器里面访问appweb下面的文件时候告知404,我嘞个去,这个是原型自动生成的pom和一些jsp、classes等,怎么还会找不到文件呢。
后来打开pom.xml文件才发现有问题:
默认情况下contextPath取值来自开始时输入的artifactId值(相同),但在浏览器中访问的时候会输入如下url:http://localhost:8080/demo/jsp/helloWorld.jsp(默认生成的jsp),问题就出在了默人生成的contextPath是demo,而不是/demo,所以访问url时会报错404,所以如果需要该url可用,必须修改contextPath为“/demo”,其他的不需要改变。
btw:如果觉得url很麻烦可以任意修改之,比如:<contextPath>/</contextPath>,访问url就可是http://localhost:8080/jsp/helloWorld.jsp