浏览 3828 次
锁定老帖子 主题:如何对付恶心的@WebParam
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-05-15
在@WebService发布成wsdl时候, 方法的参数名称被自动的映射成arg0, arg1, 解决方法如下: public User create( @WebParam(name = "user") User user); 在wsimport自动生成的代码中也是这个样子. 这个馊主意丑陋无比. 如果参数多了,代码会惨不忍睹,而且这个工作会很无聊. 这个问题的主要原因还是java, 参数名称在编译后被抹掉了. 这个问题据说要在Java7才能解决. 几个solution: 1. 用插件来干这无聊的活,有人写吗? 但是写好后的代码依然惨不忍睹. 2. 用-g编译, 调试方式编译会包含很多其它信息. ParaNamer的BytecodeReadingParanamer是干这个事情用的. 3. 用[url=http://paranamer.codehaus.org/]ParaNamer[/ur]来编译你的代码. 它会在meta-inf下面加上点描述, 用它的api可以拿到参数名字. 这个对@WebParam没用. 4. 利用字节码工程和source, 直接对生成的代码加上@WebParam标记, 或者用debug的方法加上名字. 貌似还没人这个玩. 参数名称的重要性: 除了jaxb之外, ooweb现在的解决方法很无奈, 一些自动化验证框架如果有了参数名称,会正确的给出提示信息. 参考链接: http://paulhammant.com/blog/at-least-one-unilateral-improvement-to-java.html http://bugs.sun.com/view_bug.do?bug_id=6444738 http://paranamer.codehaus.org/ 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |