appfuse 2.1 数据表 反向工程二次开发错误处理

来源:互联网 发布:金蝶软件免费版 编辑:程序博客网 时间:2024/04/29 04:14

appfuse官方说可以使用mvn appfuse:gen命令根据pojo或者数据表直接生成相应的DAO到表示层的全部文件,但在2.1.0struts-basic下实测是不行的,会出现莫名其妙的错误。

首先参考网上appfuse2.1.0的相关文章除掉一大片的错误直到可以BUILD SUCCESSFUL

接着参照http://blog.csdn.net/zhulin902/article/details/3935536(貌似这篇文章里面说的重复ID不怎么正确,不过我也没深究……)这篇文章做到mvn appfuse:gen-model这一步生成相应的pojo,但再往下一步做就会出错了,提示找不到User之类。这时候再运行原先可以通过的install和jetty:run虽然可以运行,但是会报JNDI错误。

WARN [main] SessionFactoryObjectFactory.addInstance(121) | Could not bind factory to JNDIjavax.naming.NamingException: Name is emptyat org.mortbay.naming.NamingContext.rebind(NamingContext.java:988)at org.mortbay.naming.local.localContextRoot.rebind(localContextRoot.java:265)at javax.naming.InitialContext.rebind(InitialContext.java:431)at org.hibernate.util.NamingHelper.bind(NamingHelper.java:97)at org.hibernate.impl.SessionFactoryObjectFactory.addInstance(SessionFactoryObjectFactory.java:113)at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:367)at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1842)at org.springframework.orm.hibernate3.LocalSessionFactoryBean.newSessionFactory(LocalSessionFactoryBean.java:860)at org.springframework.orm.hibernate3.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:779)at org.springframework.orm.hibernate3.AbstractSessionFactoryBean.afterPropertiesSet(AbstractSessionFactoryBean.java:211)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1477)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1417)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:291)at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:288)at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeansOfType(DefaultListableBeanFactory.java:398)at org.springframework.beans.factory.BeanFactoryUtils.beansOfTypeIncludingAncestors(BeanFactoryUtils.java:275)at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.detectPersistenceExceptionTranslators(PersistenceExceptionTranslationInterceptor.java:139)at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.<init>(PersistenceExceptionTranslationInterceptor.java:79)at org.springframework.dao.annotation.PersistenceExceptionTranslationAdvisor.<init>(PersistenceExceptionTranslationAdvisor.java:70)at org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor.setBeanFactory(PersistenceExceptionTranslationPostProcessor.java:99)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeAwareMethods(AbstractAutowireCapableBeanFactory.java:1439)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1408)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:291)at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:288)at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)at org.springframework.context.support.AbstractApplicationContext.registerBeanPostProcessors(AbstractApplicationContext.java:710)at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:410)at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:276)at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:197)at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:47)at org.mortbay.jetty.handler.ContextHandler.startContext(ContextHandler.java:549)at org.mortbay.jetty.servlet.Context.startContext(Context.java:136)at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1282)at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:518)at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:499)at org.mortbay.jetty.plugin.Jetty6PluginWebAppContext.doStart(Jetty6PluginWebAppContext.java:115)at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)at org.mortbay.jetty.handler.HandlerCollection.doStart(HandlerCollection.java:152)at org.mortbay.jetty.handler.ContextHandlerCollection.doStart(ContextHandlerCollection.java:156)at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)at org.mortbay.jetty.handler.HandlerCollection.doStart(HandlerCollection.java:152)at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)at org.mortbay.jetty.Server.doStart(Server.java:224)at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)at org.mortbay.jetty.plugin.Jetty6PluginServer.start(Jetty6PluginServer.java:132)at org.mortbay.jetty.plugin.AbstractJettyMojo.startJetty(AbstractJettyMojo.java:454)at org.mortbay.jetty.plugin.AbstractJettyMojo.execute(AbstractJettyMojo.java:396)at org.mortbay.jetty.plugin.AbstractJettyRunMojo.execute(AbstractJettyRunMojo.java:210)at org.mortbay.jetty.plugin.Jetty6RunMojo.execute(Jetty6RunMojo.java:184)at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:490)at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:694)at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeStandaloneGoal(DefaultLifecycleExecutor.java:569)at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:539)at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:387)at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:348)at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:180)at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:328)at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:138)at org.apache.maven.cli.MavenCli.main(MavenCli.java:362)at org.apache.maven.cli.compat.CompatibleMain.main(CompatibleMain.java:60)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.lang.reflect.Method.invoke(Method.java:601)at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)at org.codehaus.classworlds.Launcher.main(Launcher.java:375)


根据之前反映的错误http://appfuse.547863.n4.nabble.com/problem-with-hibernate-tutorial-imports-for-annotations-td2541421.html发现是在之前的过程中莫名奇妙的被修改了hibernate.cfg.xml文件,把里面多出来的 name="" 去掉以后一切就恢复原样了。

顺便记录一下自己犯的bug免得自己再犯,写POJO的时候引用外部对象记得把原先的字段field删掉,老想着既可以看到ID值有可以引用会带来好多错误的……

DAO往上的层个人建议还是勤快点手写吧,前面那个错误搞了N久才解决掉,貌似2.1.0bug足够多…………

原创粉丝点击