【java】itoo项目实战之常见问题二

     写代码,最常见的就是错误,很多错误都是我们常见的,把这些错误记录下来,更有助于我们的成长.

错误一:

这个看着是警告,不是一个错误,但是它会导致页面的样式丢失,

错误原因是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.schemaLocationmvc版本号不对.

该开始的版本为:


修改后的版本号:



这个版本号要和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配置文件的,所以写配置文件,要按照标准来写,可以避免很多不必要的问题.

     希望分享的这些错误能给你带来帮助.


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

弯_弯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值