长时间不写东西,慢慢的觉得脱离了学习的轨道。我要记住学习中遇到的每一点问题。
CXF很久没有用过,但却并不陌生,异常不可避免。这次是用CXF自带bat工具生成客户端测试代码。
首先,下载CXF包,并将其目录下的bin添加到系统的path中。dos下运行wsdl2java 不会出现找不到命令的错误,表示配置成功。
然后,进入到wsdl文件所在目录,执行 wsdl2java -client *.xml
命令,正常执行。
再次,将wsdl文件同级目录下生成的客户端测试代码和wsdl文件都copy到工程中,编译时异常出现了。继承Service的类构造器有error,不能被正常编译。
这是三个报错的构造函数(请认真看注释描述):
//This constructor requires JAX-WS API 2.2. You will need to endorse the 2.2
//API jar or re-run wsdl2java with "-frontend jaxws21" to generate JAX-WS 2.1
//compliant code instead.
public IcpBusinessService(WebServiceFeature ... features) {
super(WSDL_LOCATION, SERVICE, features);
}
//This constructor requires JAX-WS API 2.2. You will need to endorse the 2.2
//API jar or re-run wsdl2java with "-frontend jaxws21" to generate JAX-WS 2.1
//compliant code instead.
public IcpBusinessService(URL wsdlLocation, WebServiceFeature ... features) {
super(wsdlLocation, SERVICE, features);
}
//This constructor requires JAX-WS API 2.2. You will need to endorse the 2.2
//API jar or re-run wsdl2java with "-frontend jaxws21" to generate JAX-WS 2.1
//compliant code instead.
public IcpBusinessService(URL wsdlLocation, QName serviceName, WebServiceFeature ... features) {
super(wsdlLocation, serviceName, features);
}
原因请参见:http://cxf.apache.org/docs/23-migration-guide.html 官方说明。
怎么解决呢? 经过研究发现,其不能正常编译通过是由于jax-ws2.2规约与java6冲突。 但程序又不能仅以java5来编译,故需要降低jax-ws规约版本,可以这样处理: 执行命令
wsdl2java -frontend jaxws21 -client *.xml
这样以jax-ws2.1生成的代码就可以在java6中编译通过并可执行。修改 *_Client.java,这个是测试的主方法,录入参数执行,即可调用远程服务.
注:我将这两次生成的客户端代码进行比较,唯一的区别就是用后者生成的客户端代码将报错的3个构造函数移除了。也就是说,我们只需要将这3个出错的构造器删除就可以处理此异常。
over.
分享到:
相关推荐
使用cxf wsdl2java生成webservice客户端命令
CXF提供的wsdl2java工具创建客户端的详细步骤
NULL 博文链接:https://hongyegu.iteye.com/blog/637103
apache CXF wsdl2java工具使用说明
利用wsdl2java工具和SoapUI工具生成webservice的客户端代码 Java实现登陆验证调用 压缩包里包括需要的所有文件,供需要的同学使用 1.apache-cxf-3.3.7 2.SoapUI 5.4.0-EB 3.生成代码的教程 4.获取service调用的...
wsdl2java源码sbt-cxf-wsdl2java 一个 sbt 插件,用于使用 cxf 从 WSDL 生成 java 工件 要求 快速开始 将插件添加到project/plugins.sbt : resolvers + = " Sonatype Repository " at " ...sbt-cxf-wsdl2java ...
抛出无法找到主类:org.apache.axis.wsdl.WSDL2Java(Throws Could not find main class: org.apache.axis.wsdl.WSDL2Java)。 添加本文的jar包压缩包解压出来的所有jar包到当前使用的java.exe 命令的lib目录下的ext...
apache-cxf将wsdl生成java文件
cxf java代码生成 wsdl文件 ,wsdl文件生成 java代码,相关博文: http://blog.csdn.net/dream_broken/article/details/35331949
NULL 博文链接:https://jeooo-li.iteye.com/blog/471745
apache cxf 框架wsdl2java命令的使用。 -encoding是指定编码类型; -p 指定包名 -d 指定生成目录 -all生成服务端和客户端代码 -client 生成客户端代码 -server生成服务端代码 wsdl2java -...
wsdl2java源码Camel-CXF SOAP 客户端演示(使用 2 路 SSL) 此存储库包含一个示例 Camel-CXF 项目,该项目演示了使用 2 向 SSL(客户端身份验证)的客户端 SOAP 请求/回复。 入门 首先,将此存储库克隆到您的本地...
cxf生成客户端 服务端代码
1.使用Java 2.用cxf开发webservice 3.这个服务端和客户端的小demo 在服务端 对外开放接口服务,然后在客户端 调用服务端的方法, 实现客户端(一个javaweb项目)对服务端(javaweb项目)方法的调用, 实际上就是发送...
wsdl2java源码wsdl 到存根生成 从 wsdl 生成存根的项目 生成客户端存根 添加以下依赖项以从 wsdl 文件创建存根 org.apache.cxf cxf 核心 3.1.4 在 pom.xml 中添加以下代码以生成客户端存根 org.apache.cxf cxf-...
wsdl2java源码springboot-apachecxf-client 本项目演示了如何在Springboot中实现apachecxf客户端,以及如何为客户端调用生成wsdltojava。 Springboot-apachecxf-jaxws 示例 此应用程序展示了如何使用 apachecxf ...
注意: 1.如果想学习java优先请...2.包含一个eclipse工程以及一个ppt,ppt详细说明了实现的步骤。 3.设计中重点考察了schema validate的配置与实现,后续更高级的相关知识敬请关注 http://blog.csdn.net/harrison2010
1、配置环境变量:新建CXF_HOME D...3、生成客户端:wsdl2java -d C:\Users\ASUS\Desktop\生成的代码存放地址 -encoding utf-8 -p com.jeiao.boss.生成后代码的包名 http://xxx.xxx.xxx.xxx:xxxx/service/接口地址?wsdl
wsdl2java源码建造状态 CXF客户端 介绍 有几个不同的插件可以使用 grails 来使用 SOAP Web 服务,但目前没有一个可以处理缓存端口引用的问题。 ws-client 插件可以工作,但它的局限性在于它如何创建和使用 wsdl。 它...
详细介绍3种方法根据wsdl逆向生成webservice服务端;有最原始的wsdl2java指令,还有通过soapUI工具以及通过myeclipse的web service project来生成。