• API和schema开发过程问题汇总


    场景:在日常工作中很多都是重复性的劳动,有的坑踩过一次下次很可能还回踩到,所以很有必要将这些问题记录下来,提升工作效率!

    1 API

    2 schema

    • 问题:提示schame中有元素没有定义

    这个时候需要在所有schema文件中进行全文搜索比对没有定义的元素,然后进行定义即可。这里推荐是用sublime的全文搜索。

    ctrl+shift+F 在文件夹内查找,与普通编辑器不同的地方是sublime允许添加多个文件夹进行查找

    3 lfcp-tset

    3.1 windows部署可执行jar包进行测试

    windows下执行可执行jar包过程:

    • 测试类:
    package tt;
    /** 
     * @author lxw 
     * @describe
     * @date 2017年6月23日 上午10:43:28 
     */
    public class Hello {
        public static void main(String[] args){
            String args0 = args[0]; //命令行接受的参数,后期改造可以用于读取文件中的数据
            String args1 = args[1];
            System.out.println("Hello,args0:"+args0+",arg1:"+args1);
        }
    
    }
    • 导出jar包:

    Export——> Java——>Runable JAR File

    • 在jar所在的目录下,打开命令行窗口,执行命令
      java -jar tt.jar 00 01 

    3.2 linux部署可执行jar包进行测试

    linux下部署过程和windows类似,导出jar包的方式一样,所不同的是jar包的可执行脚本datagram-test.sh

    sourceMsgPath=/home/lfcpapi/lfcp-java-test/msgs/
    schemaPath=/home/lfcpapi/lfcp-java-test/schema/lfcp-schema.zip
    
    
    for i in $HOME/lfcp-java-test/lib/*;
        do CLASSPATH=$i:"$CLASSPATH";
    done
    
    for i in $HOME/lfcp-java-test/ext/*;
        do CLASSPATH=$i:"$CLASSPATH";
    done
    
    java  test.datagram.TestDatagram $schemaPath $sourceMsgPath$1
    
    echo "Success!"

     第一个for代表jar包所依赖的jar文件,有就放,没有忽视。

    第二个for表示执行性jar包的存放位置。

    这里在执行可执行jar包时候出入两个参数:schema参数和报文的xml名称。schema参数直接写死了,每次执行

    sh datagram-test.sh 101.xml

    即可。

    其它项目仿照这个过程编写即可。

    3.3 问题分析

    • 问题:

    对api和schema的测试分别在一台linux和AIX服务器上进行,但是在AIX服务器上上传完所需的jar,schema后出现如下错误:

     刚开始是以为java环境错误,捣鼓半天也没弄明白,仔细分析发现是上传的szlfcp-bank-datagram-1.0.5.jar包有问题,这个问题之所以被忽略,是因为同样的jar包上传到linux服务器就是没问题的。

    这里在aix中出现该问题,可能是aix的传输文件机制和linux不同导致的,下次遇到这种问题,首先去对应的jar包中查找缺失的文件是否存在,然后确定是否是文件上传不完整导致的!

    问题原因依旧是jar包有问题!

    几天后又遇到同样的问题,但是反复上传了几次jar包问题依旧存在。最后把打开的ftp连接关闭掉,重新上传了一次jar包,问题解决!

    •  问题

     在部署一个依赖main函数执行的程序时候,遇到以下错误

    Exception in thread "main" org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [szfs.basedata.server.service.DataVersionService] is defined
        at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBean(DefaultListableBeanFactory.java:318)
        at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:985)
        at szfs.basedata.server.BaseDataApplication.main(BaseDataApplication.java:34)

     但是我到该工程的libs目录下面是能够看到DataVersionService这个bean的存在的。

    刚开始以为文件不完整导致,所以就整体替换了程序中的文件(折腾了好久好久~),但是发现同样的程序在其它机器上面就能够正常的执行,

    后来想到既然程序相同,不同机器执行结果不同,可能就是jdk的环境变量不一致导致的,所以我在执行脚本上面加了一句

    source /etc/profile

    最后程序就能够正常的启动了。 

     

  • 相关阅读:
    leetcode 437. 路径总和 III
    leetcode 113. 路径总和 II
    题解 【CF387B】George and Round
    题解 【CF489B】 BerSU Ball
    题解【2.23考试T3】val
    题解【2.23考试T1】div
    题解 【洛谷P4290】 [HAOI2008]玩具取名
    题解 【洛谷P1035】[NOIP2002]级数求和
    题解【洛谷P1046】[NOIP2005] 陶陶摘苹果
    题解【洛谷P1618】 三连击(升级版)
  • 原文地址:https://www.cnblogs.com/lixuwu/p/6395956.html
Copyright © 2020-2023  润新知