此篇记录Sommer在学习、使用Java做软件开发过程中遇到的各种棘手问题。
1. 安装的jdk\lib文件夹下没有tools.jar文件
原因:安装jdk过程中会让你选择jdk和jre的安装目录,如果你设置成一样的话jre\lib下的jar文件会覆盖jdk\lib的jar文件,导致tools.jar丢失。解决方法:将这两个安装路径设成不一样的就行啦。
2. 运行spring framework项目出错,
文件中提示:
xsi:schemaLocation 里面每组
publicID和SystemId是连续的,不能穿插
3. maven项目报错 failure to transfer org.apache.maven-plugin-api:jar:2.0.6 from...
原因:更改了eclipse maven插件的版本或maven仓库,导致下载下来的包和之前的不一致。
解决方法:在本地仓库找到这个下载的包,将其删除,重新maven clean install。
4. maven updateProject 速度慢的问题
原因:引用验证文件种类过多
解决方法:windows-preferences-general-validation将不需要验证的文件勾去掉。
5. 不同版本eclipse workspace 要设在不同文件夹,以免造成冲突。
6. Parameter 'xxx' not found. Available parameters are [1, 0, param1, param2]
原因:Mapper接口的方法没有参数没有加:@Param("xxx")
7. java.lang.IllegalStateException: Ambiguous mapping found. Cannot map ‘xxx’
原因: 在springmvc中不能同时映射一个名字(@RequestMapping("/xxx")
8. post not support
先检查angular service和Spring MVC的请求方法
再检查post的参数是否为unfefined?请求体是否符合规范?后台spring mvc是否报错?是不是SQL语句的问题?
9. 当JS controller里面出现
angularjs object is not a function,检查一下controller注入的资源和function的参数是否对得上。在不同浏览器中查看出错信息会有额外的帮助。
10. 如果确定后台controller返回的response格式没有问题,而前台出现json格式解析错误,如:SyntaxError: Unexpected token [ at Object.parse (native) , 则可能是因为前台请求的线程冲突,如angularjs controller 同时调用一个向后台发出请求的函数。
11. 如果Map里面每个键值对的数据类型不一样,则可以设置成Map<Object, Object>
12. json 字符串中不能含有双引号,反斜杠,否则会出现parse error。