我于2013年10月21日入职软通动力,进入华为外包人员系列,到现在已经有两个星期了!前一个星期,没话讲,都是一些手续啊,开会啊,一周的时间就这样白白过去了!从第二周的周四,我才正式进入开发, 对于刚毕业两年的我来说,没有陪需,直接上手一个大型的项目,还是有点难度的!虽然有个导师,但是还有很多问题需要自己摸索,需要自己研究,这种状态我还挺享受的!哈哈....好了,废话不多说,就我这开发三天(周六加班啊!唉...)遇到的问题做个小结把!
在进入开发之后,因为我做的是一个简历管理模块,是一个新的模块,所以要从jsp节目到action到service到dao层,要一层一层的创建出来,对与jsp界面,没话说,就直接复制已有的项目中类似的jsp代码,修改一下就ok!只要是action到service之间的关联比较麻烦,因为这并不是一个简单的项目,而且又多个项目组合成的,service不仅要对我后台模块提供服务,也同时要对其他模块提供服务!而以前我接触的项目都是一个项目就可以搞定的事!所以对这一点还很不熟悉!导致在写bean的时候,还在bean是定义一个类似的变量List<ABean> list;持久层是用mybatis 框架!而且bean是用@XmlRootElement注解的!(可以看我空间另一篇转载日志),只要是提供网络序列化传输把!(I think!?)在以前开发,也许这个没什么,可以跑得通,但是在这个项目中!我却怎么也跑不同,在action报错了!但是在dao层明明已经读到数据(注:action层,service层,dao层,bean层都在不同的项目中的)然而action就报了2 counts of IllegalAnnotationExceptions的错误,请教了导师,请教了小组队长,都不能给我一个比较满意的答复!他们只提供了说在bean中定义List<ABean> list;会报错!最后我只好选择其他变通的方法修改代码!然而这个问题却困扰着我,结果今天上网查了一下
解决: counts of IllegalAnnotationExceptions and JAXB can't handle interfaces.
、Caused by: com.sun.xml.bind.v2.runtime.IllegalAnnotationsException: 2 counts of IllegalAnnotationExceptions
java.util.Map is an interface, and JAXB can't handle interfaces.
解决方法:将服务端的services接口返回的Map类型的值,改成HashMap.
结论:在做webServices复杂类型值传递时,返回值的类型不要用接口类型。例如(List应该改为ArrayList,Map改为HashMap等)
到此我才知道原来是这样的!