- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我正在尝试在 https://api.sendwordnow.com/webservices/v3/users.svc?wsdl 上使用 wsimport .这是我正在使用的 wsimport。
wsimport -B-XautoNameResolution -d C:\temp -extension -J-Djavax.xml.accessExternalSchema=all -J-Djavax.xml.accessExternalDTD=all -keep -verbose -XadditionalHeaders -Xnocompile https://api.sendwordnow.com/webservices/v3/users.svc?wsdl
这里是错误。
解析 WSDL...
[WARNING] unknown extensibility element or attribute "EndpointReference"
(in namespace "http://www.w3.org/2005/08/addressing") line 1 of
https://api.sendwordnow.com/webservices/v3/users.svc?wsdl
[ERROR] Two declarations cause a collision in the ObjectFactory class.
line 1 of https://api.sendwordnow.com/webservices/v3/Users.svc?xsd=xsd3
[ERROR] (Related to above error) This is the other declaration.
line 1 of https://api.sendwordnow.com/webservices/v3/Users.svc?xsd=xsd3
[ERROR] Two declarations cause a collision in the ObjectFactory class.
line 1 of https://api.sendwordnow.com/webservices/v3/Users.svc?xsd=xsd2
[ERROR] (Related to above error) This is the other declaration.
line 1 of https://api.sendwordnow.com/webservices/v3/Users.svc?xsd=xsd2
Exception in thread "main" com.sun.tools.internal.ws.wscompile.AbortException
at com.sun.tools.internal.ws.processor.modeler.wsdl.JAXBModelBuilder.bind(JAXBModelBuilder.java:129)at
com.sun.tools.internal.ws.processor.modeler.wsdl.WSDLModeler.buildJAXBModel(WSDLModeler.java:2283)
at com.sun.tools.internal.ws.processor.modeler.wsdl.WSDLModeler.internalBuildModel(WSDLModeler.java:183)
at com.sun.tools.internal.ws.processor.modeler.wsdl.WSDLModeler.buildModel(WSDLModeler.java:126)
at com.sun.tools.internal.ws.wscompile.WsimportTool.buildWsdlModel(WsimportTool.java:429)
at com.sun.tools.internal.ws.wscompile.WsimportTool.run(WsimportTool.java:190)
at com.sun.tools.internal.ws.wscompile.WsimportTool.run(WsimportTool.java:168)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498) at
com.sun.tools.internal.ws.Invoker.invoke(Invoker.java:159) at
com.sun.tools.internal.ws.WsImport.main(WsImport.java:42)
我在 StackOverflow 上四处搜索并找到了 wsimport - Two declarations cause a collision, same line given但这是 4 年前的事了,我不知道该决议是否仍然适用。建议是删除我所做的 -p,但我仍然收到上述错误。关于我做错了什么的任何想法?我可以将 wsdl 插入 SoapUI 并生成测试 stub ,但我似乎无法克服 wsimport 问题。
更新 1我也尝试过使用模式绑定(bind)。
<?xml version="1.0" encoding="UTF-8"?>
<jxb:bindings version="1.0"
xmlns:jxb="http://java.sun.com/xml/ns/jaxb"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<jxb:bindings schemaLocation="https://api.sendwordnow.com/webservices/v3/Users.svc?xsd=xsd0">
<jxb:schemaBindings>
<jxb:package name="com.users" />
</jxb:schemaBindings>
</jxb:bindings>
<jxb:bindings schemaLocation="https://api.sendwordnow.com/webservices/v3/Users.svc?xsd=xsd1">
<jxb:schemaBindings>
<jxb:package name="com.serialization"/>
</jxb:schemaBindings>
</jxb:bindings>
<jxb:bindings schemaLocation="https://api.sendwordnow.com/webservices/v3/Users.svc?xsd=xsd2">
<jxb:schemaBindings>
<jxb:package name="com.datacontractsv2"/>
</jxb:schemaBindings>
</jxb:bindings>
<jxb:bindings schemaLocation="https://api.sendwordnow.com/webservices/v3/Users.svc?xsd=xsd3">
<jxb:schemaBindings>
<jxb:package name="com.datacontractsv1"/>
</jxb:schemaBindings>
</jxb:bindings>
<jxb:bindings schemaLocation="https://api.sendwordnow.com/webservices/v3/Users.svc?xsd=xsd4">
<jxb:schemaBindings>
<jxb:package name="com.arrays"/>
</jxb:schemaBindings>
</jxb:bindings>
<jxb:bindings schemaLocation="https://api.sendwordnow.com/webservices/v3/Users.svc?xsd=xsd5">
<jxb:schemaBindings>
<jxb:package name="com.location"/>
</jxb:schemaBindings>
</jxb:bindings>
<jxb:bindings schemaLocation="https://api.sendwordnow.com/webservices/v3/Users.svc?xsd=xsd6">
<jxb:schemaBindings>
<jxb:package name="com.datacontractsv3"/>
</jxb:schemaBindings>
</jxb:bindings>
</jxb:bindings>
这是更新后的 wsimport。
wsimport -b "C:\temp\Customization.xml" -B-XautoNameResolution -d C:\temp -extension -J-Djavax.xml.accessExternalSchema=all -J-Djavax.xml.accessExternalDTD=all -keep -verbose -XadditionalHeaders -Xnocompile https://api.sendwordnow.com/webservices/v3/users.svc?wsdl
我仍然收到与上述相同的错误消息。
更新 2最终通过以下更新解决。
<jxb:bindings schemaLocation="https://api.sendwordnow.com/webservices/v3/Users.svc?xsd=xsd2">
<jxb:schemaBindings>
<jxb:package name="com.datacontractsv2"/>
<jxb:nameXmlTransform>
<jxb:typeName suffix="Type" />
<jxb:elementName suffix="Element"/>
</jxb:nameXmlTransform>
</jxb:schemaBindings>
</jxb:bindings>
<jxb:bindings schemaLocation="https://api.sendwordnow.com/webservices/v3/Users.svc?xsd=xsd3">
<jxb:schemaBindings>
<jxb:package name="com.datacontractsv1"/>
<jxb:nameXmlTransform>
<jxb:typeName suffix="Type" />
<jxb:elementName suffix="Element"/>
</jxb:nameXmlTransform>
</jxb:schemaBindings>
</jxb:bindings>
我不是 100% 确定这是最好的甚至是正确的解决方案,但错误已经消失并且代码已生成。
最佳答案
这是我使用的最终 wsimport。
wsimport -b "C:\temp\Customization.xml" -B-XautoNameResolution -d C:\temp -extension -J-Djavax.xml.accessExternalSchema=all -J-Djavax.xml.accessExternalDTD=all -keep -verbose -XadditionalHeaders -Xnocompile https://api.sendwordnow.com/webservices/v3/users.svc?wsdl
这里是自定义绑定(bind) xml。我希望这可以帮助别人。解决这个问题真的很痛苦!
<?xml version="1.0" encoding="UTF-8"?>
<jxb:bindings version="1.0"
xmlns:jxb="http://java.sun.com/xml/ns/jaxb"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<jxb:bindings schemaLocation="https://api.sendwordnow.com/webservices/v3/Users.svc?xsd=xsd0">
<jxb:schemaBindings>
<jxb:package name="com.users" />
</jxb:schemaBindings>
</jxb:bindings>
<jxb:bindings schemaLocation="https://api.sendwordnow.com/webservices/v3/Users.svc?xsd=xsd1">
<jxb:schemaBindings>
<jxb:package name="com.serialization"/>
</jxb:schemaBindings>
</jxb:bindings>
<jxb:bindings schemaLocation="https://api.sendwordnow.com/webservices/v3/Users.svc?xsd=xsd2">
<jxb:schemaBindings>
<jxb:package name="com.datacontractsv2"/>
<jxb:nameXmlTransform>
<jxb:typeName suffix="Type" />
<jxb:elementName suffix="Element"/>
</jxb:nameXmlTransform>
</jxb:schemaBindings>
</jxb:bindings>
<jxb:bindings schemaLocation="https://api.sendwordnow.com/webservices/v3/Users.svc?xsd=xsd3">
<jxb:schemaBindings>
<jxb:package name="com.datacontractsv1"/>
<jxb:nameXmlTransform>
<jxb:typeName suffix="Type" />
<jxb:elementName suffix="Element"/>
</jxb:nameXmlTransform>
</jxb:schemaBindings>
</jxb:bindings>
<jxb:bindings schemaLocation="https://api.sendwordnow.com/webservices/v3/Users.svc?xsd=xsd4">
<jxb:schemaBindings>
<jxb:package name="com.arrays"/>
</jxb:schemaBindings>
</jxb:bindings>
<jxb:bindings schemaLocation="https://api.sendwordnow.com/webservices/v3/Users.svc?xsd=xsd5">
<jxb:schemaBindings>
<jxb:package name="com.location"/>
</jxb:schemaBindings>
</jxb:bindings>
<jxb:bindings schemaLocation="https://api.sendwordnow.com/webservices/v3/Users.svc?xsd=xsd6">
<jxb:schemaBindings>
<jxb:package name="com.datacontractsv3"/>
</jxb:schemaBindings>
</jxb:bindings>
</jxb:bindings>
关于java - wsimport 两个声明导致冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42928279/
我正在从命令行运行 wsimport 以从 WSDL 生成 java 类,如下所示。 wsimport -J-Djavax.xml.accessExternalDTD=all -J-
当我尝试使用 wsimport从命令提示符使用以下命令,它工作正常: wsimport -d generated C:\Users\generated\wsdlfile.xml 但是,当我尝试使用 w
我有一个简单的 ant 脚本来从 sdl 构建我的类。不幸的是 wsimport 立即失败。我怀疑这与类路径有关。 这是它产生的输出:
有几个这样的问题。但我的 PATH 变量是正确的 ;%JAVA_HOME%\bin; 我的JAVA_HOME是C:\Program Files\Java\jdk1.8.0_131 当我输入 java
这很奇怪。 我正在使用 maven 的 wsimport 插件生成肥皂服务的客户端代码,如下所示... org.jvnet.jax-ws-commons
对另一个“无法找到证书”问题表示歉意。 我正在 Windows 7 计算机上进行开发。我正在使用多个 Java 版本,因此明确了所使用的 java 版本(此处为 Java6)的路径。我通过以下两行实现
我正在使用 wsimport 从服务器导入 wsdl 文件。这是我正在使用的命令: X:>wsimport -keep -verbose http://xxxxxxxxxx parsing WSDL.
我使用 wsimport 从 WSDL 文件生成代理类。生成了 A 类,但是对应于 A 的构造函数参数的 B 类却没有。这可能是什么原因?谢谢。 这是 WSDL:
我正在生成一个具有 XSD 架构的对象 但是生成 Java 代码为 protected ProjectDataObj.RoleAssignments roleAss
网络服务新手问题: wsimport 为我的 wsdl-File 生成了两个类:MyException 和 MyException_Exception,但是 MyException 没有扩展异常。如何
我正在使用 wsimport 从 WSDL 文件(也已生成)生成我的 JAX-WS 客户端,但在客户端生成与服务器端不匹配的枚举时遇到问题。 我的 WSDL 文件中的适用片段显示了正确的条目:
我在尝试生成一些 Java 类时遇到问题。 C:\Users\kon\Desktop>wsimport -keep -verbose -extension -d generated http://XX
当我使用 wsimport 为某些服务生成代理时,每个端口的生成方法签名似乎没有使用 WSDL 中指定的复杂类型;但我注意到它在其他一些服务中也是如此。 这发生在多个服务上,但最近的例子是亚马逊的 A
我有一个使用相互 SSL 身份验证的 Web 服务。安装客户端证书后,我可以在浏览器中正常访问它。 我需要能够使用 wsimport 访问它以生成 Java 代码来访问该服务。 如何设置我的凭据以便我
我使用 wsimport 生成我的 java stub 文件。为此,我在 Eclipse 中使用了一个 ant 构建文件:
我正在尝试在 https://api.sendwordnow.com/webservices/v3/users.svc?wsdl 上使用 wsimport .这是我正在使用的 wsimport。 ws
首先,我想让您知道我已经可以连接到 Web 服务服务器。我问这个问题是因为我想更深入地了解 wsimport 生成的客户端是如何工作的。根据我的研究,wsimport 使用 JAXWS。请注意,我不了
我正在尝试使用 wsimport 生成文件,但出现上述错误。我已经完成了以下步骤: 1) JAVA_HOME - 设置为 C:\Program Files\Java\jre72) c:\Desktop
我正在尝试从远程 wsdl 导入数据。我用maven编写了简单的代码如下 org.codehaus.mojo jaxws-maven-plugin
我在使用基于 wsimport 生成的类的客户端代码时收到以下 Web 服务异常: javax.xml.ws.WebServiceException: @Action and @WebMethod(a
我是一名优秀的程序员,十分优秀!