我一直在尝试导入以下Web服务:http://soap.genome.jp/KEGG.wsdl with $ {JAVA_HOME}/bin/wsimport:
wsimport -version
JAX-WS RI 2.1.6 in JDK 6
Run Code Online (Sandbox Code Playgroud)
但我收到以下错误:
parsing WSDL...
[WARNING] src-resolve: Cannot resolve the name 'soapenc:Array' to a(n) 'type definition' component.
line 19 of http://soap.genome.jp/KEGG.wsdl#types?schema1
[ERROR] undefined simple or complex type 'soapenc:Array'
line 19 of http://soap.genome.jp/KEGG.wsdl
(....)
Run Code Online (Sandbox Code Playgroud)
问题来自WSDL还是来自wsimport的实现?我应该使用其他工具吗?
谢谢
皮埃尔
Java 6 JAX-WS"wsimport"实用程序在给定WSDL文件的情况下生成Web服务框架(接口)方面做得很好,但有一个个人烦人的异常.
当给定使用SOAP Document/literal包装样式的WSDL时(也在此处描述),它生成一个具有"裸" SOAP绑定参数样式的服务接口(在方法签名中将多个参数和返回值扩展为"holder"对象)而不是WSDL指定的简单包装参数和返回值.其他工具,例如Axis2 wsdl2java,只需使用包装元素作为输入参数并返回值,而不是自动"展开"它们.
有可能告诉"wsimport"将SOAP绑定参数保持为"wrapped"而不是"bare"吗?
对于使用WSDL的Web服务调用,我收到错误Cannot find dispatch method for {http://ws.somecompany.com/services}ValidateUser,这究竟是什么意思?这是不是意味着找不到ValidateUser?
我的困境是我对maven中生成的源文件有疑问.
我正在尝试从WSDL生成一些类,我真的不知道处理生成的源文件的标准方法是什么.
有关此问题的最佳做法是什么?任何帮助或建议表示赞赏.
谢谢你的回答,马克
所需文件说:
如果
required()是true,则将Javabean属性映射到XML模式元素声明minOccurs="1".maxOccurs是"1"单个值属性和"unbounded"对多值的属性.如果
required()是false,那么Javabean属性将映射到XML Schema元素声明minOccurs="0".maxOccurs是"1"单个值属性和"unbounded"对多值的属性.
nillable的文档说:
如果
nillable()是true,则将JavaBean属性映射到XML Schemanillable元素声明.
xs:complexType:
public class WSData {
//...
@XmlElement(required = true, nillable = false)
public void setMonth(XmlMonthType month) {
this.month = month;
}
public void setUserLogin(String userLogin) {
this.userLogin = userLogin;
}
}
Run Code Online (Sandbox Code Playgroud)
代码xs:simpleType:
@XmlType
@XmlEnum(Integer.class)
public enum XmlMonthType …Run Code Online (Sandbox Code Playgroud) 我需要从基础身份验证后面的WSDL构建php类.
它有大量的命名空间,因此手动执行此操作看起来很麻烦.
我尝试了一些工具,但看起来auth会话不是先发制人.
我尝试将服务引用添加到WCF服务,该服务驻留在ASP.NET MVC 4项目的同一解决方案中但失败了.我收到一个错误说:
自定义工具错误:无法为服务引用"XXX"生成代码.有关详细信息,请查看其他错误和警告消息.根警告是:
警告9自定义工具警告:无法导入wsdl:portType详细信息:运行WSDL导入扩展时抛出异常:System.ServiceModel.Description.DataContractSerializerMessageContractImporter错误:类型'Newtonsoft.Json.Linq.JToken'是递归收集数据合同,不受支持.考虑修改集合'Newtonsoft.Json.Linq.JToken'的定义以删除对它自己的引用.XPath到错误源://wsdl:definitions[@targetNamespace='http://tempuri.org/']/wsdl:portType[@name='IXXX'] C:\ Projects ...\Reference.svcmap 1 1 pqrt.web
如果我从服务合同中删除了数据合同,那就有效了.我还尝试将服务引用添加到其他项目,如库项目甚至ASP.NET MVC 3项目,这一切都有效.我想知道这是否是ASP.NET MVC 4的一个问题?我正在使用VS 2012 RC.
我能想到的一个解决方法是将服务引用添加到库项目,然后从ASP.NET MVC 4调用库项目,但我讨厌这样做,因为这是一个额外的步骤.有什么建议?
我想将LinqPad连接到WCF Web服务,该服务在表单的URI中公开其WSDL信息http://server.example.com/Product/Service/Version/Soap11?wsdl.我可以成功地将此URI添加为Visual Studio WCF Web服务引用,它也可以与WcfTestClient一起使用.
连接到调用方法时,服务的实际端点是http://server.example.com/Product/Service/Soap11.
当我尝试将Web服务添加为LinqPad连接时,如果我指定Web服务的URI(包括?wsdl查询),我会收到一条LinqPad错误消息"ArgumentException:期望一个绝对的,格式良好的http URL,没有查询或片段.参数名称:serviceRoot".如果我省略?wsdl查询,我会收到400 Bad Request回复.
(400 Bad Request当我尝试创建Visual Studio Web服务引用时,我得到相同的响应,或者将服务添加到WcfTestClient,而不附加?wsdl到URI).
我可以在客户端更改任何内容以使LinqPad成功连接到此Web服务吗?或者我是否需要在服务器端搞乱配置?我不控制我正在尝试连接的Web服务,但如果必须的话,我可以在服务器上调整一些配置文件.
我正在尝试使用https://www.sandbox.paypal.com/wsdl/PayPalSvc.wsdl付款快速结账.当我打电话使用
PayPalAPIAASoapBinding paypal = new PayPalAPIAASoapBinding();
Run Code Online (Sandbox Code Playgroud)
我收到了错误
无法生成临时类(result = 1).错误CS0030:无法将类型'exprtesscheckoutdemo.com.paypal.sandbox.TupleType []'转换为'paypal.sandbox.TupleType'错误CS0029:无法隐式转换类型'paypal.sandbox.TupleType'到
怎么过来这个