Netbeans 5.5 + enterprise pack 5.5 开发Web Service(Web服务)

    Netbeans官方网站有专门的文章Demo介绍如何使用Netbeans开发Web Service,主要写稿人是Arun Gupta,印度人,很厉害,去java.net看看他的blog

    但是这些文章和Demo都说的很简单,开发的Web Service无非就是几个可以传输String字符的Service,但是平常我们所需要的绝不是“Hello Duke”那么简单,我们大部分情况都需要返回一个完整的也许是复杂的对象。我按照官方的Demo尝试了一下,发现传输复杂对象的时候经常会出莫名的问题,有些是成功的,有些就失败。

  比如:
  1. 单个简单javabean,pojo,成功。
  2. 单个复杂的javabean,元素包含另外复杂对象(如单个ArrayList,2个以上的ArrayList就不行),成功。
  3. 多个简单的javabean,返回list对象,list中包含内容为javabean,有时候就会出问题(注意,是有时候)。如下(getArr2是出问题的方法)


Exceptions details : java.lang.reflect.InvocationTargetException



       我查了官方的说法,Enterprise Pack5.5中主要用到jax-ws和jaxb技术,按理应该是可以用XML实现java对象绑定,可我实践的时候大部分情况都是不成功的,只有一次成功,幸运的是我保留了下来。下载代码

        该代码中,有一个是失败的,web服务方法为getArr2(),其他都是可以成功调用的。失败的情况经常报错:** nor any of its super class is known to this context, 我不清楚该去什么地方修改这个Context。
        有兴趣的朋友可以一起看看,有问题可以讨论一下,我的mail: qil.wong@gmail.com。 我没有手动改过wsdl等文件,都是Netbeans IDE自动生成的,如果真有问题,可能就是Netbeans不稳定造成的。成功的那部分代码我是在Ubuntu Linux下写的,本来我以为不会有问题存在,但是过了五一我又在Ubuntu中新增了一个方法(就是getArr2()),错误出现了。拿到XP下测试,成功的那几个还是成功的,失败的还是失败,再写几个复杂对象的传输的service,还是失败。

      我现在自己得出的结论是:在自己的javabean中,不能连续两个嵌套的List存在,否则就会出问题。

     如果不是两个嵌套的List存在,但是也发生了异常,诸如:...nor any of its super class is known to this context。我的解决办法是先写一个最简单的引用该javabean的WebMethod,经编译部署测试后一般都会成功,然后再写复杂的Javabean处理的WebMethod;另外,我在java.net上看到修改WebMethod方法有时候也会有用,不过我没试成功。

    希望JAXB2.1或以后的版本可以解决这个问题。  

      这个问题我会报告给jax-ws,jaxb,是否是xml绑定出了问题。

   PS: 我又在Tomcat下做了几个实验,居然很好,什么样的复杂的javabean都可以进行传递。

   看样子真是glassfish还不是完全成熟啊!

  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值