文件管理 · 2022年7月26日

wsdl2objc教程|eclipse上怎么使用wsdl2java工具生成webservice客户端

㈠ 如何指定wsdl2java的参数

cd 调转到 wsdl2java 所在目录然后输入 wsdl2java –help会出现提示信息eg:wsdl2java -p com.. -d src –compile -c bin -client yourWsdlURL-p 指定生成的客户端包名-d 指定生成的客户端生成目录–compile 指定需要进行编译-c 指定编译生成的目录-client 指定生成客户端调用类, 即包含main方法调用客户端方法的类yourWsdlURL 是需要生成客户端的wsdl地址没记错的话应该就是这样了

㈡ 用C++怎么创建WSDL文件

c+=中使用Axis实现webservice的基本过程:使用Axis C++开发Web服务的基本过程可以简单描述如下: 1、使用Java语言描述WEB服务 2、使用Java2WSDL工具生成WSDL文件 3、使用WSDL2Ws工具生成服务端代码框架 4、编码实现service,并部署服务 5、使用WSDL2Ws工具生成客户端代码框架 6、编码实现客户端三、实例演示 这里以一个简单的加法Add服务来说明用Axis C++构建webService的过程。1、使用Java语言描述WEB服务 Axis C++中我们必须先定义好WSDL后方可生成用来实现该服务的代码框架,这一点与Axis Java不同。生成WSDL方法很多,可以使用Java2WSDL工具,当然也可以手工编写,这里使用Java2WSDL工具生成。下面我们对Add服务用Java语言描述: public interface Add{ public int add(int x, int y); }只要方法的声明即可,不需要实现方法,因此我们使用接口来定义。将上面的代码保存为Add.java。2、使用Java2WSDL工具生成WSDL文件

㈢ 怎么用cxf的wsdl2java解析wcf生成的wsdl

1、下载apache-cxf-2.6.2在环境变量中配置_HOME ,在PATH中加入%CXF_HOME%\bin 2、输入cmd 进入控制窗口,输入wsdl2java看是否配置成功3、参考它的文档看这个工具的具体参数的用法 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

㈣ java web项目怎么使用wsdl文件

webservice的发布一般都是使用WSDL(web service descriptive language)文件的样式来发布的,在WSDL文件里面,包含这个webservice暴露在外面可供使用的接口。注意,以下的代码并没有经过真正的测试,只是说明这些情况,不同版本的Axis相差很大,最好以apache网站上的例子为准,这里仅仅用于说明其基本用法。1,直接AXIS调用远程的web service,直接调用模式如下: import java.util.Date; import java.text.DateFormat; import org.apache.axis.client.Call; import org.apache.axis.client.Service; import javax.xml.namespace.QName; import java.lang.Integer; import javax.xml.rpc.ParameterMode; public class caClient { public static void main(String[] args) { try { String endpoint = "http://localhost:8080/ca3/services/caSynrochnized?wsdl"; //直接引用远程的wsdl文件 //以下都是套路 Service service = new Service(); Call call = (Call) service.createCall(); call.setTargetEndpointAddress(endpoint); call.setOperationName("addUser");//WSDL里面描述的接口名称 call.addParameter("userName", org.apache.axis.encoding.XMLType.XSD_DATE, javax.xml.rpc.ParameterMode.IN);//接口的参数 call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);//设置返回类型 String temp = "测试人员"; String result = (String)call.invoke(new Object[]{temp}); //给方法传递参数,并且调用方法 System.out.println("result is "+result); } catch (Exception e) { System.err.println(e.toString()); } } } 2,直接SOAP调用远程的webservice ,这种模式很少用,但是网络上有人贴出来,也转过来 :import org.apache.soap.util.xml.*; import org.apache.soap.*; import org.apache.soap.rpc.*; import java.io.*; import java.net.*; import java.util.Vector; public class caService{ public static String getService(String user) { URL url = null; try { url=new URL("http://192.168.0.100:8080/ca3/services/caSynrochnized"); } catch (MalformedURLException mue) { return mue.getMessage(); } // This is the main SOAP object Call soapCall = new Call(); // Use SOAP encoding soapCall.setEncodingStyleURI(Constants.NS_URI_SOAP_ENC); // This is the remote object we're asking for the price soapCall.setTargetObjectURI("urn:xmethods-caSynrochnized"); // This is the name of the method on the above object soapCall.setMethodName("getUser"); // We need to send the ISBN number as an input parameter to the method Vector soapParams = new Vector(); // name, type, value, encoding style Parameter isbnParam = new Parameter("userName", String.class, user, null); soapParams.addElement(isbnParam); soapCall.setParams(soapParams); try { // Invoke the remote method on the object Response soapResponse = soapCall.invoke(url,""); // Check to see if there is an error, return "N/A" if (soapResponse.generatedFault()) { Fault fault = soapResponse.getFault(); String f = fault.getFaultString(); return f; } else { // read result Parameter soapResult = soapResponse.getReturnValue (); // get a string from the result return soapResult.getValue().toString(); } } catch (SOAPException se) { return se.getMessage(); } } }

㈤ Java调用wsdl,怎么实现

步骤如下:1.下载AXIS2类库,AXIS2是目前java调用webservice的一个主要方法(由于更新较频繁,请自行google该类库的网址)2.由于是第三方webservice,直接引入AXIS2的包就可以代码如下:import java.rmi.RemoteException;import javax.xml.rpc.ParameterMode;import javax.xml.rpc.ServiceException;import org.apache.axis.client.Call;import org.apache.axis.client.Service;import org.apache.axis.encoding.XMLType; public class webServiceTest { public String invokeRemoteFuc() { String endpoint = "http://localhost:8080/webservice/services/helloworld"; String result = "no result!"; Service service = new Service();//新建一个service Call call; Object[] object = new Object[1]; object[0] = "Dear I miss you";//Object是用来存储方法的参数 try { call = (Call) service.createCall(); call.setTargetEndpointAddress(endpoint);// 远程调用路径 call.setOperationName("say");// 调用的方法名 // 设置参数名: call.addParameter("str1", // 参数名 XMLType.XSD_STRING,// 参数类型:String ParameterMode.IN);// 参数模式:'IN' or 'OUT' // 设置返回值类型: call.setReturnType(XMLType.XSD_STRING);// 返回值类型:String result = (String) call.invoke(object);// 远程调用 } catch (ServiceException e) { e.printStackTrace(); } catch (RemoteException e) { e.printStackTrace(); } return result;//返回值 } public static void main(String[] args) { webServiceTest t = new webServiceTest(); String result = t.invokeRemoteFuc(); System.out.println(result); //输出 }}通过AXIS2封装好的类设置URL和参数,直接调用。

㈥ java2wsdl生成的客户端代码怎么调用

首先, 你要先把你的WS服务启动起来,就是 比如ht tp:/ /localhost:8080/Example/services/HelloWorldService?wsdl然后在你的另一个项目中内建一个Webservice Client 客户端,用容来访问你的WS服务。建立Webservice Client 方法如下,在Eclipses中建立一个java工程,然后在src上右键–NEW—Other—Web Service Client –Xfire–在WsdL url 中写上htt p:/ /localhost:8080/Example/services/HelloWorldService?wsdl—–下一步结束。在src里的会出现一些java文件,你找一个以Client结束的java文件,在里面的main方法中会有个service对象,现在你就可以直接用这个对象了,service.peerstatus(参数)这样写就行了。

㈦ wsdl2h 生成的头文件默认变量都是直真,怎么转化成数组

只需要一句,arr.__proto__=[];但是要注意浏览器支持__proto__才行,最新的浏览器应该都支持。以下两种都可以解决此问题:function transform(obj){var arr = [];for(var item in obj){arr.push(obj[item]);}return arr;}或者public static void main(String[] args) {String [] s={"2","3","4"};int [] array=new int[3];for(int i=0;i<s.length;i++){array[i]=Integer.parseInt(s[i]);System.out.println(array[i]);}}

㈧ wsdl已经生成了怎么新增一个方法

如果需要在原有的WebService接口上追加方法,可以使用WSDL来生成。方法/步骤1.修改已有的WSDL文件追加想要的方法。2.需要下载和原来生成版本一致的Axis2的版本,否则会发布不成功。3.将下载的Zip包解压到任意Path下。比如 D:/axis2/4.通过输入命令cmd,进入控制台界面,进入解压后的Axis2的Path下。cd D:/Axis2/自己的 版本5.输入类似以下命令分别生成客户端和服务器端代码。WSDL2JAVA -uri D:\test\Service\testService.wsdl -p lhl.lee.test -d adb -ss -sd -o D:\test\srcWSDL2JAVA -uri D:\test\Service\testService.wsdl -p lhl.lee.test -d adb -o D:\test\src命令的具体 含义o <path> : 指定生成代码的输出路径-a : 生成异步模式的代码-s : 生成同步模式的代码-p <pkg> : 指定代码的package名称-l <languange> : 使用的语言(Java/C) 默认是java-t : 为代码生成测试用例-ss : 生成服务端代码默认不生成-sd : 生成服务描述文件 services.xml-d <databinding> : 指定databingding,例如,adb,xmlbean,jibx,jaxme and jaxbri-g : 生成服务端和客户端的代码-pn <port_name> : 当WSDL中有多个port时,指定其中一个port-sn <serv_name> : 选择WSDL中的一个service-u : 展开data-binding的类-r <path> : 为代码生成指定一个repository-ssi : 为服务端实现代码生成接口类-s : 为生成的源码指定存储路径-R : 为生成的resources指定存储路径–noBuildXML : 输出中不生成build.xml文件–noWSDL : 在resources目录中不生成WSDL文件–noMessageReceiver : 不生成MessageReceiver类31.将生成的服务器端和客户端代码通过差分比较的方式分别合并到现有的Project内。2.在合并的时候需要注意比如Stub内的文件不可以直接Copy最好是使用覆盖的方式,因为在客户端内的文件定义了数组而在3.生成自动化代码的时候很可能定义的数组内的顺序是不一致的,因此这就需要生成的这个WSDL要和原来的保持一致

㈨ 如何用IOS调用WebService

方法一:使用WSDL2ObjC工具,将接口转成OC类。

在浏览器中输入webService接口地址(Safari不可用,我用的是Firefox),如:http://xxx.xxx.asmx,地址后面添加上.wsdl成http://xxx.xxx.asmx.wsdl打开。

.将页面另存为wsdl文件,保存的时候后缀加上.wsdl,保存成如xxxxService.asmx.xml.wsdl。

3.使用WSDL2ObjC工具将wsdl文件转成OC类。

4.将生成的OC类的全部文件导入到项目中。然后就可以调用了。现在没有写Demo,我就贴一部分调用代码,以后有机会传个Demo上来。-

(NSString*)skHkshListOfpagenow2:(NSInteger)aPagenowpagesize:(NSInteger)aPagesize{

MURPXzshServiceSoapBinding *binding=[[]initWithAddress:[NSStringstringWithFormat:@"%@%@",

self.jjjj,XZSH_SERVICE]];//接口地址

binding.logXMLInOut

=YES;//可以直接

MURPXzshService_HkshList

*parm=[[MURPXzshService_HkshListalloc]init];//接口中方法初始化

parm.xxxx

=[umcidstringValue];//接口中方法传参数

parm.pagenow

=[NSNumbernumberWithInteger:aPagenow];//接口中方法传参数

parm.pagesize

=[NSNumbernumberWithInteger:aPagesize];//接口中方法传参数

*resp=[:parm];//调用方法

//下面是返回值

for

(idmineinresp.bodyParts){

if

([mineisKindOfClass:[MURPXzshService_HkshListResponseclass]])

{

NSString

*resultStr=[mineHkshListResult];

return

resultStr;

}

}

return

nil;

}

注意:上面我的webService名字是MURPXzshService,Soap是MURPXzshServiceSoapBinding,调用的方法是HkshList。

方法二:直接通过网络请求调用,解析XML的方法。

不说了,先上代码:

(void)viewDidAppear:(BOOL)animated

{

[super

viewDidAppear:animated];

//假如在这开始请求

NSString

*webServiceBodyStr=[NSStringstringWithFormat:

@"<jsjy_yjy

xmlns="http://murpcn.com/murpwebservice/">"

"<xxx>34192</xxx>"

"<pagenow>1</pagenow>"

"<pagesize>20</pagesize>"

"</Jsjy_yjy>"];//这里是参数

NSString

*webServiceStr=[NSStringstringWithFormat:

@"<?xml

version="1.0"encoding="utf-8"?>
"

"<soap:Envelope

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:xsd="http://www.w3.org/2001/XMLSchema"

xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
"

"<soap:Body>
"

"%@
"

"</soap:Body>
"

"</soap:Envelope>",

webServiceBodyStr];//webService头

NSString

*SOAPActionStr=[NSStringstringWithFormat:@"http://xxx.com/murpwebservice/%@",

@"Jsjy_yjy"];//SOAPAction

NSURL

*url=[NSURLURLWithString:@"http://xxxx/key/MurpjsjyService.asmx"];

NSMutableURLRequest

*theRequest=[:url];

NSString

*msgLength=[NSStringstringWithFormat:@"%ld",

webServiceStr.length];

[theRequest

addValue:@"text/xml;

charset=utf-8"

forHTTPHeaderField:@"Content-type"];

[theRequest

addValue::@"SOAPAction"];

[theRequest

addValue:msgLengthforHTTPHeaderField:@"Content-Length"];

[theRequest

setHTTPMethod:@"POST"];

[theRequest

setHTTPBody:[:NSUTF8StringEncoding]];

NSURLConnection

*theConn=[[NSURLConnectionalloc]initWithRequest:theRequestdelegate:self];

if

(theConn){

NSLog(@"8888哈哈哈笑");

}else

{

NSLog(@"5555你给我哭");

}

}

//接收到数据的代理

(void)connection:(NSURLConnection

*)connectiondidReceiveResponse:(NSURLResponse*)response{

}

(void)connection:(NSURLConnection

*)connectiondidReceiveData:(NSData*)data{

NSString

*str=[[NSStringalloc]initWithData:dataencoding:NSUTF8StringEncoding];

NSLog(@"%@",

str);//得到想要的XML字符串然后解析

//系统自带的

NSXMLParser

*par=[[NSXMLParseralloc]initWithData:[strdataUsingEncoding:NSUTF8StringEncoding]];

[par

setDelegate:self];//设置NSXMLParser对象的解析方法代理

[par

parse];//调用代理解析NSXMLParser对象,看解析是否成功

}

//解析XML

#pragma

markxmlparser

//step

1:准备解析

(void)parserDidStartDocument:(NSXMLParser

*)parser{

}

//step

2:准备解析节点

(void)parser:(NSXMLParser

*)parserdidStartElement:(NSString*)elementNamenamespaceURI:(NSString*)namespaceURIqualifiedName:(NSString*)qNameattributes:(NSDictionary*)attributeDict{

NSLog(@"%@",

NSStringFromSelector(_cmd));

}

//step

3:获取首尾节点间内容

(void)parser:(NSXMLParser

*)parserfoundCharacters:(NSString*)string{

NSLog(@"%@",

string);

}

//step

4:解析完当前节点

(void)parser:(NSXMLParser

*)parserdidEndElement:(NSString*)elementNamenamespaceURI:(NSString*)namespaceURIqualifiedName:(NSString*)qName{

NSLog(@"%@",NSStringFromSelector(_cmd)

);

}

//step

5;解析结束

(void)parserDidEndDocument:(NSXMLParser

*)parser{

}

//获取cdata块数据

– (void)parser:(NSXMLParser

*)parserfoundCDATA:(NSData*)CDATABlock{

}

以上内容就是用IOS调用WebService(SOAP接口)的方式

㈩ eclipse上怎么使用wsdl2java工具生成webservice客户端

一、用Eclipse调用Axis的wsdl2java1.在eclipse里面新建一个项目或已有的项目;2.导入 activation.jar axis.jar commons-discovery.jar commons-logging-1.0.3.jar jaxrpc.jar saaj.jar wsdl4j-1.5.2.jar 包3右击你的工程-Run As-Run…-右击New,新建 new configuration ,将Include libraries when searching for a main class勾上,再点search,输入wsdl2java,再Arguments里把要生成的web service URI或wsdl文件写进去,最后点run。(转自:http://www.blogjava.net/willpower88/archive/2006/11/22/82887.html)二、利用myeclipse建立WebServiceClient1.在Web工程上右键-->new-->Other-->MyEclipse下的WebService下的Web Service Client2.在打开窗口上的Project处选择要放入哪个工程,然后选择WSDL URL,把WebService地址填上.也可以选择本地wsdl文件