wsdl文件,wsdl文件是怎么生成的
WSDL文件出错?
该common.xsd文件可能包含WSDL中使用的类型定义.尝试手动下载文件(URL应该在WSDL中),然后将文件保存在WSDL文件旁边.
Spring-ws 自动生成wsdl 修改请求默认Request后缀的问题
Spring关于webservice的框架
可以实现配置化自动生成wsdl文件与基于注解的自动序列化和反序列化
出现的问题:
1、想利用自动生成正确的wsdl文件
满足条件:默认的请求与响应的结尾Request与Response
Spring一贯的约定大于配置,约定的soap请求报文需要以Request结尾,soap响应报文需要以Response结尾,这是在给的spring-ws中硬编码实现的
如果想生成自定义的soap报文格式需要重写覆盖spring-ws的默认配置 DefaultWsdl11Definition
同时重写SuffixBasedMessagesProvider与SuffixBasedPortTypesProvider,关于后缀的问题
配置类
@EnableWs
@Configuration
public class WebServiceConfig {
? ??????@Bean(name ="Invoke")
????????public Wsdl11Definition defaultWsdl11Definition(XsdSchema srmSchema) {
? ? ? ? ? ? ? ? //未解决默认请求后缀为Request才能正确生成wsdl文件的问题,
? ? ? ? ? ? ? ? // 重写WSDL生成的实现类,覆盖默认的DefaultWsdl11Definition
? ? ? ? ? ? ? ? //总体在于xml关键标签元素的渲染判断
? ? ? ? ? ? ? ? MyWsdl11Definition definition =new MyWsdl11Definition();
? ? ? ? ? ? ? ? definition.setPortTypeName("InvokePort");
? ? ? ? ? ? ? ? definition.setTargetNamespace(Constant.NAMESPACE_BOI);
? ? ? ? ? ? ? ? definition.setLocationUri("/ws");
????????????????definition.setSchema(srmSchema);
????????????????definition.setRequestSuffix("");//后缀修改,可以为空,而不是默认的Request
????????????????return definition;
????????}
}
2. 访问spring-ws的wsdl,默认url.wsdl而不是习惯用的url?wsdl
当然需要修改也可以实现
在解析本地的wsdl文件时遇到如下问题,怎么解决
一、在VS提供的命令提示符中编译WSDL文件。
给个例子:
Wsdl /language:CS /n:mynamespace /out:myProxyClass.cs C:/myProject/wsdl/WEBservice.wsdl
最后一个参数是本地的绝对路径,是一个文件,也可以是一个网络路径。
二、在项目右键中添加WEB引用,输入本地的WSDL的绝对路径。
注意:用VS引用生成的代理类名称为Reference.cs,可以在项目目录下找到
WSDL文件是什么?
Web service描述语言(WSDL)。
当程序员坐到电脑前,想要使用Web service的时候,其的工具(如Visual Studio)无法给其提供任何帮助,因为这些工具根本就不了解Web service。
解决方法是:
用机器能阅读的方式提供一个正式的描述文档.Web service描述语言(WSDL)
就是这样一个基于XML的语言,用于描述Web service及其函数、参数和返回值.因为是基于XML的,所以WSDL既是机器可阅读的,又是人可阅读的。
这将是一个很大的好处.一些最新的开发工具 既能根据你的Web service生成WSDL文档,又能导入WSDL文档,生成调用相应Web service的代码。
WSDL用来提供对服务的描述 ,它的主要构成要素有五个:
1)Types:定义WSDL定义中所用到的数据类型,即XML Schema Types。
2)Message :对一组消息的输入和输出参数的定义。
java webservice怎么生成wsdl文件
在大多数情况下我们都需要为我们的服务提供一个WSDL文件,而 Axis2's Java2WSDL 是专门用来生成WSDL文件的D专用工具,如果你要在命令行模式下进行生成WSDL文件,首先需要保证你的环境变量AXIS2_HOME是否已经配置OK,同时还要保证把%AXIS2_HOME%\bin加入到你的path环境中,要生成 WSDL文件,首先要保证你的class能够编译成功,而且已经编译成功,然后进入class文件编译后的根目录(在JBuilder中是classes,在Eclipse中是bin目录)这时,生成WSDL文件的准备工作已经OK。\x0d\x0a\x0d\x0a下面是生成WSDL文件时的可选参数和参数说明:\x0d\x0a---------------------------------------------------------------------------------\x0d\x0aUsage java2wsdl -cn : class file name\x0d\x0a-o : output file location\x0d\x0a\x0d\x0a-cp : list of classpath entries - (urls)\x0d\x0a\x0d\x0a-tn : target namespace\x0d\x0a\x0d\x0a-tp : target namespace prefix\x0d\x0a\x0d\x0a-stn : target namespace for schema\x0d\x0a\x0d\x0a-stp : target namespace prefix for schema\x0d\x0a\x0d\x0a-sn : service name\x0d\x0a\x0d\x0a-of : output file name for the WSDL\x0d\x0a\x0d\x0a-st : style for the WSDL\x0d\x0a\x0d\x0a-u : use for the WSDL\x0d\x0a\x0d\x0a-l : address of the port for the WSDL\x0d\x0a\x0d\x0a-nsg : fully qualified name of the class that implements NamespaceGenerator\x0d\x0a\x0d\x0a-p2n [,,] ...\x0d\x0a\x0d\x0a-efd : Setting for elementFormDefault (defaults to qualified)\x0d\x0a\x0d\x0a-afd : Setting for attributeFormDefault (defaults to qualified)\x0d\x0a\x0d\x0a-xc : Extra class for which schematype must be generated.\x0d\x0aUse as : -xc class1 -xc class2 ...\x0d\x0a\x0d\x0a\x0d\x0a\x0d\x0a\x0d\x0a\x0d\x0a典型地,进入你的工程的二进制编译根目录,执行命令模板如下:\x0d\x0ajava2wsdl -cp . -cn [PACKAGENAME].[CLASSNAME]-of [FILENAME].wsdl\x0d\x0a\x0d\x0a现在我们假设在samples.helloworld.service.axiom;包下面有个HelloWorldService类,工程的类文件编译后存放在build\classes目录下,那么,首先进入该目录中,然后执行以下命令:\x0d\x0ajava2wsdl -cp . -cn samples.helloworld.service.axiom.HelloWorldService -of HelloWorldService.wsdl\x0d\x0a\x0d\x0a执行后的CMD提示如下说明已经成功执行了:\x0d\x0a\x0d\x0aUsing AXIS2_HOME: D:\axis2-1.1.1\x0d\x0aUsing JAVA_HOME: C:\Program Files\Java\jdk1.5.0_06