调用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,然后自己去生成客户端代理.更多的内容可以看下面的两 ...
随机推荐
- SVN 记录冲突、忽略
之前对SVN不熟悉,一碰到冲突就怕得要死,不知道应该怎么处理.今天必须要正视这个问题,研究一下. 一.冲突 SVN非常智能,它不像VSS那样,一个人在改的时候必须以独占的方式签出文件,导致其他人不能够 ...
- .NET 可选择的转型路径(转)
新的一年,您在学习和工作上,想坚守所学,还是尝试转型呢? (1) 继续钻研 C# 4.0 / AJAX / LINQ to AD.LINQ to JavaScript / WF, WCF, WPF, ...
- Unieap3.5Java端常用公用方法
String OrgId = McssComMethod.getDimensionID(); Date systemDate = DataStoreUtil.getOracleSystemDate( ...
- MySql安装方法和配置、解决中文乱码
MySql Server安装步骤 1安装MySql Server 2 安装MySqlServer管理工具 解压中文语言包,将文件复制到安装目录下覆盖 文件覆盖后,打开软件设置语言为中文(CN) 3 M ...
- 实例分析ELF文件动态链接
参考文献: <ELF V1.2> <程序员的自我修养---链接.装载与库>第6章 可执行文件的装载与进程 第7章 动态链接 <Linux GOT与PLT> 开发平台 ...
- C# Datetime类常用技巧
C#类常用技巧 //今天DateTime.Now.Date.ToShortDateString();//昨天,也就是今天的日期减一DateTime.Now.AddDays(-1).ToShortDat ...
- jquery Ajax中的dataType简析
jquery中的ajax有好几种运用方式,但是基本上都是使用的$.ajax()方法,很多人经常会使用它来从后台获取json格式的数据,但是经常发现返回的json字符串并不能自动的转换成js里的json ...
- [leetcode]_Climbing Stairs
我敢保证这道题是在今早蹲厕所的时候突然冒出的解法.第一次接触DP题,我好伟大啊啊啊~ 题目:一个N阶的梯子,一次能够走1步或者2步,问有多少种走法. 解法:原始DP问题. 思路: 1.if N == ...
- vue.js插件使用(01) vue-resource
本文的主要内容如下: 介绍vue-resource的特点 介绍vue-resource的基本使用方法 基于this.$http的增删查改示例 基于this.$resource的增删查改示例 基于int ...
- 封装document.ready方法
function $(fn){ if(document.addEventListener){ //W3C document.addEventListener('DOMContentLoaded',fu ...