MiraiForum

    • Register
    • Login
    • Search
    • Popular
    • Recent
    • Unsolved
    • Tags
    • Groups
    • 友情链接

    不同插件使用相同框架(mybatis)遇到找不到mapper的问题

    开发交流
    2
    9
    87
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • T
      Toukou-Yuu last edited by

      我有两个插件,里面均用到了mybatis框架,它们单独放进plugins里的时候是可以正常使用的。但是两个插件同时使用的时候就会报:

      org.apache.ibatis.binding.BindingException: Type interface xxx is not known to the MapperRegistry.
      

      已经检查:namespace类名正确,文件名与java名一致,mybatis配置文件也已经注册mapper
      请问应该怎么解决呢?

      1 Reply Last reply Reply Quote 0
      • cssxsh
        cssxsh last edited by

        检查 Mapper 的定义是否有重复

        T 1 Reply Last reply Reply Quote 0
        • T
          Toukou-Yuu @cssxsh last edited by

          @cssxsh 检查过了,没有重复

          cssxsh 1 Reply Last reply Reply Quote 0
          • cssxsh
            cssxsh @Toukou-Yuu last edited by

            @toukou-yuu
            配置方式?
            有可能配置相互覆盖了

            T 1 Reply Last reply Reply Quote 0
            • T
              Toukou-Yuu @cssxsh last edited by

              @cssxsh
              两个xml文件除了数据库和mapper不同,其他都类似,请问您说的覆盖是指?
              如果会覆盖的话,要怎么解决呀?

              <configuration>
                  <environments default="mysql">
                      <!--mysql的环境-->
                      <environment id="mysql">
                          <!--事务的类型-->
                          <transactionManager type="JDBC"/>
                          <!--数据源-->
                          <dataSource type="POOLED">
                              <!--数据库信息-->
                              <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
                              <property name="url" value="jdbc:mysql://server:port/**dbA**?rewriteBatchedStatements=TRUE"/>
                              <property name="username" value="xxx"/>
                              <property name="password" value="xxx"/>
                          </dataSource>
                      </environment>
                  </environments>
              
                  <mappers>
                      <mapper resource="A.xml"/>
                      <mapper resource="B.xml"/>
                      <mapper resource="C.xml"/>
                  </mappers>
              
              </configuration>
              
              cssxsh 1 Reply Last reply Reply Quote 0
              • cssxsh
                cssxsh @Toukou-Yuu last edited by

                @toukou-yuu
                主配置文件名 一样吗

                T 1 Reply Last reply Reply Quote 0
                • T
                  Toukou-Yuu @cssxsh last edited by

                  @cssxsh 文件名一样的,现在改掉之后又报了找不到配置文件的错误。。(文件名引用的地方也改了)

                  java.io.IOException: Could not find resource xxx.xml
                  

                  原来两个配置文件都是mybatis-config.xml,读取文件用的Resources.getResourceAsStream("")方法。
                  用原来的名字是能找到配置文件的,改了就找不到了(比如eng-mybatis-config.xml),就觉得很奇怪。。

                  T 1 Reply Last reply Reply Quote 0
                  • T
                    Toukou-Yuu @Toukou-Yuu last edited by

                    @toukou-yuu
                    感觉大概率确实是配置文件重名的问题,但是现在又卡在io问题上了,问了一圈也找不到办法。
                    不管怎么说,还是帮大忙了,非常感谢

                    cssxsh 1 Reply Last reply Reply Quote 0
                    • cssxsh
                      cssxsh @Toukou-Yuu last edited by

                      @toukou-yuu
                      Resources.getResourceAsStream("")
                      和类加载器有关
                      插件语境下需要切换类加载器

                      1 Reply Last reply Reply Quote 0
                      • 1 / 1
                      • First post
                        Last post
                      Powered by Mamoe Technologies & NodeBB | 友情链接 | 服务监控 | Contact