发表于: 2016-11-04 01:01:58

1 2328


今天完成的事情:

接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包),目前呢。。总卡在下载,所幸很多用到的都已经下载到本地仓库了

收获:

感觉很多报错可以看懂了,而且大概知道该往哪方面想了


返回列表 返回列表
评论

    分享到