您的位置:首页 > 移动开发 > Objective-C

MyBatis Generator报错:Cannot instantiate object of type

2018-02-10 10:43 441 查看

1.错误信息

[ERROR] Failed to execute goal org.mybatis.generator:mybatis-generator-maven-plugin:1.3.2:generate (default-cli) on project myssm: Execution default-cli of goal org.mybatis.generator:mybatis-generator-maven-plugin:1.3.2:generate failed: Cannot instantiate object of type: ClassNotFoundException -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.mybatis.generator:mybatis-generator-maven-plugin:1.3.2:generate (default-cli) on project myssm: Execution default-cli of goal org.mybatis.generator:mybatis-generator-maven-plugin:1.3.2:generate failed: Cannot instantiate object of type
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:212)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106)
at org.apache.maven.cli.MavenCli.execute(MavenCli.java:863)
at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:288)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:199)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
at org.codehaus.classworlds.Launcher.main(Launcher.java:47)
Caused by: org.apache.maven.plugin.PluginExecutionException: Execution default-cli of goal org.mybatis.generator:mybatis-generator-maven-plugin:1.3.2:generate failed: Cannot instantiate object of type
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:145)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:207)
... 21 more
Caused by: java.lang.RuntimeException: Cannot instantiate object of type
at org.mybatis.generator.internal.ObjectFactory.createInternalObject(ObjectFactory.java:217)
at org.mybatis.generator.codegen.mybatis3.IntrospectedTableMyBatis3SimpleImpl.createJavaClientGenerator(IntrospectedTableMyBatis3SimpleImpl.java:73)
at org.mybatis.generator.codegen.mybatis3.IntrospectedTableMyBatis3Impl.requiresXMLGenerator(IntrospectedTableMyBatis3Impl.java:304)
at org.mybatis.generator.config.Context.validate(Context.java:229)
at org.mybatis.generator.config.Configuration.validate(Configuration.java:94)
at org.mybatis.generator.api.MyBatisGenerator.<init>(MyBatisGenerator.java:118)
at org.mybatis.generator.maven.MyBatisGeneratorMojo.execute(MyBatisGeneratorMojo.java:200)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)
... 22 more
Caused by: java.lang.ClassNotFoundException:
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:348)
at org.mybatis.generator.internal.ObjectFactory.internalClassForName(ObjectFactory.java:169)
at org.mybatis.generator.internal.ObjectFactory.createInternalObject(ObjectFactory.java:213)
... 29 more


2.错误分析

在MyBatis-Generator的配置文件generatorConfig.xml中,没有给javaClientGenerator标签配置正确的type属性。示例:

<!--JavaDao层接口(XxxxDao.java)生成配置 targetProject+targetPackage构成全路径-->
<javaClientGenerator targetPackage="pers.hanchao.myssm.test.generator.dao" targetProject="src\main\java" type="">
<!--是否允许建立子包(对应MySql的scheme)-->
<property name="enableSubPackages" value="true"/>
</javaClientGenerator>


3.错误解决

给javaClientGenerator标签配置正确的type属性即可。

使用的
targetRuntime="MyBatis3Simple"
,有以下两种可选
type


XMLMAPPER
:生成的对象是 MyBatis 3.x 映射器基础结构的 Java接口和XML映射文件。

ANNOTATEDMAPPER
:生成的对象是 MyBatis 3.x 映射器基础结构的Java接口(使用注解),无XML文件。

习惯使用
XMLMAPPER
,配置如下:

<!--JavaDao层接口(XxxxDao.java)生成配置 targetProject+targetPackage构成全路径-->
<javaClientGenerator targetPackage="pers.hanchao.myssm.test.generator.dao" targetProject="src\main\java" type="XMLMAPPER">
<!--是否允许建立子包(对应MySql的scheme)-->
<property name="enableSubPackages" value="true"/>
</javaClientGenerator>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息