(转).net调用java生成的ws R2718的问题

from http://blog.csdn.net/cyq1984/article/details/17120097
java工程,使用easywsdl生成发布的WebService的wsdl。并使用SDO的服务数据对象模型,对数据进行描述。

生成的wsdl使用vs2010的visual studio命令提示行,使用wsdl out命令生成C#相关的调用文件,发现后台会抛出如下信息:

警告: 此 Web 引用不符合 WS-I Basic Profile v1.1。
R2718: 说明中的 wsdl:binding 必须与所引用的 wsdl:portType 包含一组相同的 wsdl:operations。
- 来自命名空间“http://www.com/esb/ComponentService1”的 portType“Com
ponentService1Interface”上的操作“operation1”没有匹配的绑定。
- 在来自命名空间“http://www.com/esb/ComponentService1”的 portType“C
omponentService1Interface”上,没有与来自命名空间“http://www.com/esb/Com
ponentService1”的绑定“ComponentService1Soap11”上的操作“operation1”相匹配的
操作。
- 在来自命名空间“http://www.com/esb/ComponentService1”的 portType“C
omponentService1Interface”上,没有与来自命名空间“http://www.com/esb/Com
ponentService1”的绑定“ComponentService1Soap11”上的操作“operation1”相匹配的
操作。

有关 WS-I Basic Profile v1.1 的更多详细信息,请参阅位于以下位置的规范:
http://www.ws-i.org/Profiles/BasicProfile-1.1.html。

错误: 无法从命名空间“http://www.com/esb/ComponentService1”导入绑定“Com
ponentService1Soap11”。
- 来自命名空间“http://www.com/esb/ComponentService1”的 portType“Comp
onentService1Interface”上的操作“operation1”存在以下语法错误: 此操作没有匹配的
绑定。请检查 Binding 节中的操作、输入和输出的名称是否与 PortType 节中的相应名称
相匹配。

看起来是生成的WSDL不符合ws的某些规范(.Net对这些东西的验证真严格),但是,在java下从没碰到过此类问题。

研究相关规范及网络资源学习,发现问题根本原因在于wsdl文件中的以下“portType”片段的描述:

[html] view plain copy

与后续的“binding”部分的描述:
[html] view plain copy

两者的“input”与“output”的相关内容,name属性不一致(所谓不一致,即前者有name属性值,后者没有)。
试过之后,发现有两种解决方案:
1、去掉前者的input与output的name属性值。

2、在后者的input与output中添加与前者相同的name属性值。

即调整后的片段为:

[html] view plain copy


[html] view plain copy

总之,就是需要两者的input与output的属性保持完全的一致。

时间: 2024-10-09 05:20:45

(转).net调用java生成的ws R2718的问题的相关文章

java 调用 keytool 生成keystore 和 cer 证书

keytool是一个Java数据证书的管理工具, keytool将密钥(key)和证书(certificates)存在一个称为keystore的文件中在keystore里, 包含两种数据: 密钥实体(Key entity)——密钥(secret key)又或者是私钥和配对公钥(采用非对称加密) 可信任的证书实体(trusted certificate entries)——只包含公钥 ailas(别名)每个keystore都关联这一个独一无二的alias,这个alias通常不区分大小写 下面给出一

Java採用JNI调用VC++生成的dll(Java与C++交互)

应项目需求,须要android调用java,java再调用C++实现android一个图片匹配的功能,我们作为java组须要和C++和Android进行交互.以下是java和C++採用JNI的方式进行接口传參交互,我做的一个demo并执行成功. 什么是JNI? JNI全拼是Java Native Interface,中文意思为Java本地调用.JNI标准是Java平台的一部分.它同意java和其它语言的代码进行交互.JNI開始是为了本地已经编译好的语言,尤其是C和C++而设计的.我们也能够使用J

03_Android NDK中C语言调用Java代码,javah的使用,javap的使用以及生成签名,Android.mk的编写,C代码的编写

?? 1  案例场景,通过C语言回调Java的代码,案例的最终界面: 2  案例的代码结构如下: 3 编写DataProvider的代码: package com.example.ndkcallback; public class DataProvider { //C调用java空方法 public void helloFromJava(){ System.out.println("哈哈哈  我被调用了"); } //C调用java中的带两个int参数的方法 public int Ad

Java实现HMacMD5加密,用于淘宝客JS 组件 API 调用时生成 sign 的签名

原文:Java实现HMacMD5加密,用于淘宝客JS 组件 API 调用时生成 sign 的签名 源代码下载地址:http://www.zuidaima.com/share/1550463397874688.htm HMacMD5 加密纯 Java 实现,用于淘宝客 JS 组件 API 调用时生成 sign 的签名 另外:给大家贴一段淘宝客组件 API (JS API) 调用时,生成签名的核心代码. 另外:从事淘宝客开发的童鞋,碰到啥问题可以找我交流!!! String timestamp =

java调用wkhtmltopdf生成pdf文件,美观,省事

最近项目需要导出企业风险报告,文件格式为pdf,于是搜了一大批文章都是什么Jasper Report,iText ,flying sauser ,都尝试了一遍,感觉不是我想要的效果, 需要自己调整好多东西,样式,字体等等,好麻烦,毕竟博主这么懒的人,哈哈.-------jstarseven 言归正传: java生成pdf文件,方式很多,以上提到的哪几种方式具体可以参考这篇文章<讲解很详细>:http://blog.csdn.net/ouyhong123/article/details/2640

Java采用JNI调用VC++生成的dll(Java与C++交互)

应项目需求,需要android调用java,java再调用C++实现android一个图片匹配的功能,我们作为java组需要和C++和Android进行交互.下面是java和C++采用JNI的方式进行接口传参交互,我做的一个demo并运行成功. 什么是JNI? JNI全拼是Java Native Interface,中文意思为Java本地调用.JNI标准是Java平台的一部分,它允许java和其他语言的代码进行交互.JNI开始是为了本地已经编译好的语言,尤其是C和C++而设计的,我们也可以使用J

jmeter接口测试-调用java的jar包-csv参数化请求-BeanShellPreProcessor生成验签作为请求验证参数-中文乱码----实战

背景及思路: 需求:要做 创建新卡 接口的测试,要求: 1. 不需要每次手动修改请求参数. 方案:文中先用excle将数据准备好,导出为csv格式,再用jmeter的csv请求进行参数化 2. 卡号需要唯一: 方案:文中用jmeter的beanshell按时间戳加随机数生成 3. 请求参数中有一个参数,会根据相应的请求参数生成(文中的sign值),接口请求会验证sign是否和相应请求参数对应: 方案: 1. 文中将生成sign的源码打包放在jmeter的lib\ext\ 下, 2. 再用jmet

Java生成和操作Excel文件

JAVA EXCEL API:是一开放源码项目,通过它Java开发人员可以读取Excel文件的内容.创建新的Excel文件.更新已经存在的Excel文件.使用该API非Windows操作系统也可以通过纯Java应用来处理Excel数据表.因为它是使用Java编写的,所以我们在Web应用中可以通过JSP.Servlet来调用API实现对Excel数据表的访问. 下载: 官方网站 http://www.andykhan.com/jexcelapi/ 下载最新版本(本人下的是jexcelapi_2_6

(转载)Java生成和操作Excel文件

JAVA EXCEL API:是一开放源码项目,通过它Java开发人员可以读取Excel文件的内容.创建新的Excel文件.更新已经存在的Excel文件.使用该API非Windows操作系统也可以通过纯Java应用来处理Excel数据表.因为它是使用Java编写的,所以我们在Web应用中可以通过JSP.Servlet来调用API实现对Excel数据表的访问. 下载: 官方网站 http://www.andykhan.com/jexcelapi/ 下载最新版本(本人下的是jexcelapi_2_6