wsdl文件怎么生成

wsdl文件怎么生成,第1张

1.用接口工具去测试并传参调用;

2.写应用接口,代码如下:

public static void main(String[] args) {

JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance()

String wsUrl = "http://zong.bjchyedu.cn/ids/services/account?wsdl" //wsdl地址

String method = "webservice_method"//webservice的方法

Client client = dcf.createClient(wsUrl)

Object[] res = null

try {

res = client.invoke(method)//调用webservice

} catch (Exception e) {

e.printStackTrace()

}

System.out.println("res:"+res[0])

System.exit(0)

}

一、接口的分类:

1、URL类型的接口

URL

路由带参数式的接口!这个很好做!只要有过Web开发经验的人都能完成!这种接口数据不够隐蔽性,可以直接在浏览其中看到,如支付宝的交易请求URL。需

要加一个MD5签名,和服务器端的再次向支付宝服务器发送验证!虽然soap方式传递的数据隐蔽性很好!但为了数据安全,难免也需要进行数据签名。

2、SOAP类型的接口

无关编程语言、无关平台、扩展性很好,要实现一个SOAP 型的接口,有两种方式:一种有WSDL文件方式、一中无WSDL文件方式!

于热爱研究型的人来说,使用第一种方式可以让你清楚的了解PHP是怎么创建了一个Web

Service!但第一种对于新手来说,创建一个XML格式的WSDL文件,是比较难的,这你的先了解熟悉什么是XML!学会XML语法!但对于一个急于

解决问题的人来说!没有这么多的时间去熟悉!所以这是件烦恼的事!

二、PHP环境设置

先配置下PHP的soap环境支持:

找到php.ini文件

;extension=php_soap.dll

删除掉";" ,重启apache服务器

为了便于测试,需要关于wsdl缓存

方式1:

配置文件:php.ini 选项 soap.wsdl_cache_enabled 设置为0

方式2:

代码头添加:ini_set('soap.wsdl_cache_enabled', "0")//关闭wsdl缓存

三、有WSDL文件方式创建

这里先介绍标准的webservice。 那么如何创建wsdl呢?对于PHP来说这确实是件很不容易的事情,有人说用zend

studio创建很方便,这是一种方法。但对于那些不喜欢用zend studio的人来说,会觉得创建一个web service还要安装zend

studio,太强人所难了。

在这里介绍一个简单的方法,到网上下载SoapDiscovery.class.php类,里面有个公用方法:getWSDL,这个方法末尾是用的 return,那么,你修改一下这个方法:

//return sprintf('%s%s%s%s%s%s', $headerWSDL, $portTypeWSDL, $bindingWSDL, $serviceWSDL, $messageWSDL, '</definitions>')

//生成wsdl文件,将上面的return注释

$fso = fopen($this->class_name . ".wsdl" , "w")

fwrite($fso,

sprintf('%s%s%s%s%s%s', $headerWSDL, $portTypeWSDL, $bindingWSDL,

$serviceWSDL, $messageWSDL, '</definitions>'))

现在生成wsdl的类有了,SoapDiscovery.class.php(源码在最末尾)。

再准备一个提供服务的Service.php类文件或者函数就可以创建wsdl了!

使用Web Service进行WSDL逆向生成服务端步骤:

在Eclipse中新建一个WSDL文件

改个名字为“manager.wsdl”。下一步,定义命名空间和协议等信息,默认即行

finish后,会在主工作区出现

这是manager.wsdl的图形化形式,点击“Source”会可查看到源代码

这是默认生成的wsdl,我们要根据我们的项目需要,首先对方法名进行修改。修改之后,右边的input和output也跟着修改了,这两个就是定义plus的输入和输出。 点击input参数“plus”右边的提示箭头

就在这里定义输入参数和和参数类型等信息,因为我们plus(float x, float y)方法中有两个参数x和y,故我们将上图改成两个参数的序列,对比一下方法plus(float x, float y)

返回manager.wsdl视图,选择output参数右边的箭头。设置float plus(float x, float y)方法的返回值及其类型,因其返回值只有一个,我们只须把上面的out的类型改成我们方法中用的float。点击左上角的图标。

回到manager.wsdl,在源代码视图里右键选“Validate”,对xml文档进行检验,如果有错误的,就根据需要修改。

图形化编写的wsdl文档完成了,顺便说一下,方法是可以定义多个的

为简单起见,我们就先以刚才做定义的那个方法为例,看看,如何根据wsdl文件,自动生成Web Service的服务器端

我们New一个Web Service。在Web Service type中选择“Top down Java Bean Web Service”。在Service definition中找到刚才写的那个manager.wsdl文件

Web Service对话框,将服务类型的滑块调到“Develop service”处。接下来,就next –>next –->finish就行。它会自动生成Web Service服务端的接口和类,在类中,可找到我们定义的方法,我们只要修改方法plus的方法体,以实现我们要实现的功能即行。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7335388.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-04
下一篇 2023-04-04

发表评论

登录后才能评论

评论列表(0条)

保存