想将一些通用的controller写到一个公用的CommModule里面,然后所有module extends CommModule ,但是启动报错:
public class BaseModule {
/**
* 获取当前HttpServletRequest信息
*
* @return
* @throws CommonException
*/
protected HttpServletRequest getRequest() throws CommonException {
return Mvcs.getReq();
}
/**
* 获取dao
*
* @return
* @throws CommonException
*/
protected NutDao getDao() throws CommonException {
NutDao nutDao = (NutDao) Mvcs.getIoc().get(Dao.class);
return nutDao;
}
}
CommModule
public class CommModule<T> extends BaseModule {
protected Service<T> service;
public CommModule(Service service) {
this.service = service;
}
@POST
@At
public T add(@Param("..") T bean) {
bean = service.insert(bean);
return bean;
}
@PUT
@At
public T update(@Param("..") T bean) {
service.updateIgnoreNull(bean);
return bean;
}
@DELETE
@At
public void delete(@Param("id") String id) {
service.vDelete(id);
}
}
CompanyModule (举例业务module)
/**
* 公司信息
*/
@IocBean(args = {"refer:crmCompanyService"})
@At("/company")
public class CompanyModule extends CommModule<Company> {
public CompanyModule(CompanyService service) {
super(service);
}
@POST
@At
public void hello(){
}
}
报错信息:
[org.nutz.ioc.impl.NutIoc.<init>(NutIoc.java:98) 2017-02-11 01:09:48][INFO ]:NutIoc init begin ...
[org.nutz.ioc.impl.NutIoc.<init>(NutIoc.java:115) 2017-02-11 01:09:48][INFO ]:... NutIoc init complete
[org.nutz.mvc.impl.NutLoading.evalUrlMapping(NutLoading.java:159) 2017-02-11 01:09:48][INFO ]:Build URL mapping by org.nutz.mvc.impl.UrlMappingImpl ...
[org.nutz.mvc.impl.NutLoading.createViewMakers(NutLoading.java:369) 2017-02-11 01:09:48][DEBUG]:@Views(ResultViewMaker.class,DefaultViewMaker.class)
[org.nutz.mvc.impl.NutLoading.createChainMaker(NutLoading.java:266) 2017-02-11 01:09:48][DEBUG]:@ChainBy(org.nutz.mvc.impl.NutActionChainMaker)
[org.nutz.mvc.impl.Loadings.scanModules(Loadings.java:154) 2017-02-11 01:09:48][DEBUG]:module class location 'file:/E:/download/local_projects/all_server/coagent/target/coagent/WEB-INF/classes/com/sharefree/module/MainModule.class'
[org.nutz.mvc.impl.Loadings.scanModuleInPackage(Loadings.java:184) 2017-02-11 01:09:48][DEBUG]: > scan 'com.sharefree.module'
[org.nutz.resource.Scans.scan(Scans.java:274) 2017-02-11 01:09:48][DEBUG]:Found 7 resource by src( com/sharefree/module/ ) , regex( ^.+[.]class$ )
[org.nutz.mvc.impl.Loadings.checkModule(Loadings.java:198) 2017-02-11 01:09:48][DEBUG]: >> add 'com.sharefree.module.CommModule'
[org.nutz.mvc.impl.Loadings.checkModule(Loadings.java:198) 2017-02-11 01:09:48][DEBUG]: >> add 'com.sharefree.module.crm.CompanyModule'
[org.nutz.mvc.impl.Loadings.checkModule(Loadings.java:198) 2017-02-11 01:09:48][DEBUG]: >> add 'com.sharefree.module.system.LoginModule'
[org.nutz.mvc.impl.Loadings.checkModule(Loadings.java:198) 2017-02-11 01:09:48][DEBUG]: >> add 'com.sharefree.module.system.MenuModule'
[org.nutz.mvc.impl.Loadings.checkModule(Loadings.java:198) 2017-02-11 01:09:48][DEBUG]: >> add 'com.sharefree.module.system.RoleModule'
[org.nutz.mvc.impl.processor.ModuleProcessor.init(ModuleProcessor.java:61) 2017-02-11 01:09:48][INFO ]:Create Module obj without Ioc --> class com.sharefree.module.CommModule
[org.nutz.mvc.impl.NutActionChainMaker.eval(NutActionChainMaker.java:51) 2017-02-11 01:09:48][DEBUG]:Eval FAIL!! : public java.lang.Object com.sharefree.module.CommModule.add(java.lang.Object)
org.nutz.lang.born.BorningException: Fail to born 'com.sharefree.module.CommModule'
by args: [] because: No suitable Constructor or Factory Method!!
at org.nutz.lang.Mirror.born(Mirror.java:988)
at org.nutz.mvc.impl.processor.ModuleProcessor.init(ModuleProcessor.java:63)
at org.nutz.mvc.impl.NutActionChainMaker.eval(NutActionChainMaker.java:38)
at org.nutz.mvc.impl.UrlMappingImpl.add(UrlMappingImpl.java:54)
at org.nutz.mvc.impl.NutLoading.evalUrlMapping(NutLoading.java:204)
at org.nutz.mvc.impl.NutLoading.load(NutLoading.java:108)
at org.nutz.mvc.ActionHandler.<init>(ActionHandler.java:19)
at org.nutz.mvc.NutFilter._init(NutFilter.java:87)
at org.nutz.mvc.NutFilter.init(NutFilter.java:65)
at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:281)
at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:262)
at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:107)
at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4775)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5452)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:633)
at org.apache.catalina.startup.HostConfig.manageApp(HostConfig.java:1558)
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.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:301)
at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819)
at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801)
at org.apache.catalina.mbeans.MBeanFactory.createStandardContext(MBeanFactory.java:620)
at org.apache.catalina.mbeans.MBeanFactory.createStandardContext(MBeanFactory.java:567)
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.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:301)
at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819)
at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801)
at javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1468)
at javax.management.remote.rmi.RMIConnectionImpl.access$300(RMIConnectionImpl.java:76)
at javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1309)
at javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1401)
at javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:829)
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 sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:324)
at sun.rmi.transport.Transport$1.run(Transport.java:200)
at sun.rmi.transport.Transport$1.run(Transport.java:197)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Transport.java:196)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:568)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:826)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:683)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:682)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
[org.nutz.mvc.impl.NutLoading.load(NutLoading.java:125) 2017-02-11 01:09:48][ERROR]:Error happend during start serivce!
org.nutz.lang.born.BorningException: Fail to born 'com.sharefree.module.CommModule'
by args: [] because: No suitable Constructor or Factory Method!!
at org.nutz.lang.Mirror.born(Mirror.java:988)
at org.nutz.mvc.impl.processor.ModuleProcessor.init(ModuleProcessor.java:63)
at org.nutz.mvc.impl.NutActionChainMaker.eval(NutActionChainMaker.java:38)
at org.nutz.mvc.impl.UrlMappingImpl.add(UrlMappingImpl.java:54)
at org.nutz.mvc.impl.NutLoading.evalUrlMapping(NutLoading.java:204)
at org.nutz.mvc.impl.NutLoading.load(NutLoading.java:108)
at org.nutz.mvc.ActionHandler.<init>(ActionHandler.java:19)
at org.nutz.mvc.NutFilter._init(NutFilter.java:87)
at org.nutz.mvc.NutFilter.init(NutFilter.java:65)
at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:281)
at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:262)
at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:107)
at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4775)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5452)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:633)
at org.apache.catalina.startup.HostConfig.manageApp(HostConfig.java:1558)
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.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:301)
at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819)
at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801)
at org.apache.catalina.mbeans.MBeanFactory.createStandardContext(MBeanFactory.java:620)
at org.apache.catalina.mbeans.MBeanFactory.createStandardContext(MBeanFactory.java:567)
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.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:301)
at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819)
at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801)
at javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1468)
at javax.management.remote.rmi.RMIConnectionImpl.access$300(RMIConnectionImpl.java:76)
at javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1309)
at javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1401)
at javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:829)
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 sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:324)
at sun.rmi.transport.Transport$1.run(Transport.java:200)
at sun.rmi.transport.Transport$1.run(Transport.java:197)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Transport.java:196)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:568)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:826)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:683)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:682)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
[org.nutz.mvc.impl.NutLoading.load(NutLoading.java:127) 2017-02-11 01:09:48][ERROR]:try to depose ioc
[org.nutz.ioc.impl.NutIoc.depose(NutIoc.java:255) 2017-02-11 01:09:48][INFO ]:org.nutz.ioc.impl.NutIoc@893572605 is closing. startup date [17-02-11 01:09:48.303]
[org.nutz.ioc.impl.NutIoc.depose(NutIoc.java:262) 2017-02-11 01:09:48][INFO ]:org.nutz.ioc.impl.NutIoc@893572605 is deposed. startup date [17-02-11 01:09:48.303]
Feb 11, 2017 1:09:48 AM org.apache.catalina.core.StandardContext startInternal
严重: Error filterStart
Feb 11, 2017 1:09:48 AM org.apache.catalina.core.StandardContext startInternal
严重: Context [] startup failed due to previous errors
[2017-02-11 01:09:48,387] Artifact coagent:war exploded: Error during artifact deployment. See server log for details.
Feb 11, 2017 1:09:54 AM org.apache.catalina.startup.HostConfig deployDirectory
信息: Deploying web application directory D:\Program Files\Java\apache-tomcat-7.0.47\webapps\manager