调用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的命名空间应该是一样的,对这个没影响吧,没有理论基础,只能不断的尝试,摸着石头过河,这样的旅程真可怕。
调用webservice客户端方法 runtime modeler error: Wrapper class ××× is not found. Have you run APT to generate them?的更多相关文章
- JDK 1.6 写Webservice时,runtime modeler error: Wrapper class com.ws.jaxws.DoSomething is not found问题的解决办法
转自:http://blog.csdn.net/forandever/article/details/5276038 1.问题如下: Exception in thread "main&qu ...
- websevice中runtime modeler error: Wrapper class com.ws.jaxws.Add is not found问题的解决办法
查询了网上的资料,有以下解决办法: 1> 先用apt命令将主程序进行编译,然后生成一些java文件2> 升级JDK到版本jdk1.6u17或以后 这两种办法我没有试过,但是试了以下这种方法 ...
- Wrapper class webservice.jaxws.SayHi is not found. Have you run APT to generate them?
最近在研究webservice,利用jdk来实现简单的webservice发布,但是运行时却发生了这样的异常,如下: Exception in thread "main" com. ...
- 原生java调用webservice的方法,不用生成客户端代码
原生java调用webservice的方法,不用生成客户端代码 2015年10月29日 16:46:59 阅读数:1455 <span style="font-family: Aria ...
- Wrapper class package.jaxws.methodName is not found. Have you run APT to generate them?解决方案
使用JAX-WS 2.X基于Web容器发布WebService报错,错误信息类似于: Wrapper class package.jaxws.methodName is not found. Have ...
- Java调用webservice接口方法
java调用webservice接口 webservice的 发布一般都是使用WSDL(web service descriptive langu ...
- C# 调用WebService的方法
很少用C#动态的去调用Web Service,一般都是通过添加引用的方式,这样的话是自动成了代理,那么动态代理调用就是我们通过代码去调用这个WSDL,然后自己去生成客户端代理.更多的内容可以看下面的两 ...
- 动态调用WebService 通用方法Moss 中 传统开发中都可用。
WebService是啥大家都知道了,这里不做过多的解释.通常我们使用WebService的做法基本都是在我们的项目中添加Web引用的方式,首先找到WebService的地址,然后定义命名空间,这样会 ...
- 【转】C# 调用WebService的方法
很少用C#动态的去调用Web Service,一般都是通过添加引用的方式,这样的话是自动成了代理,那么动态代理调用就是我们通过代码去调用这个WSDL,然后自己去生成客户端代理.更多的内容可以看下面的两 ...
随机推荐
- centos atomic host第一次启动
centos atomic host安装完成会,第一次启动时会调用cloud-init等服务.这是个什么东东? cloud-init用于在创建虚拟机时通过元数据服务对虚拟机基本配置,包括常见的主机名, ...
- libpcap报文解析: ipv4、ipv6(待优化)
#include <string.h> #include <stdlib.h> #include <pcap.h> #include <netinet/in. ...
- Something wrong with FTK OCR
A case about business secret the suspect took lots of photos and screenshots from BOM, RD papers... ...
- 七、Action动作类
七.Action动作类(一般用**Action结尾) 1.编写动作类的三种方式 动作类不实现.也不继承任何的接口和类.即动作类是一个非常普通的JavaBean. public class HelloA ...
- Javascript 命名空间模式
命名空间是通过为项目或库创建一个全局对象,然后将所有功能添加到该全局变量中.通过减少程序中全局变量的数量,实现单全局变量,从而在具有大量函数.对象和其他变量的情况下不会造成全局污染,同时也避免了命名冲 ...
- Windows服务中用Timer和线程两种方式来执行定时任务
在Service服务文件夹下新建Windows服务 - TestService
- Creating a Unique File Name
If you are working with files or file attachments in PeopleCode, you will typically want to create a ...
- windows实用技巧
电脑如今已经非常普及,不过目前大多数电脑系统都是Win7/Win8.1或者Win10.你真的对自己电脑系统了解吗?今天小编为大家分享13个实用电脑技巧,会这些电脑技巧才叫牛哦! 13个实用电脑技巧 一 ...
- centos6.7下编译安装lnmp
很多步骤不说明了,请参照本人的centos6.7下编译安装lamp,这次的架构是nginx+php-fpm一台服务器,mysql一台服务器 (1)首先编译安装nginx: 操作命令: yum -y g ...
- DevExpress之ASPxGridView笔记(1)
1.设置Row(某列)输出格式,例如,在数字前加美元符.每3位以逗号隔开及设置小数点后两位: <dx:GridViewDataTextColumn FieldName="SHOUHUI ...