webservice从weblogic 10g 升级至11g过程中ELEMENT NAME的问题

       由于种种历史原因,系统开发的web service部署的平台是weblogic 10g,为了符合公司的要求,我们将部署的平台升级到了11g,解决了跨域访问、依赖包变更、session保存等等问题,然而最让我头疼确是一个看似很小的问题,而是由于11g 使用了jaxws RI 2.0.5的版本致使所以soap对象中的element name变为了首字母小写,而原来在10g中首字母都是大写,在前端所有的参数都是以首字母大写的名称来读取数据,这两个版本的生成web service的element name完全与VO属性的首字母大小写没有关系。。。这最终造成了前端无法正常访问web service。到官网查了下,虽然已经有report了bug,但是貌似不会再后继版本修复,人家不认为这是一个问题,变量名嘛,本来也是应该小写开头。既然没机会等修复版本,只能再找其他方法,在属性名称上使用@XmlElement(name="XXXX")的方式可以强制名称修改,但是有一个问题,在返回值的时候会返回同样的两个数据,只是其中一个数据时强制修改名称,而另一个是旧有的名称,虽然前端可以调用,但是平白增加了一倍的网络传输,得不偿失啊。实际上jaxws规范还会在另一个地方解析标签,那就是属性getter/setter方法上,比如

class user {

      private String name;

     @XmlElement(name="Name")

      public String getName(){

            return name;

      }

     

      public void setName(String name){

             this.name=name;

      }

}

       按照上面的注释位置就可以得到在weblogic 10g中web service返回对象的首字母大写属性名称




愿脑哥的光辉指引我前进的方向

相关文章

1.使用ajax调用varxhr;functioninvoke(){if(window.ActiveXO...
               好不容易把WebService服务器...
1新建一个工程项目用来做服务端增加一个MyService1类文件pac...
packagecom.transsion.util;importjava.io.BufferedReader;i...
再生产wsdl文件时重写描述文件1usingSystem;2usingSystem.Co...
一般情况下,使用eclipse自带的jax-ws生成webservice会自动生...