第一种解决办法: 

  右击项目->properties->找到Deployment Assembly,右边便是编译打包的配置,看是不是缺少了lib库的依赖,如果缺少,可以点击Add,添加maven依赖库。最后列表如下。

134827_gDgN_176115.png


       如上的方案,我自己看了一下,本身就是这样的,都不用设置,重设了一次,也无效。报测错误就是访问jsp时报错,大致就是:

       http://java.sun.com/jsp/jstl/core  在 web.xml 中找不到对应的说明  之类的错误。因为我的jsp中以开始就引用了这个 c 标签嘛。

       想来想去,应该还是我的 eclipse  项目在tomcat 下是直接以目录映射项目的方式进去访问的,而这种方式和 myeclipse 的最大差异就是:它不是把项目整体编译好之后,复制到 tomcat 的 webapps 目录下的。那么,在映射时,就硬性的需要 WEB-INF/lib 目录下得有 jar 文件,否则,访问所有的相关功能时,就会报错。


       故而,如果先经过了处理逻辑,则依赖的 jar 就会因为找不到而报对应的错,而如果是空逻辑转向 jsp 去跑,则就会报 标签库找不到对应jar的错误。

       想到的如上的原则,那么来解决它就好了,找了一下,maven 正好有相关的 copy 插件↓↓↓↓↓↓↓


第二种解决办法: 

    在 pom.xml 中 插件部分引入如下代码即可:

    
<plugin>
 <groupId>org.apache.maven.plugins</groupId>  
 <artifactId>maven-dependency-plugin</artifactId>  
 <executions>
   <execution>
     <phase>clean</phase>  
     <goals>
       <goal>copy-dependencies</goal>
     </goals>  
     <configuration>
       <outputDirectory>src/main/webapp/WEB-INF/lib</outputDirectory>  
       <overWriteReleases>false</overWriteReleases>  
       <overWriteSnapshots>false</overWriteSnapshots>  
       <overWriteIfNewer>true</overWriteIfNewer>
     </configuration>
   </execution>
 </executions>
</plugin>

       这段代码的含义,就是在执行 maven 的 clean 阶段,把所有配置的依赖jar,直接复制到项目的 lib 目录下。根据含义,clean 一下项目,发现 jar 已经全部过去了,再把项目加入到 tomcat,启动访问之。OK,一切正常了,问题解决。


原文链接:https://my.oschina.net/sxgkwei/blog/1615482

欢迎留言