JaveWeb项目开发错误汇总

版权所有, 律师函警告!
本文链接: https://blog.csdn.net/qq_41490274/article/details/102024184
  1. 加载css到一半, 页面显示不完整, 其实是请求资源过程中服务器发生了异常500

    原因是自动转换时间错误,需要的日期是String类型,传来的是Date类型.

  2. 查询结果对象注入数据库字段外的结果

    	@Select("select * from orders")
    	//com.tsb.dao.ProductDao.findProductById通过id查询返回一个product对象,product存入对象order成员变量中
        @Results({
                @Result(property = "product",
                        column = "productId",
                        javaType = Product.class,
                        one = @One(select = "com.tsb.dao.ProductDao.findProductById")
                )
        })
        List<Order> findAll();
    
  3. 注解sql语句使用对象属性中对象的属性

    	@Insert("insert into order insert into orders values(" +
                "order_seq.nextval,"+
                "#{orderNum},"+
                "#{orderTime},"+
                "#{peopleCount},"+
                "#{orderDesc},"+
                "#{payType},"+
                "#{orderStatus},"+
                "#{product.id}"+
                ")")
        void save(Order order);
    
  4. 下拉选择提交传入对象属性中对象的属性

    <select class="form-control select2" style="width: 100%" name="product.id">
    	<%--TODO 数据回显--%>
    	<c:forEach items="${productList}" var="product">
    		<option value="${product.id}">${product.productName}</option>
    	</c:forEach>
    </select>
    
  5. org.springframework.web.filter.DelegatingFilterProxy’ is not assignable to ‘javax.servlet.Filter’

    解决:在spring项目的classpath中有两个spring 的jar包,删除一个就行.或者是maven项目的pom.xml文件里依赖了两个spring jar包,删一个就行.

  6. log2j日志工具报红Cannot resolve class 'Log4jConfigListener配置

    maven依赖:

    		<dependency>
                <groupId>org.apache.logging.log4j</groupId>
                <artifactId>log4j-api</artifactId>
                <version>2.10.0</version>
            </dependency>
    		<dependency>
                <groupId>org.apache.logging.log4j</groupId>
                <artifactId>log4j-core</artifactId>
                <version>2.10.0</version>
            </dependency>
            <dependency>
                <groupId>org.apache.logging.log4j</groupId>
                <artifactId>log4j-web</artifactId>
                <version>2.9.1</version>
            </dependency>
    

    classpath下放置log4j2.xml:

    <?xml version="1.0" encoding="UTF-8"?>
    <!--日志级别以及优先级排序: OFF > FATAL > ERROR > WARN > INFO > DEBUG > TRACE > ALL -->
    <!--Configuration后面的status,这个用于设置log4j2自身内部的信息输出,可以不设置,当设置成trace时,你会看到log4j2内部各种详细输出-->
    <!--monitorInterval:Log4j能够自动检测修改配置 文件和重新配置本身,设置间隔秒数-->
    <configuration status="WARN" monitorInterval="30">
        <!--先定义所有的appender-->
        <appenders>
            <!--这个输出控制台的配置-->
            <console name="Console" target="SYSTEM_OUT">
                <!--输出日志的格式-->
                <PatternLayout pattern="[%d{HH:mm:ss:SSS}] [%p] - %l - %m%n"/>
            </console>
            <!--文件会打印出所有信息,这个log每次运行程序会自动清空,由append属性决定,这个也挺有用的,适合临时测试用-->
            <File name="log" fileName="log/test.log" append="false">
                <PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %class{36} %L %M - %msg%xEx%n"/>
            </File>
            <!-- 这个会打印出所有的info及以下级别的信息,每次大小超过size,则这size大小的日志会自动存入按年份-月份建立的文件夹下面并进行压缩,作为存档-->
            <RollingFile name="RollingFileInfo" fileName="${sys:user.home}/logs/info.log"
                         filePattern="${sys:user.home}/logs/$${date:yyyy-MM}/info-%d{yyyy-MM-dd}-%i.log">
                <!--控制台只输出level及以上级别的信息(onMatch),其他的直接拒绝(onMismatch)-->
                <ThresholdFilter level="info" onMatch="ACCEPT" onMismatch="DENY"/>
                <PatternLayout pattern="[%d{HH:mm:ss:SSS}] [%p] - %l - %m%n"/>
                <Policies>
                    <TimeBasedTriggeringPolicy/>
                    <SizeBasedTriggeringPolicy size="100 MB"/>
                </Policies>
            </RollingFile>
            <RollingFile name="RollingFileWarn" fileName="${sys:user.home}/logs/warn.log"
                         filePattern="${sys:user.home}/logs/$${date:yyyy-MM}/warn-%d{yyyy-MM-dd}-%i.log">
                <ThresholdFilter level="warn" onMatch="ACCEPT" onMismatch="DENY"/>
                <PatternLayout pattern="[%d{HH:mm:ss:SSS}] [%p] - %l - %m%n"/>
                <Policies>
                    <TimeBasedTriggeringPolicy/>
                    <SizeBasedTriggeringPolicy size="100 MB"/>
                </Policies>
                <!-- DefaultRolloverStrategy属性如不设置,则默认为最多同一文件夹下7个文件,这里设置了20 -->
                <DefaultRolloverStrategy max="20"/>
            </RollingFile>
            <RollingFile name="RollingFileError" fileName="${sys:user.home}/logs/error.log"
                         filePattern="${sys:user.home}/logs/$${date:yyyy-MM}/error-%d{yyyy-MM-dd}-%i.log">
                <ThresholdFilter level="error" onMatch="ACCEPT" onMismatch="DENY"/>
                <PatternLayout pattern="[%d{HH:mm:ss:SSS}] [%p] - %l - %m%n"/>
                <Policies>
                    <TimeBasedTriggeringPolicy/>
                    <SizeBasedTriggeringPolicy size="100 MB"/>
                </Policies>
            </RollingFile>
        </appenders>
        <!--然后定义logger,只有定义了logger并引入的appender,appender才会生效-->
        <loggers>
            <!--过滤掉spring和mybatis的一些无用的DEBUG信息-->
            <logger name="org.springframework" level="INFO"></logger>
            <logger name="org.mybatis" level="INFO"></logger>
            <root level="all">
                <appender-ref ref="Console"/>
                <appender-ref ref="RollingFileInfo"/>
                <appender-ref ref="RollingFileWarn"/>
                <appender-ref ref="RollingFileError"/>
            </root>
        </loggers>
    </configuration>
    

    创建pageHelper配置文件SqlMapConfig.xml让mybatis自动识别数据库:

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE configuration
            PUBLIC "-//mybatis.org//DTDConfig3.0//EN"
            "http://mybatis.org/dtd/mybatis-3-config.dtd">
    <configuration>
        <plugins>
            <!--引入分页插件,不用指定数据库方言,mybatis自动选择-->
            <plugin interceptor="com.github.pagehelper.PageInterceptor"/>
        </plugins>
    </configuration>
    
    
  7. Cause: java.sql.SQLException: 无效的列类型: 1111

    指定参数类型@Select("select * from sys_user where id=#{userId,jdbcType=NUMERIC}")

  8. Request processing failed; nested exception is java.lang.NullPointerException

    与提交name不一样的参数名, 需要单独指定!

    public ModelAndView addUserRoleUI(@RequestParam(name = "id") Integer userId)
    
  9. Request processing failed; nested exception is org.springframework.jdbc.BadSqlGrammarException:

    sql语句编写错误

  10. There is no getter for property named ‘userName’ in ‘class com.tsb.domain.SysLog’

    mybatis在自动存储一个对象的属性时, 参数名字#{userName}和实际对象属性username没有配对.改为#{username}

  11. 九月 29, 2019 6:15:08 下午 org.apache.catalina.core.StandardContext filterStart严重: Exception starting filter CharacterEncodingFilter

    java.lang.ClassNotFoundException: org.springframework.web.filter.CharacterEncodingFilter

    pom依赖问题

  12. Caused by: com.alibaba.dubbo.remoting.RemotingException: com.alibaba.dubbo.rpc.RpcException: Failed to invoke remote proxy method delete to registry://192.168.200.148:2181/com.alibaba.dubbo.registry.RegistryService?

    分布式项目,项目需要全部重启。

  13. angularJs和@RequestBody , 请求体和get请求分开接收:

    后端接收数据:

    @RequestMapping("/search")
    public PageResult search(@RequestBody Brand brand, Integer page, Integer rows)
    

    前端发送数据:

    $http.post('../brand/search.do?page=' + page + '&rows=' + rows, $scope.searchEntity)
    
  14. 400 (Bad Request)

    Controller层方法多个参数, 其中一个参数加上注解@RequestBody:
    在这种情况下, 需要get和post同时请求, 其中get/post都不能为空.
    在这里插入图片描述
    在这里插入图片描述

  15. angularJs点击按钮不触发ng-click事件:

    input元素需要添加属性: type=‘button’

猜你喜欢

转载自blog.csdn.net/qq_41490274/article/details/102024184