写代码,最常见的就是错误,很多错误都是我们常见的,把这些错误记录下来,更有助于我们的成长.
错误一:
这个看着是警告,不是一个错误,但是它会导致页面的样式丢失,
错误原因是springMVC的spring-mvc.xml配置文件缺少:
<mvc:resources location="/demo/" mapping="/demo/**"></mvc:resources>
<mvc:resources location="/themes/" mapping="/themes/**"></mvc:resources>
<mvc:resources location="/locale/" mapping="/locale/**"></mvc:resources>
<mvc:resources location="/" mapping="/**"></mvc:resources>
注:<mvc;resources mapping="***" location="***">标签是在spring3.0.4出现的,主要是用来进行静态资源的访问
错误二:Spring-MVC.xml的错误:
cvc-complex-type.2.4.c:The matching wildcard is strict, but no declaration can be found for element'mvc:resources'.
原因是spring-mvc.xml文件中的bean所引用的xsi.schemaLocation的mvc版本号不对.
该开始的版本为:
修改后的版本号:
这个版本号要和window->Preferences->xmlCatalog -中的spring-mvc.xsd的版本号保持一致,如下.
错误三:
publicjava.lang.String com.tgb.itoo.basic.controller.ProfessionalController.toList()
to{[/toProfessionalList],methods=[],params=[],headers=[],consumes=[],produces=[],custom=[]}:There is already 'ProfessionalController' bean method
publicjava.lang.String com.tgb.itoo.basic.controller.ProfessionalController.toList()mapped.
atorg.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1554)[spring-beans-4.0.8.RELEASE.jar:4.0.8.RELEASE]
atorg.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:539)[spring-beans-4.0.8.RELEASE.jar:4.0.8.RELEASE]
atorg.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:475)[spring-beans-4.0.8.RELEASE.jar:4.0.8.RELEASE]
atorg.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:302)[spring-beans-4.0.8.RELEASE.jar:4.0.8.RELEASE]
atorg.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:228)[spring-beans-4.0.8.RELEASE.jar:4.0.8.RELEASE]
atorg.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:298)[spring-beans-4.0.8.RELEASE.jar:4.0.8.RELEASE]
atorg.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)[spring-beans-4.0.8.RELEASE.jar:4.0.8.RELEASE]
atorg.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:706)[spring-beans-4.0.8.RELEASE.jar:4.0.8.RELEASE]
atorg.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:762)[spring-context-4.0.8.RELEASE.jar:4.0.8.RELEASE]
atorg.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:482)[spring-context-4.0.8.RELEASE.jar:4.0.8.RELEASE]
atorg.springframework.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext(FrameworkServlet.java:658)[spring-webmvc-4.0.8.RELEASE.jar:4.0.8.RELEASE]
atorg.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:624)[spring-webmvc-4.0.8.RELEASE.jar:4.0.8.RELEASE]
atorg.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:672)[spring-webmvc-4.0.8.RELEASE.jar:4.0.8.RELEASE]
atorg.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:543)[spring-webmvc-4.0.8.RELEASE.jar:4.0.8.RELEASE]
atorg.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:484)[spring-webmvc-4.0.8.RELEASE.jar:4.0.8.RELEASE]
atorg.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:136)[spring-webmvc-4.0.8.RELEASE.jar:4.0.8.RELEASE]
atjavax.servlet.GenericServlet.init(GenericServlet.java:242)[jboss-servlet-api_3.0_spec-1.0.2.Final-redhat-1.jar:1.0.2.Final-redhat-1]
atorg.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1194)[jbossweb-7.2.2.Final-redhat-1.jar:7.2.2.Final-redhat-1]
atorg.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1100)[jbossweb-7.2.2.Final-redhat-1.jar:7.2.2.Final-redhat-1]
atorg.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3591)[jbossweb-7.2.2.Final-redhat-1.jar:7.2.2.Final-redhat-1]
atorg.apache.catalina.core.StandardContext.start(StandardContext.java:3798)[jbossweb-7.2.2.Final-redhat-1.jar:7.2.2.Final-redhat-1]
atorg.jboss.as.web.deployment.WebDeploymentService.doStart(WebDeploymentService.java:156)[jboss-as-web-7.3.0.Final-redhat-14.jar:7.3.0.Final-redhat-14]
atorg.jboss.as.web.deployment.WebDeploymentService.access$000(WebDeploymentService.java:60)[jboss-as-web-7.3.0.Final-redhat-14.jar:7.3.0.Final-redhat-14]
atorg.jboss.as.web.deployment.WebDeploymentService$1.run(WebDeploymentService.java:93)[jboss-as-web-7.3.0.Final-redhat-14.jar:7.3.0.Final-redhat-14]
atjava.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)[rt.jar:1.8.0_25]
atjava.util.concurrent.FutureTask.run(FutureTask.java:266) [rt.jar:1.8.0_25]
atjava.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)[rt.jar:1.8.0_25]
atjava.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)[rt.jar:1.8.0_25]
atjava.lang.Thread.run(Thread.java:745) [rt.jar:1.8.0_25]
atorg.jboss.threads.JBossThread.run(JBossThread.java:122)
Caused by:java.lang.IllegalStateException: Ambiguous mapping found. Cannot map'professionalController' bean method
publicjava.lang.String com.tgb.itoo.basic.controller.ProfessionalController.toList()
to{[/toProfessionalList],methods=[],params=[],headers=[],consumes=[],produces=[],custom=[]}:There is already 'ProfessionalController' bean method
publicjava.lang.String com.tgb.itoo.basic.controller.ProfessionalController.toList()mapped.
atorg.springframework.web.servlet.handler.AbstractHandlerMethodMapping.registerHandlerMethod(AbstractHandlerMethodMapping.java:192)[spring-webmvc-4.0.8.RELEASE.jar:4.0.8.RELEASE]
atorg.springframework.web.servlet.handler.AbstractHandlerMethodMapping.detectHandlerMethods(AbstractHandlerMethodMapping.java:164)[spring-webmvc-4.0.8.RELEASE.jar:4.0.8.RELEASE]
atorg.springframework.web.servlet.handler.AbstractHandlerMethodMapping.initHandlerMethods(AbstractHandlerMethodMapping.java:124)[spring-webmvc-4.0.8.RELEASE.jar:4.0.8.RELEASE]
atorg.springframework.web.servlet.handler.AbstractHandlerMethodMapping.afterPropertiesSet(AbstractHandlerMethodMapping.java:103)[spring-webmvc-4.0.8.RELEASE.jar:4.0.8.RELEASE]
atorg.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping.afterPropertiesSet(RequestMappingHandlerMapping.java:126)[spring-webmvc-4.0.8.RELEASE.jar:4.0.8.RELEASE]
atorg.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1613)[spring-beans-4.0.8.RELEASE.jar:4.0.8.RELEASE]
atorg.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1550)[spring-beans-4.0.8.RELEASE.jar:4.0.8.RELEASE]
...29 more
这个问题是因为spring-mvc.xml配置文件配置controller的name或id有错.可以按照一下方式配置:
<bean id="professionalController" class="com.tgb.itoo.basic.controller.ProfessionalController">
<property name="professionalBean" ref="ProfessionalBean"></property>
<property name="institutionBean" ref="InstitutionBean"></property>
<property name="teacherBean" ref="TeacherBean"></property>
</bean>
或者:
<bean name="professionalController" class="com.tgb.itoo.basic.controller.ProfessionalController">
<property name="professionalBean" ref="ProfessionalBean"></property>
<property name="institutionBean" ref="InstitutionBean"></property>
<property name="teacherBean" ref="TeacherBean"></property>
</bean>
注意:springMVC配置文件 bean name 必须是小写字母开头
本次出现的错误,有2个错误是来自spring-mvc.xml配置文件的,所以写配置文件,要按照标准来写,可以避免很多不必要的问题.
希望分享的这些错误能给你带来帮助.