javawsdl2java
⑴ axis2的wsdl2java命令可以生成wsdl的服务端和客服端代码,请问各位大牛这个客服端和服务端的有什么区别。
生成的服务端是你本机作为服务的提供者;生成客户端是为了你去调用服务端提供的服务。
如果你想调用服务的话,当然是用生成的客户端代码了。
⑵ cxf wsdl2java命令生成客户端java类,怎么设置超时时间
可能是wsdl2java命令没有生成超时的代码,具体需要研究下生成代码的wsdl2java的工作原理,我一般都是手动设置超时时间
Service
service
=
new
Service();
Call
call
=
(Call)
service.createCall();
call.
setTimeout
(1000*60*15);
//设置超时时间
15分钟
运行命令WSDL2Java。
生成服务端代码命令是WSDL2Javauriwsdl文件全路径p包名dxmlbeanss,sssdssio生成的java代码存放路径。生成客户端包代码命令是WSDL2Java至uriwsdl文件全路径p包名dxmlbeansso生成的java代码存放路径。
源码就是指编写的最原始程序的代码。运行的软件是要经过编写的,程序员编写程序的过程中需要他们的语言。音乐家用五线谱和音符,建筑师用图纸和笔,那程序员的工作的语言就是源码了。
⑷ 用CXF的wsdl2java命令行处理wsdl文件,总提示文件名目录名或卷标语法不正确。
你在wsdl2java工具目录下执行以下试试 然后wsdl路径写绝对路径
或者建议你在eclipse里面去用wsdl2java工具 这样很多环境变量什么的在eclipse中配置就行了 而且提示更加明确,方便查错
⑸ springmvc框架如何实现像webservice一样通过wsdl2Java生成客户端代码
在用到web service时,如果是调用自己开发的web service还好,可以有一个方法的接口或参数对象实体类什么的,但如果是调用第三方的服务,除了得到web service服务地址的wsdl文档外,没有任何实质性编码的东西,写原生调用太麻烦,这时就需要自己写一个方法的接口类。
这个,目前已经有比较成熟的工具,可以自动生成,下面作一下简单的介绍。
apache的wsdl2java工具,目前貌似CXF和axis各有一套,使用方式大同小异,但生成的代码会有所区别,这时说的是CXF提供的wsdl2java工具。
wsdl2java用法:
wsdl2java -p com -d src -all aa.wsdl
-p 指定其wsdl的命名空间,也就是要生成代码的包名:
-d 指定要产生代码所在目录
-client 生成客户端测试web service的代码
-server 生成服务器启动web service的代码
-impl 生成web service的实现代码
-ant 生成build.xml文件
-all 生成所有开始端点代码:types,service proxy,,service interface, server mainline, client mainline, implementation object, and an Ant build.xml file.
详细用法见:http://cwiki.apache.org/CXF20DOC/wsdl-to-java.html
一开始使用了CXF的这套工具,发现不是很方便,毕竟依赖CXF提供的工具jar包,个人不是很喜欢用。
后来发现JDK居然也自带了对web service生成java代码的功能,貌似1.6版本开始的,试用后发现效果十分不错,果断投入它的怀抱。下面作下简单的介绍,以备忘。
打开jdk下的bin目录 看下能否找到"wsimport.exe"这个文件
一般情况下都会有
如果没有则说明你的JDK不支持这个功能
然后在DOS窗口下输入wsimport 敲回车
如果提示错误的话 说明你的JDK环境变量还没有配好
一句话总结,如果你在dos窗口下输入wsimport正常,就可以
如果OK的话 输入以下命令就可以将wsdl文件生成java文件了
wsimporthttp://127.0.0.1/TicketMobile/services/Cococ?wsdl -keep -p com.llg.ws2 -s g:/ws
参数说明
wsimport 这个是必须的 该工具的名称
http://127.0.0.1/TicketMobile/services/Cococ?wsdl wsdl文件
-keep 是否生成源文件
-p com.llg.ws2 生成后的java包名
-s g:/ws 生成后放哪个目录
但是前几天,在对一个第三方提供的web service使用该工具生成java代码的时候,居然出错了,网上查找后终于找到原因。
使用cxf wsdl2java或javax wsimport工具的时候,可能会遇到关于生成的Response类文件名冲突的问题
Console代码
WSDLToJavaError:ThrownbyJAXB:Aclass/interfacewiththesamename"***"isalreadyinuse..
@WebMethod
@WebResult(name="response")
(@WebParam(name="request")ValidateCCRequestrequest);
@WebMethod
@WebResult(name="response")
(@WebParam(name="request")ValidateCCRequestrequest);
目前可选择的方案:
apache的wsdl2java工具,使用-autoNameResolution自动处理
wsdl2java -autoNameResolutionhttp://hello.joy2everyone.com/yourWebService?wsdl
JDK自带的工具
wsimport -p com.test.client -keephttp://hello.joy2everyone.com/yourWebService?wsdl-B-XautoNameResolution
2.如果web service是己方开发的,可以修改代码,使用自定义bindings,详细可看sun webservice文档
例如:
Java代码
这个情况下定义的方法名,如果使用工具生成客户端代码,很可能存在Response冲突,因为定义的wsdl中会有一个关于接口方法的message
<wsdl:message name="validateCCResponse">
</wsdl:message>
方法名定义的message与接口定义返回的ValidateCCResponse,在工具生成客户端代码时就会产生命名冲突。
但是通过更改接口方法名为:
Java代码
即可解决该冲突,
⑹ java使用axis调用webservice问发送短信,怎么调用啊,下面是他们给的文档
要使用Java和Axis调用WebService发送短信,首先需要获取目标WebService的WSDL地址。通过这个地址,可以生成Web Service Client。具体步骤如下:
1. 首先,确保已经安装了Axis库。如果没有安装,可以从官方网站下载并安装。
2. 使用Axis提供的wsdl2java工具,通过WSDL地址生成Java客户端代码。命令格式如下:
wsdl2java -s -o output_directory -p package_name wsdl_url
例如,如果WSDL地址是http://example.com/service?wsdl,那么命令可能是:
wsdl2java -s -o client -p com.example http://example.com/service?wsdl
3. 生成的Java代码会包含与WebService交互所需的类和方法。其中,最重要的方法是sendSms(),用于发送短信。
4. 在Java代码中,可以通过以下方式调用sendSms()方法:
首先,创建一个WebService服务代理对象:
java
WebServiceClient client = new WebServiceClient();
然后,调用sendSms()方法:
java
client.sendSms("手机号码", "短信内容");
5. 如果在调用过程中遇到问题,可以通过检查生成的客户端代码和WebService文档来解决。文档通常会包含详细的方法参数说明和示例。
6. 确保网络连接正常,且WebService服务端正在运行。如果服务端不可用,将会导致调用失败。
以上就是使用Java和Axis调用WebService发送短信的基本步骤。通过遵循这些步骤,可以顺利完成短信发送任务。
⑺ cxf的wsdl2java命令和JDK的wsimport命令的区别和使用
JDK提供了一个wsimport.exe的命令,主要是用于将WebService生成客户端代码,然后好调用WebService。
wsimport 是根据JDK1.6.0_21及以上的生成本地代码的,它只能解析服务器端的SOAP协议为1.1,不能解析SOAP1.2的协议。如果解析SOAP1.2 将会解析不完全。
用法:前提是已经将JDK配置为了path环境变量 C:\Documents and Settings\Administrator>wsimport -s F:\ -p com.client.jdk.wsimport http://localhost:1111/hello?wsdl
-s 后面指定生成文件的路径,-p 自定义类包 http://localhost:1111/hello?wsdl 是wsdl的路径。
CXF也提供了根据WSDL生成客户端代码的命令wsdl2java.exe 。它是根据jdk1.7生成的本地代码,所以,需要对生成的代码做一点点修改。
它可以支持SOAP1.1 和SOAP1.2的协议。前提是你已经下载了Apache CXF 并且将wsdl2java.exe配置为了path环境变量。
用法:C:\Documents and Settings\Administrator>wsdl2java -d F:\ -p com.client.cxf http://localhost:1111/hello?wsdl
-d 后面指定生成文件的路径,-p 自定义类包 http://localhost:1111/hello?wsdl 是wsdl的路径。