2019年10月

HV000183: Unable to initialize 'javax.el.ExpressionFactory'错误

错误原因:

在tomcat中运行没有问题,但是使用springboot 的JUnit进行单元测试时报错。这是由于在test class中添加了@value("${..}"),这需要需要添加el-api和它的实现的支持,而在tomcat中是有这两个jar包的,解决方案,在pom中添加如下依赖即可。

解决方法


        <!--参数验证-->
        <!--jsr 303-->
        <!-- https://mvnrepository.com/artifact/javax.validation/validation-api -->
        <dependency>
            <groupId>javax.validation</groupId>
            <artifactId>validation-api</artifactId>
            <version>2.0.1.Final</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.hibernate.validator/hibernate-validator -->
        <dependency>
            <groupId>org.hibernate.validator</groupId>
            <artifactId>hibernate-validator</artifactId>
            <version>6.0.17.Final</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.apache.tomcat/tomcat-el-api -->
        <dependency>
            <groupId>org.apache.tomcat</groupId>
            <artifactId>tomcat-el-api</artifactId>
            <version>9.0.27</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.apache.tomcat/tomcat-jasper-el -->
        <dependency>
            <groupId>org.apache.tomcat</groupId>
            <artifactId>tomcat-jasper-el</artifactId>
            <version>9.0.27</version>
        </dependency>

前言

目前的一个项目有两个分支,master和v2,提交的时候在家里是master,在公司是v2,把v2的提交后、切换到master,本地代码没有同步更新了,按照网上的方法很多都很简单,git merge v2 很简单的一句话,而正确的姿势是

    git checkout v2    
    git merge master    
    git checkout master    
    git push origin master
    

稀疏数组

  • 数组第一行为,数组的基本信息
public class ChessArray{
    public static void main(String[] args){
        int[][] sparseArr=new int[11][11];
        sparseArr[1][2]=2;
        sparseArr[2][3]=3;
        for(int[] arr : sparseArr){
            for(int i:arr){
                System.out.printf("%d   ",i);
            }
            System.out.println();
        }
        int sum = 0;
        for(int i=0;i<11;i++){
            for(int j=0;j<11;j++){
                if(sparseArr[i][j]!=0){
                    sum++;
                }
                
            }
        }
        System.out.println("sum="+sum);
        System.out.println("==========");
        int[][] chessArr=new int[sum+1][3];
        chessArr[0][0]=11;
        chessArr[0][1]=11;
        chessArr[0][2]=sum;
        int n=0;
        for(int i=0;i<11;i++){            
            for(int j=0;j<11;j++){
                if(sparseArr[i][j]!=0){
                    n++;
                    chessArr[n][0]=i;
                    chessArr[n][1]=j;
                    chessArr[n][2]=sparseArr[i][j];
                }
            }
        }
        for(int i=0;i<chessArr.length;i++){
            System.out.printf("%d %d  %d",chessArr[i][0],chessArr[i][1],chessArr[i][2]);
            System.out.println();
        }
    }
    
}