1

初めて JBOSS でアプリケーションを実行すると、奇妙な問題が発生します。エラー メッセージは次のとおりです。

javax.servlet.ServletException: java.lang.IllegalArgumentException: Mapped Statements collection already contains value for project.services.dao.workerDAO.getAllWorkers
org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:535)
    org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:433)
    org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
    org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
    org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    org.displaytag.filter.ResponseOverrideFilter.doFilter(ResponseOverrideFilter.java:125)
    org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)

マッパー ファイル: project.services.dao.sql.workerDAO.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >

<mapper namespace="project.services.dao.workerDAO">

    <select id="getAllWorkers" parameterType="java.lang.String"
        resultType="Worker">

         Select wrk.Id As workerId, wrk.Nm As workerName
         From Worker wrk

    </select>

</mapper>

ただし、2 回目は、エラー メッセージはありません。

4

2 に答える 2

3

私は同じ問題を抱えていましたが、最終的にその理由は、マッピングxmlファイルに繰り返しSQL IDがあるためです。

于 2015-03-20T09:58:59.530 に答える
0

MyBatis のバグのようです。Java クラスworkerDAOは mapper と同じ名前を取ることはできませんworkerDAO.xml。それで、マッパーを変更してworkerMapper.xmlテストしてみてください。詳細については、この記事をお読みください。お役に立てば幸いです。

于 2013-03-25T18:34:03.773 に答える