调用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,然后自己去生成客户端代理.更多的内容可以看下面的两 ...
随机推荐
- js DOM的几个常用方法
<div id="div1">这是个测试</div> <p </p> <p </p> //js DOM的几个常用方法 / ...
- 【Linux】自动化部署可信任登录
Linux信任登录,免密码登录的脚本: 需要安装expect,可以yum也可以编译安装,编译后注意脚本中的expect路径. rsa.exp #!/usr/bin/expect ########### ...
- css 字间距离_css 字体字符间距设置
介绍下css 字间距,使用css来控制字与字之间距离,也叫css字间距方法. 使用到的css样式属性单词text-indent抬头距离,letter-spacing字与字间距. Css字间距.div ...
- 在PHP应用中简化OAuth2.0身份验证集成:OAuth 2.0 Client
在PHP应用中简化OAuth2.0身份验证集成:OAuth 2.0 Client 阅读目录 验证代码流程 Refreshing a Token Built-In Providers 这个包能够让你 ...
- C++ Builder技巧集锦
/* 调用DOS程序时不显示窗口 使 用 ShellExecute调 用 DOS程 序 时 可 以 不 显 示 窗 口 , 如 :*/ ShellExecute(, "open", ...
- 比较合并工具vimdiff的主要用法归纳
参考:https://www.ibm.com/developerworks/cn/linux/l-vimdiff/ vimdiff主要用法归纳如下: 1.打开文件 vimdiff file1 fi ...
- 首页banner特效
<link href="css/swiper.min.css" rel="stylesheet" /> <script src=" ...
- Ninject在mvc中的简单配置
前言 Ninject是一款开源的轻量级的依赖注入插件.从接触ioc以来,一直都是使用这个,感觉用起来还是不错的,配置起来也很方便简单.在mvc中更是基本傻瓜式的配置. 开发前的准备 新建一个mvc3项 ...
- 编程作业—C++初探 简单的学生信息处理程序实现
简单的学生信息处理程序实现 来源: POJ (Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩.) 注意: 总时间限制: 1000ms 内存限制: 65536kB 描述 ...
- Web服务器控件表
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAykAAAFRCAIAAAD/5nW4AAAgAElEQVR4nOydd3gVxfrHN6TXQ0KXEn