背景
开发基于webview 混合开发的安卓或者IOS应用在线打包后台,便于项目过程中前端调试App中的Html效果。
后台设计简单,主要包含应用包名管理和打包参数的传递。后台发现包名管理可以使用现有的数据字典模块,关于
数据字典模块的应用说明可以参考:
https://blog.youkuaiyun.com/qq_39530754/article/details/85130249###
在集成此模块的过程中遇到了很多小问题:
1、引用的jar包模块中有配置变量,但是自己后台中没有配置报错:
刚开始遇到这种错误,总觉得是莫名地报了,因为之前自己的后台能正常运行,老是觉得是否重启之后就可以了,而没有去从问题的表征去逐步分析到底具体问题在哪里,耗费很多时间以及无力挣扎的情绪诞生。
2、Swagger 没有配置扫码路径,导致无限制查找扫描导致栈溢出
2020-06-15 15:56:08,265 [localhost-startStop-1] DEBUG [springfox.documentation.spring.web.readers.parameter.ModelAttributeParameterExpander] - Attempting to expand field: springfox.documentation.spring.web.readers.parameter.ModelAttributeField@b005bc5
<dependency>
<groupId>com.XXX</groupId>
<artifactId>XXXX-swagger</artifactId>
<version>${XXXX-frame.version}</version>
</dependency>
api.basePackage 这个是内部定义的一个扫描路径变量:
3、文件上传路径配置window路径巧合导致出现\u
只能说有时候点背,喝凉水都撒牙缝。。。
4、集成数据字典模块JAR包先后出现使用老版本要切换站点库,随后发现老版本JAR包数据库字段和实际表字段不符,
以及更换成新版本JAR,然后又出现不需要切换站点库,来回捣腾了许久。 其实这个就是因为自己看的是SVN源码,但是
代码的提交时比较随意的,没有与JAR包对应起来。所以调试问题还是要看调试时的JAR的代码,只有那里面的才是你逻辑分析
的依据。不然就会看起来出现牛头不对马嘴让你怀疑人生的现象,代码是不会骗人的,它给你反馈什么,就确实是那里有问题,一般情况对于我等常见的场景来说都是如此。
5、关于调试部署时的命令操作使用
eclipse clean
maven clean
tomcat clean
https://blog.youkuaiyun.com/qq_34581118/article/details/75530203
自己的理解:
maven clean 会清楚target目录
maven package 会重新编译打包
tomcat clean 会清楚部署目录下的文件,需要重新publish
tomcat start 只会根据部署目录下的内容进行加载启动,不会编译项目,重新放置jar 包
自己之前就误以为tomcat启动也会执行重新编译JAR并进行放置部署的功能,导致又出现了自以为是idea有问题的现象。
Caused by: org.springframework.core.NestedIOException: Failed to parse mapping resource: 'URL [jar:file:/E:/Eclipse_Workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/packapp-war/WEB-INF/lib/packapp-api-0.0.1-SNAPSHOT.jar!/mappings/AppPackageNameMapper.xml]'; nested exception is org.apache.ibatis.builder.BuilderException: Error parsing Mapper XML. Cause: org.apache.ibatis.builder.BuilderException: Error resolving class. Cause: org.apache.ibatis.type.TypeException: Could not resolve type alias 'com.hnac.hzinfo.packapp.entity.AppPackageName'. Cause: java.lang.ClassNotFoundException: Cannot find class: com.hnac.hzinfo.packapp.entity.AppPackageName
当使用maven clean 之后,直接tomcat部署其还是有资源xml,但是java类这些并没有打包。