这两天在学shiro,遇到了一些问题,希望对遇到同样问题的人有用,有不对的地方也欢迎指出
首先关于illegalArgumentException,我在使用shiro连接mysql数据库时报了illegalArgumentException:Line argument must contain a key and a value,only one found...,解决后发现如果你使用的是linux系统并且mysql数据库用户root的密码没有设置的话,就把ini配置文件中的‘dataSource.password=‘这行给删掉或者密码值写为‘null’,这个和jdbc的properties配置文件不同,jdbc的配置文件密码没有是可以不写的,linux不一样,当然最简单的你也可以设置密码;
第二个问题,当我把linux上正常运行的shiro连接mysql的代码放到windows系统运行时,总是报错:Access denied for user 'root'@'localhost'(using password:NO),此时我是把ini配置文件中的‘dataSource.password=***‘加上去的,网上很多人说是电脑上的mysql数据库没有设置密码或者需要改密码,但我是有密码的而且改了密码并没有用,当然如果你把密码设置为空windows系统上可以运行,但是数据库不可能总是不要密码。
后来的解决方案是我将Project的jdk从1.6改为了1.7,同时将Referenced Libraries中的jar包删掉重新add to buildPath后就可以正常运行了,但我将jdk改回1.6后想测试是不是jdk版本问题时,发现重新buildPath Jar 包后1.6也可以正常运行了,所以无法确定是不是jdk的问题,之后无论怎么改jdk也无需重新buildPath Jar包了,但可以肯定的是和Referenced Libraries有关的,大家遇到同样的问题可以试试。(ps:改jdk时别忘了把Java Compiler中的Compiler compilance level改成与jdk相同的版本)