1

我正在开发一个基于 Mybatis 3.0.5、Mybatis-spring 1.0.1 和 Spring 3.0.5.RELEASE 的 Java EE 应用程序,我发现在 mybatis-config.xml 中使用 Alias 存在问题。痕迹是:

org.springframework.beans.factory.BeanCreationException:
在 ServletContext 资源 [/WEB-INF/applicationContext.xml] 中定义名称为“sqlSessionFactory”的 bean 创建错误:
调用 init 方法失败;嵌套异常是 org.springframework.core.NestedIOException:
无法解析配置资源: 类路径资源 [mybatis-config.xml]; 嵌套异常是 org.apache.ibatis.builder.BuilderException:
Error parsing SQL Mapper Configuration。原因:org.apache.ibatis.builder.BuilderException:
为“accesoUsuario”注册 typeAlias 时出错。原因:java.lang.ClassNotFoundException:
找不到类:[PACKAGE OMITTED BY ME].AccesoUsuario

我该如何解决这个问题?

这是我的 mybatis-config.xml ( MYPACKAGE = es.my.package )。

 <settings>
     <setting name="lazyLoadingEnabled" value="false" />
  </settings>

<typeAliases>
    <typeAlias alias="accesoUsuario" type="MYPACKAGE.persistencia.entidades.AccesoUsuario" />
    <typeAlias alias="agrupacion" type="MYPACKAGE.persistencia.entidades.Agrupacion" />
    <typeAlias alias="consulta" type="MYPACKAGE.persistencia.entidades.Consulta" />
    <typeAlias alias="consultaDim" type="MYPACKAGE.persistencia.entidades.ConsultaDim" />
    <typeAlias alias="consultaFiltro" type="MYPACKAGE.persistencia.entidades.ConsultaFiltro" />
    <typeAlias alias="dato" type="MYPACKAGE.persistencia.entidades.Dato" />
    <typeAlias alias="dimension" type="MYPACKAGE.persistencia.entidades.Dimension" />
            <typeAlias alias="dominio" type="MYPACKAGE.persistencia.entidades.Dominio" />
            <typeAlias alias="dominioDep" type="MYPACKAGE.persistencia.entidades.DominioDep" />
            <typeAlias alias="entidad" type="MYPACKAGE.persistencia.entidades.Entidad" />
    <typeAlias alias="error" type="MYPACKAGE.persistencia.entidades.ErrorProceso" />
    <typeAlias alias="informe" type="MYPACKAGE.persistencia.entidades.Informe" />
    <typeAlias alias="informeCabecera" type="MYPACKAGE.persistencia.entidades.InformeCabecera" />
    <typeAlias alias="informeSeccion" type="MYPACKAGE.persistencia.entidades.InformeSeccion" />
    <typeAlias alias="restriVariable" type="MYPACKAGE.persistencia.entidades.RestriVariable" />
    <typeAlias alias="usuario" type="MYPACKAGE.persistencia.entidades.Usuario" />
    <!-- ... -->
            <typeAlias alias="cadena" type="java.lang.String" />
</typeAliases>
4

2 回答 2

0

您的包不适用于 myBatis。您需要使用配置定义它:

<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
    <property name="basePackage" value="es.your.packacke"/>
</bean>
于 2012-05-25T17:31:33.987 回答
0

在没有看到一些实际源代码的情况下,我怀疑我们能否查明任何错误,但看看 DZone 上的这个示例可能会有所帮助。

他们特别指出的一件事是,如果您没有遵循 mybatis-config.xml 文件中的正确顺序,可能会导致异常。可能是该文件中的某些内容位于错误的位置。

如果您想发布更多代码,我可以尝试提供更多帮助。

于 2012-05-25T13:56:14.173 回答