Maven+SSMの枠組みの下でプロジェクト開発のよくある異常と解決策(四)

1849 ワード

最近、ブロガーはIDEA+Maven+SpringMVC 4.3.10+Mybatis 3.2.8Demoを作っているので、前のタイトルに続いてよくある異常を書き続けています.
Junit 4ユニットテスト時コンソールエラー(一)
java.lang.NoClassDefFoundError: javax/servlet/SessionCookieConfig  

このエラーの原因は、web.xml3.0のヘッダ情報を使用しているためであり、servlet-apijarバージョン(ブロガーが当時使用していた2.5バージョン)とSpring4の互換性に問題があるためです.したがって、pom.xml2.5版のservlet-apiを削除した後、次のような依存を追加すればよい.

    javax.servlet
    javax.servlet-api
    3.0.1
    test
  

Junit 4ユニットテスト時コンソールエラー(二)
java.lang.IllegalStateException: Failed to load ApplicationContext

このエラーが発生したのは、IDEAを使用して開発テストを行う際に@WebAppConfiguration注記が追加されなかったためです.したがって、@WebAppConfiguration注記をテストクラスに追加すればよい.
Junit 4ユニットテスト時コンソールエラー(3)
Result Maps collection already contains value for

このエラーの原因は、DAOクラスに対応するmapperファイルに異常があるためであり、通常はラベルのid属性が重複しているためである.このような問題は、通常、mybatis-genertorを用いて逆生成を行う際に発生するエラーである.したがって、この問題を解決するには、mapperファイルの重複するコンテンツを削除する必要がありますが、通常、maventomcatプラグインを実行すると、この問題が発生します.そのため、この問題を根本的に解決するには、mybatis-genertorプラグインを使い終わった後、pom.xmlファイルのプラグインを引用して注釈を消し、使用時に離す必要があります.
Junit 4ユニットテスト時コンソールエラー(4)
java.lang.NoClassDefFoundError: com/fasterxml/jackson/core/util/DefaultIndenter

このエラーの原因は、SpringMVC 4.3.xのバージョンとjackjson-2.Xのバージョンが競合しているためです.したがって、jackjsonバージョンを2.8.7に変更すればよい.