本人使用的MyEclipse8.5,一个SpringMVC+MyBatis的项目,使用maven的packge打包之后,直接部署到tomact下报错。
后来发现packge命令产生的编译class文件和部署包里的不一样(个人认为是先编译,再将编译后的拷贝到部署文件夹,结果拷贝过去后文件就变了),用Beyond Compare比较发现大小都一样(有的大一些,有的小一些)。直接将编译的class丢到部署包里覆盖,OK,现在没问题了。
google下,有人说是filter的原因,导致了转码,但是看了下filter是针对resource的。我的部分pom文件如下:
<build> <finalName>at</finalName> <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>2.3.2</version> <configuration> <source>1.6</source> <target>1.6</target> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>2.1.1</version> <configuration> <filteringDeploymentDescriptors>false</filteringDeploymentDescriptors> <webappDirectory>target/${name}</webappDirectory> <warSourceDirectory>WebRoot</warSourceDirectory> <warSourceExcludes>WEB-INF/lib/log4j-${log4j-version.version}.jar</warSourceExcludes> <webResources> <resource> <directory>src/main/java</directory> <includes> <include>*.java</include> </includes> <filtering>false</filtering> </resource> </webResources> </configuration> </plugin> </plugins> <defaultGoal>compile</defaultGoal> </build>
引用来自“肖国颖”的答案