发表于: 2016-11-04 01:01:58
1 2322
今天完成的事情:
接11-2日 解决404中遇到的问题:
1)尝试在controller开头写一个System.out.println(111)语句,看看是不是有调到方法,结果控制台一点反应都没有,报错都没一个
检查web.xml,跟自己之前写的一个测通的项目中的web.xml对比,没发现配错的问题
检查springMVC.xml,看controller类的自动扫描有没配置对,也没问题;也指定了自动装配handlermapping(<mvc:annotation-driven />)
绝望之际,点进tomcat部署应用的目录,居然发现新写的rest接口文件根本没编译,查询解决办法,移除项目,关tomcat,clean项目,重新部署,发现.class文件出现了
2)然后输入url继续,报500,不过这次控制台令人感动的报错了
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'restStudentService': Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean found for dependency [me.service.StudentService]: expected at least 1 bean which qualifies as autowire candidate.
提示restStudentService没有创建bean对象;而这个类中我在昨天是已经测试通过了的
后来想,restStudentService是在spring-myBatis.xml文件中配置自动扫描的,应该是spring-myBatis.xml文件根本没加载,毕竟前几次测试都要手写代码加载创建的;查询知道,spring配置文件在springMVC中加载需要在web.xml放一个spring监听器
<!-- 加载spring-myBatis.xml配置 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring-myBatis.xml</param-value>
</context-param>
<!-- 配置spring监听器 -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
这里将项目重新部署到tomcat时会时不时的抽风报错(如下),报监听器加载失败(会直接导致web.xml设置的初始化失败,浏览器连接报HTTP Status 500 - Servlet.init() for servlet dispatcherServlet threw exception),用老办法移除项目,关tomcat,clean项目,重新部署,然后就好了
Error configuring application listener of class org.springframework.web.context.ContextLoaderListener
3)重新部署后,输入网址,控制台输出了下我的111,然后秒报错了,不过内心还是激动的,终于调用到rest接口方法了
看了下报错,大概就是转换失败,因为我想输出个网页,又不想自己写jsp了。。。就将调到的数据转换json了(方法前加@ResponseBody)
根据网上资料,在spring-myBatis.xml中加入如下配置(这里还要回头再看下,明明第一次看那个json教学的时候人家没加这配置都成功了。。。)
<!-- rest json related... start -->
<bean id="mappingJacksonHttpMessageConverter"
class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>application/json;charset=UTF-8</value>
</list>
</property>
</bean>
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<property name="messageConverters">
<list>
<ref bean="mappingJacksonHttpMessageConverter"/>
</list>
</property>
</bean>
<!-- rest json related... end -->
再次尝试,成功显示出了查询数据
任务二大体算完成了吧,太晚了,没有再配置增删改的接口
明天计划的事情:
了解下任务三,从今天起每天或多或少的看一些基础知识
遇到的问题:
jetty始终还是没去了解。。被无数的报错弄的头大,不知是我水平没达到还是学编程的都会这样
没有用PostMan/dhc测试接口,用的火狐的RESTClient,应该差不多吧
对于maven,也许以后可以更多的享受它的便利吧(比如打包、配置jar包),目前呢。。总卡在下载,所幸很多用到的都已经下载到本地仓库了
收获:
感觉很多报错可以看懂了,而且大概知道该往哪方面想了
评论