問題描述:在本地環境可以正常跑的程序,在服務器上報錯。報錯信息顯示
java.lang.NoSuchFieldError:
java.lang.NoClassDefFoundError:
問題分析:看到這樣的錯誤,判斷是包衝突了。即程序中使用了錯誤的jar包導致找不到合適的方法或域變量。
解決辦法:利用ide的maven插件 ,查看依賴包的繼承關係,如下圖所示:
找到衝突的jar包,參考以下方式排除衝突。
- <dependency>
- <groupId>org.unitils</groupId>
- <artifactId>unitils-spring</artifactId>
- <version>${unitils.version}</version>
- <scope>test</scope>
- <exclusions>
- <exclusion>
- <artifactId>unitils-database</artifactId>
- <groupId>org.unitils</groupId>
- </exclusion>
- </exclusions>
- </dependency>