标签: wsimport

wsimport"无法解析名称......"

我一直在尝试导入以下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 wsdl web-services wsimport

15
推荐指数
2
解决办法
2万
查看次数

wsimport - 两个声明导致冲突,给出相同的行

尝试wsimport用于为SOAP端点生成客户端.WSDL和使用的所有XSD文件都是本地副本.

这是正在执行的命令:

wsimport ./bwWsdl.xml -p com.generated -Xnocompile -d ../src -extension -keep -XadditionalHeaders -B-XautoNameResolution
Run Code Online (Sandbox Code Playgroud)

这给出了这个错误:

[ERROR] Two declarations cause a collision in the ObjectFactory class.
  line 16 of file:/schemas/newSchema.xsd

[ERROR] (Related to above error) This is the other declaration.   
  line 16 of file:/schemas/newSchema.xsd
Run Code Online (Sandbox Code Playgroud)

请注意,报告的碰撞的行号是相同的.

这是架构:

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"
  version="2.004" id="OTA2003A2009A">

  <xs:complexType name="TPA_ExtensionsType">
    <xs:annotation>
      <xs:documentation xml:lang="en">Description here.
      </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:any processContents="skip" minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>
  </xs:complexType>

  <xs:element name="TPA_Extensions" type="TPA_ExtensionsType">
    <xs:annotation>
      <xs:documentation xml:lang="en">More description here.</xs:documentation>
    </xs:annotation>
  </xs:element> …
Run Code Online (Sandbox Code Playgroud)

java xsd jaxb wsimport

15
推荐指数
1
解决办法
3万
查看次数

JAXB的混合内容无法使用WSDL

我正在使用NetBeans,我有两个项目:

  • 用于生成Web服务并将其部署到GlassFish的EJB模块
  • 一个简单的控制台客户端,用于测试和使用此Web服务

对于web服务,我使用的是带有混合内容元素的XSD.使用以下代码为JAXB导入添加绑定文件:

<?xml version="1.0" encoding="UTF-8"?>
<jaxb:bindings
 xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
 xmlns:xjc= "http://java.sun.com/xml/ns/jaxb/xjc" jaxb:extensionBindingPrefixes="xjc"
 jaxb:version="2.0">
  <jaxb:globalBindings generateMixedExtensions="true"/>
</jaxb:bindings>
Run Code Online (Sandbox Code Playgroud)

它生成了这段代码:

@XmlMixed
@OverrideAnnotationOf
protected List<Serializable> contentOverrideForED;
Run Code Online (Sandbox Code Playgroud)

我可以使用这个生成的代码,虽然它并不理想.

我的问题在于客户端,我已经为我生成和部署的webservice添加了一个Web服务引用,只在localhost上运行.

使用相同的绑定文件WSDL Customization: External Binding File不会产生content代码,也不会直接使用它作为选项Wsimport,也不会将其用作Jaxb option.我有一种感觉,这种设置在某种程度上被忽视了,但是怎么样?

为什么最初的JAXB生成包括它以及wsimport为什么不使用它?我有点困惑.

java netbeans web-services jaxb wsimport

15
推荐指数
1
解决办法
2701
查看次数

wsimport不工作

当我尝试使用wsimport命令提示符下面的命令时,它工作正常:

wsimport -d generated C:\Users\generated\wsdlfile.xml
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试使用wsimport如下时,它会抛出以下错误:

wsimport -d generated https://example.com/exampleService.svc?wsdl

Failed to read the WSDL document: https://example.com/exampleService.svc?wsdl, because 1) could not find the document; /2) the document could not be read; 3) the root element of the document is not <wsdl:definitions>.

[ERROR] failed.noservice=Could not find wsdl:service in the provided WSDL(s): At least one WSDL with at least one service definition needs to be provided.

        Failed to parse the WSDL.
Run Code Online (Sandbox Code Playgroud)

我可以从浏览器访问URL,同样的事情是从其他系统(从我的PC)开始.可能是什么原因?

wsdl wsimport

14
推荐指数
1
解决办法
2万
查看次数

java.lang.NoClassDefFoundError:wsimport上的javax/activation/DataSource Intellij java 9

我正在尝试使用JDK-9为Intellij-Idea 2017.2.5(Webservices - >从wsdl生成代码...)生成wsdl的类存根

我得到这个异常,我想知道如何告诉intellij传递"--add-modules java.activation"来完成操作.

(我想我应该从命令行运行wsimport ...)

Exception in thread "main" java.lang.NoClassDefFoundError: javax/activation/DataSource
    at com.sun.xml.bind.v2.model.impl.RuntimeBuiltinLeafInfoImpl.<clinit>(RuntimeBuiltinLeafInfoImpl.java:461)
    at com.sun.xml.bind.v2.model.impl.RuntimeTypeInfoSetImpl.<init>(RuntimeTypeInfoSetImpl.java:65)
    at com.sun.xml.bind.v2.model.impl.RuntimeModelBuilder.createTypeInfoSet(RuntimeModelBuilder.java:133)
    at com.sun.xml.bind.v2.model.impl.RuntimeModelBuilder.createTypeInfoSet(RuntimeModelBuilder.java:85)
    at com.sun.xml.bind.v2.model.impl.ModelBuilder.<init>(ModelBuilder.java:156)
    at com.sun.xml.bind.v2.model.impl.RuntimeModelBuilder.<init>(RuntimeModelBuilder.java:93)
    at com.sun.xml.bind.v2.runtime.JAXBContextImpl.getTypeInfoSet(JAXBContextImpl.java:455)
    at com.sun.xml.bind.v2.runtime.JAXBContextImpl.<init>(JAXBContextImpl.java:303)
    at com.sun.xml.bind.v2.runtime.JAXBContextImpl.<init>(JAXBContextImpl.java:142)
    at com.sun.xml.bind.v2.runtime.JAXBContextImpl$JAXBContextBuilder.build(JAXBContextImpl.java:1174)
    at com.sun.tools.xjc.reader.xmlschema.bindinfo.BindInfo.getJAXBContext(BindInfo.java:335)
    at com.sun.tools.xjc.reader.internalizer.SCDBasedBindingSet.apply(SCDBasedBindingSet.java:235)
    at com.sun.tools.xjc.ModelLoader.createXSOM(ModelLoader.java:541)
    at com.sun.tools.xjc.api.impl.s2j.SchemaCompilerImpl.bind(SchemaCompilerImpl.java:269)
    at com.sun.tools.xjc.api.impl.s2j.SchemaCompilerImpl.bind(SchemaCompilerImpl.java:95)
    at com.sun.tools.ws.processor.modeler.wsdl.JAXBModelBuilder.bind(JAXBModelBuilder.java:142)
    at com.sun.tools.ws.processor.modeler.wsdl.WSDLModeler.buildJAXBModel(WSDLModeler.java:2244)
    at com.sun.tools.ws.processor.modeler.wsdl.WSDLModeler.internalBuildModel(WSDLModeler.java:191)
    at com.sun.tools.ws.processor.modeler.wsdl.WSDLModeler.buildModel(WSDLModeler.java:137)
    at com.sun.tools.ws.wscompile.WsimportTool.buildWsdlModel(WsimportTool.java:391)
    at com.sun.tools.ws.wscompile.WsimportTool.run(WsimportTool.java:204)
    at com.sun.tools.ws.wscompile.WsimportTool.run(WsimportTool.java:179)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:564)
    at com.sun.tools.ws.Invoker.invoke(Invoker.java:135)
    at com.sun.tools.ws.WsImport.main(WsImport.java:57)
Caused by: java.lang.ClassNotFoundException: javax.activation.DataSource
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:582)
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:185)
    at …
Run Code Online (Sandbox Code Playgroud)

wsdl web-services intellij-idea wsimport java-9

14
推荐指数
3
解决办法
2万
查看次数

jax-ws/wsimport生成带有void返回的WebMethod - 相同的Request/ResponseWrapper

我正在使用客户端的WSDL文件,该文件对输入和输出消息使用相同的元素定义,但是我无法让JAX-WS/JAXB解组响应.

<wsdl:message name="invokeServiceRequest">
    <wsdl:part element="impl:requests" name="multiRequestWrapper"/>
</wsdl:message>
<wsdl:message name="invokeServiceResponse">
    <wsdl:part element="impl:requests" name="result"/>
</wsdl:message>
<wsdl:portType name="GCGatewayPortType">
    <wsdl:operation name="requests">
        <wsdl:input message="impl:invokeServiceRequest" name="invokeServiceRequest"/>
        <wsdl:output message="impl:invokeServiceResponse" name="invokeServiceResponse"/>
    </wsdl:operation>
</wsdl:portType>
Run Code Online (Sandbox Code Playgroud)

由于某种原因,wsimport生成的代码具有void返回,并且在收到响应时似乎不更新INOUT参数.

/**
 * This class was generated by the JAX-WS RI.
 * JAX-WS RI 2.1.7-b01-
 * Generated source version: 2.1
 */
...
@WebMethod
@RequestWrapper(localName = "requests", targetNamespace = "http://cg.test.com/", className = "com.test.cg.RequestsType")
@ResponseWrapper(localName = "requests", targetNamespace = "http://cg.test.com/", className = "com.test.cg.RequestsType")
public void requests(
    @WebParam(name = "paramOne", targetNamespace = "http://cg.test.com/", mode = WebParam.Mode.INOUT)
    Holder<String> paramOne, …
Run Code Online (Sandbox Code Playgroud)

java soap jax-ws wsimport

13
推荐指数
2
解决办法
1万
查看次数

更改使用wsimport生成的Web服务客户端上的URL

我正在尝试为访问WSDL描述的Web服务的Java应用程序编写一个模块.源WSDL直接从我认为是ASP.NET Web服务下载; 服务URL以.asmx扩展名结尾,在浏览器中查看服务URL显示可用于下载WSDL的链接.

对我而言,一个关键要求是能够在不重新编译的情况下切换服务URL.给我的URL显然是一个测试服务器,我知道在生产中我将获得一个生产URL使用.我还希望能够自己创建一个模拟服务器进行测试,并保留将来指定新URL的功能,而无需在移动服务时重新编译.实际上,我希望我们的应用程序的安装能够在不同的URL 实例化web服务的多个实例.

但我的概念似乎与wsimport工具为我做的事情不相符.继f1sh的答案在这里,我生成的Java代码从我用这个命令下载WSDL:

wsimport -Xnocompile -keep -b binding.xml wsdlFile.wsdl
Run Code Online (Sandbox Code Playgroud)

我发现生成的代码对我下载的wsdlFile.wsdl有一个硬编码的引用,其中包含服务URL.我们的应用程序不会以通过在运行时编辑WSDL文件来配置它的方式运行.我需要在构建时将代码编译到我的应用程序中,并且可以在实例化时设置服务URL.

我不完全确定为什么WSDL甚至需要在运行时解析; 我的理解是WSDL提供了足够的信息来生成可以访问web服务的代码,所以我不确定它为服务URL以外的生成代码提供了什么,我不知道为什么服务URL没有提供构造函数或可通过生成的Web服务类上的方法进行配置.我肯定错过了什么.

这种情况的一般做法是什么?大多数人会为他们将要使用的每个URL重新生成代码吗?代码是在运行时生成的吗?是否有另一个我可以使用的WSDL工具,它将使用可配置的URL构建客户端代码?

java wsdl web-services wsimport

12
推荐指数
2
解决办法
8929
查看次数

在哪里下载以及如何安装JAX-WS wsimport工具?

有人可以告诉我在哪里下载以及如何安装JAX-WS wsimport工具吗?我需要下载并安装它.

实际上我想在我的代码中使用SOAP webservices,我需要JAX-WS wsimport工具.我的谷歌搜索对我没什么帮助.

java soap-client wsimport

12
推荐指数
1
解决办法
3万
查看次数

使用异常use ="encoded"解析WSDL时出错

每次我运行wsimport,我都会收到此错误:

[错误]"不支持使用SOAP编码.文件中第65行的SOAP扩展元素:dummy.wsdl has use ="encoded""无法解析WSDL.

WSDL(错误块):

<wsdl:input name="dummyRequest">
        <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
                   namespace="urn:cmg.stdapp.webservices.generalplugin" use="encoded" />
</wsdl:input>
Run Code Online (Sandbox Code Playgroud)

soap wsdl web-services wsimport

12
推荐指数
1
解决办法
1万
查看次数

wsimport - 如何在单独的项目/文件夹中生成服务端点类和JAXB类

对于具有多个Web服务(多个WSDL)的项目,我们使用自上而下的方法.每个Web服务都需要设置为单独的项目,并作为单独的战争部署.

问题是WSDL共享一些常见的.xsd文件.目前,如果我们为每个WSDL运行wsimport,则每个Web服务项目中都会复制常见的JAXB类.

理想情况下,我们希望在公共共享项目中单独生成JAXB类,然后在每个Web服务项目中重用JAXB类项目,但wsimport不提供跳过JAXB类生成或指定其他位置的选项对于JAXB类.

关于如何在不同的JAX-WS Web服务端点之间共享JAXB类的任何想法?

java web-services jax-ws jaxb wsimport

11
推荐指数
2
解决办法
3万
查看次数

标签 统计

wsimport ×10

java ×7

web-services ×6

wsdl ×5

jaxb ×3

jax-ws ×2

soap ×2

intellij-idea ×1

java-9 ×1

netbeans ×1

soap-client ×1

xsd ×1