👋
最近在学习Java百度地图全套教程,在第二章的实操部署过程中发现之前的环境相对来说比较老旧,很多地方有了很大变动,谨以此文来记载部署此项目时遇到的一些坑!
附上链接:
【黑马程序员Java百度地图全套教程,从Java地图基础API到实战案例应用(地图找房、轻骑小程序、金运物流等)】 https://www.bilibili.com/video/BV1ue4y1R712/?p=49&share_source=copy_web&vd_source=2f2ea1b9a172bfb9919490c14b75df39
1、安装nodejs
因为我的电脑本身就安装好了node.js,所以并没有进行安装。但是在执行以下命令时,出现了报错信息
npm i -g @tarojs/cli@3.2.8
npm install
npm run dev:weapp
出现的报错信息如下:
发现是权限不足的原因,遂重新检查了环境变量,没有发现问题。
最后发现只需要更改默认安装路径【C:\Program Files\nodejs】下,我们自己创建的【node_cache】和【node_global】两个文件夹的操作权限,具体操作如下所示:
选择【node_cache】点击鼠标右键选择属性,打开其属性对话框,切换到”安全“项,点击编辑按钮,打开【node_cache】的权限对话框,选中Users将Users的权限下的“完全控制”和“修改”两项勾选上(默认是不勾选的),点击确定即可。
如此,关于权限不足的报错解决,后面得以继续进行。
2、后端程序my-qingqi
导入后,配置信息已经做了相应的修改。但是在进行前后端联调时,发现请求失败,爆红,同时控制台报错。
报错原因:
是由于缺少jaxb-api包导致的。在Java 8以及以前的版本,是默认包含jaxb这个jar包的;但是在java SE 9.0就不再包含着个包了,如果使用则需要手动引进。
解决方法:
- 降低JDK版本到1.8
- 手动导入以下包:
<!--解决Handler dispatch failed;nested exception is java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter-->
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.3.0</version>
</dependency>
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-impl</artifactId>
<version>2.3.0</version>
</dependency>
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-core</artifactId>
<version>2.3.0</version>
</dependency>
<dependency>
<groupId>javax.activation</groupId>
<artifactId>activation</artifactId>
<version>1.1.1</version>
</dependency>