zoukankan      html  css  js  c++  java
  • 调用webservice客户端方法 runtime modeler error: Wrapper class ××× is not found. Have you run APT to generate them?

       用wsimport生成webservice的客户端以后,调用客户端生成方法时总是出现 runtime modeler error: Wrapper class stardand.nrcms.ncking.com.Login is not found. Have you run APT to generate them?这个错误;

       这个公司的接口我原来是做过的,现在不同的是,换了个地址,和原来的环境是一样的,jdk1.6.20,然后加入了myeclipse里边的jax-ws 2.1 Runtime libraries 和jax-ws 2.1 api libraries,由于wsimport 生成客户端时,指定包名以后,总是报A class/interface with the same name "XXX**" is already in use的错误,导致不能够生成客户端代码,于是就没有指定包名,生成代码以后,再在myeclipse里边,重命名为我自己想要的包名。一样的步骤,为什么这个就会报错?

       百度了一下,这个错误,发现有几种答案。

       1.jdk版本要升到jdk1.6.22以上,这个我用了jdk1.6.23,还用了jdk1.6.43,都还是存在这个问题。

       2.需要jaxws-api-2.1.jar及jaxb-api-2.1.jar,这个我试过把myeclipse里边的jax-ws 2.1 Runtime libraries和jax-ws 2.1 api libraries都去掉,然后把jaxws-ri-2.2.8里边所有的jar拷到工程下边的lib中去,调用的时候确出现找不到这个一个类的错误。后来想jdk1.6里边已经包含了jax-ws 2.1,所以应该不是这个问题。

       3.表示.apt_generated源码包下没有自动生成jax-ws相应的类,我想这个应该是针对服务端的

       全都试过,没了办法,今天又找了同事原来生成过的,能用的客户端的代码来调用,同样也出现这个问题。

       前边的方法都不对,于是退到原点,把jdk的版本还是用回原来jdk1.6.20,myeclipse里边同样加上jax-ws 2.1 Runtime libraries和jax-ws 2.1 api libraries

       既然说是找不到这个类,是不是命名空间的问题,就是说,我开始我重命名客户端的包名的时候,有引用没改过来,而导致找不到这个类?是不是有注释引用重命名的时候,不会同时改过来,于是回到为什么生成客户端的时候,会出现A class/interface with the same name "XXX**" is already in use的错误,百度以后,在http://chenlin10058.iteye.com/blog/1558591里边找到了答案

    目前可选择的方案: 

    1.使用-autoNameResolution自动处理 

    wsdl2java -autoNameResolution http://localhost:8060/soa/services/otherTrackedVehicleSoapService?wsdl

    2.wsimport -p com.test.client -keep http://localhost:8060/soa/services/otherTrackedVehicleSoapService?wsdl-B-XautoNameResolution 

    我用了第二种方法

    wsimport -s D:\temp -p com.**.** http://***.***.***  -B-XautoNameResolution

    生成客户端以后,发现客户端所有的代码都生成在了一个包下边,而不像默认包名,代码分成了两个包,再把原来引用的相关客户端的包名改成目前的报名

    再调用该方法的时候,发现已经没问题了

    为什么会这样呢?不管类是不是在一个包里边,但是webserivce的命名空间应该是一样的,对这个没影响吧,没有理论基础,只能不断的尝试,摸着石头过河,这样的旅程真可怕。

  • 相关阅读:
    实用机器学习 跟李沐学AI
    Explicitly drop temp table or let SQL Server handle it
    dotnettransformxdt and FatAntelope
    QQ拼音输入法 禁用模糊音
    (技术八卦)Java VS RoR
    Ruby on rails开发从头来(windows)(七)创建在线购物页面
    Ruby on rails开发从头来(windows)(十三)订单(Order)
    Ruby on rails开发从头来(windows)(十一)订单(Order)
    新员工自缢身亡,华为又站到了风口浪尖
    死亡汽油弹(Napalm Death)乐队的视频和来中国演出的消息
  • 原文地址:https://www.cnblogs.com/szxiaofei14/p/4231302.html
Copyright © 2011-2022 走看看