1、问题现象
上传图片功能,本地测试编译需要引用插件,否则编译不通过;
<build>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.3</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>utf-8</encoding>
<compilerArguments>
<verbose />
<bootclasspath>${java.home}/lib/rt.jar:${java.home}/lib/jce.jar</bootclasspath>
<!--<bootclasspath>${java.home}\lib\rt.jar;${java.home}\lib\jce.jar</bootclasspath>-->
</compilerArguments>
</configuration>
</plugin>
</plugins>
</build>
然后本地测试通过,但是发布到测试环境报错,org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.NoClassDefFoundError: com/sun/image/codec/jpeg/ImageFormatException
2、原因
上传压缩图片用到com.sun包的内容,但是测试环境用的java openjdk,lib下面的rt.jar里面没有 com/sun/image/codec/jpeg这个包,导致引用不到这个类
3、解决方式:安装标准的jdk
cd /etc
vim profile
export JAVA_HOME=/usr/local/jdk8
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
export PATH=$JAVA_HOME/bin:$HOME/bin:$HOME/.local/bin:$PATH
source profile
java -version