标签: wsimport

没有为jax-ws ri 2.2.1为amazon ecs wsdl文件生成的枚举

我正在尝试为以下amazon wsdl生成工件:http:
//webservices.amazon.com/AWSECommerceService/AWSECommerceService.wsdl

使用以下ant任务:

<taskdef name="wsimport" classname="com.sun.tools.ws.ant.WsImport">
    <classpath>
        <pathelement location="${BUILD_LIBS}/jaxws-ri/lib/jaxws-tools.jar"/>
    </classpath>
</taskdef>

<target name="wsimport" depends="init">
    <delete dir="${generated.src}" />
    <mkdir dir="${generated.src}"/>
    <wsimport
        debug="true"
    keep="true"
    verbose="true"
    destdir="${generated.src}"
    package="com.amazon.webservices.ecs"
    wsdl="wsdl/AWSECommerceService.wsdl"/>
</target>
Run Code Online (Sandbox Code Playgroud)

但是没有为以下元素生成java工件,如下所示:

<xs:element name="Condition">
    <xs:simpleType>
        <xs:restriction base="xs:string">
            <xs:enumeration value="All"/>
            <xs:enumeration value="New"/>
            <xs:enumeration value="Used"/>
            <xs:enumeration value="Collectible"/>
            <xs:enumeration value="Refurbished"/>
       </xs:restriction>
   </xs:simpleType>
</xs:element>
Run Code Online (Sandbox Code Playgroud)

即使生成了所有其他元素,基本上也不会生成枚举.以前有人见过这个问题吗?我正在使用jax-ws ri 2.2.1 http://jax-ws.java.net/2.2.1/
谢谢

java ant wsdl web-services wsimport

7
推荐指数
1
解决办法
4159
查看次数

请帮助:xjc抛出"两个声明导致ObjectFactory类中的冲突"

通过简化的XSD获取以下内容:

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema targetNamespace="com.acme" xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:element name="Widget">
        <xs:complexType>
            <xs:sequence>
                <xs:element 
                    minOccurs="0" name="color" nillable="true" type="xs:string" />
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="WidgetColor" type="xs:string" />
</xs:schema>
Run Code Online (Sandbox Code Playgroud)

然后,尝试以下操作:

xjc test.xsd
Run Code Online (Sandbox Code Playgroud)

您应该总是得到以下异常:

parsing a schema...
compiling a schema...
[ERROR] Two declarations cause a collision in the ObjectFactory class.
  line 11 of file:/C:/test.xsd

[ERROR] (Related to above error) This is the other declaration.
  line 7 of file:/C:/test.xsd

Failed to produce code.
Run Code Online (Sandbox Code Playgroud)

请注意,元素名称" Widget "是complexType,并且具有名为" color "的元素.在元素" Widget " 的同一级别,还有一个名为" WidgetColor " 的简单元素.

什么是更令人费解的是,如果你删除 …

web-services jax-ws jaxb xjc wsimport

7
推荐指数
1
解决办法
8319
查看次数

XSD和WSDL在不同的目录中

在我的工作中使用jaxws-maven-plugin进行代码生成.我有两个项目是"普通"和"客户".结构大致如下:

app/
  common/
    resource/
      some.xsd
  client/
    resource/
      some.wsdl
Run Code Online (Sandbox Code Playgroud)

如何使用项目"common"中的xsd在项目"client"中从wsdl生成类?

pom.xml中:

            <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>jaxws-maven-plugin</artifactId>
            <executions>
                <execution>
                    <goals>
                        <goal>wsimport</goal>
                    </goals>
                    <configuration>
                        <verbose>true</verbose>
                        <bindingFiles>
                            <bindingFile>${project.parent.basedir}/common/resource/some.xsd</bindingFile>
                        </bindingFiles>
                        <wsdlFiles>
                            <wsdlFile>/resource/some.wsdl</wsdlFile>
                        </wsdlFiles>
                    </configuration>
                </execution>
            </executions>
        </plugin>
Run Code Online (Sandbox Code Playgroud)

wsdl java-ws wsimport maven

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

未定义的元素声明'xs:schema'

我是网络服务的新手.

我必须为Web服务编写rest Web服务客户端.Web服务在SoapUI上运行正常.URL的WSDL文件提供给我.但是当我在Eclipse项目中添加wsdl文件时,它会产生编译错误

src-resolve.4.2: Error resolving component 'xs:schema'. It was detected that 'xs:schema' is in namespace 'http://www.w3.org/2001/XMLSchema', but components from this namespace are not referenceable from schema document 'file:///E:/Ashish%20Workspace/HATStoLSAMS%20Webservice/HATS2LSAMSWS/WebContent/WEB-INF/wsdl/CorpsiteService.svc.wsdl'. If this is the incorrect namespace, perhaps the prefix of 'xs:schema' needs to be changed. If this is the correct namespace, then an appropriate 'import' tag should be added to 'file:///E:/Ashish%20Workspace/HATStoLSAMS%20Webservice/HATS2LSAMSWS/WebContent/WEB-INF/wsdl/CorpsiteService.svc.wsdl'.
Run Code Online (Sandbox Code Playgroud)

我搜索了很多东西以摆脱这些错误,但没有任何效果.如果我忽略错误并尝试使用wsimport和wsdl2java命令创建存根,则会出错

[ERROR] undefined element declaration 'xs:schema'
line 1 of http://chec.local/STAR.WCF/CorpsiteService.svc?singlewsdl
Run Code Online (Sandbox Code Playgroud)

我使用下面的命令来生成存根

wsimport -d e:\test -s E:\wssrc http://chec.local/STAR.WCF/CorpsiteService.svc?singlewsdl -wsdllocation "../../../../../WEB-INF/wsdl/CorpsiteService.svc.wsdl"
Run Code Online (Sandbox Code Playgroud)

我在这一点上陷入困​​境,并且整天都在努力.任何有关这方面的帮助都会非常有帮助

java wsdl web-services wsdl2java wsimport

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

命令提示符中无法识别'wsimport'错误

我是网络服务的新手.我正在尝试使用此命令生成存根:

wsimport -d ./build -s ./src  -p com.ECS.client.jax http://webservices.amazon.com/AWSECommerceService/AWSECommerceService.wsdl -b jaxws-custom.xml
Run Code Online (Sandbox Code Playgroud)

我在cmd中收到此错误:

wsimport无法识别

我的Java环境变量系统路径是C:\Program Files (x86)\Java\jdk1.7.0.我究竟做错了什么?


我使用netbeans中的wsimport而不是cmd来解决这个问题...但我仍然不知道为什么我不能从cmd中使用它.

java wsdl web-services wsimport web

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

apt vs wsgen vs wsimport .Confusion什么时候使用什么以及为什么不使用另一个

我一直在尝试编写一个Web服务(JAX-WS),并且我已经完成了从2006年到2013年的一些教程.其中大多数是关于某些IDE的.那些谈论手动创建/部署Web服务的人都使用ant脚本.到这里一切都很好.

在我检查ant脚本的那一刻,混乱就开始了.一些旧的教程使用APT任务来编译SEI,然后wsgen用于生成工件.较新的只使用wsgen(尽管APT在ant脚本中被定义为taskdef).此外,正如我一直在阅读有关JAVA 7文档的内容,它表示您不需要使用wsgen,因为javac本身会执行所有编译和工件请求.for WS是在运行时动态生成的.

我尝试在SEI上使用javac命令并将其部署在tomcat上,但它没有用.

任何人都可以澄清我需要在JAVA SE 7版本中使用哪些命令来部署Web服务.

另外,我想知道每个命令生成什么以及何时使用哪些命令.

根据我的知识,开发和部署不需要wsimport,但只需要构建WS-client.它是否正确?如果没有,请提供指示,以明确我的理解.

提前致谢

此外,如果我重复我的自我,那么对不起,因为我是StackOverflow的新手并且对此不太熟悉.:)

apt web-services jax-ws wsimport wsgen

7
推荐指数
1
解决办法
6956
查看次数

JDK8无法与JDK8(WS客户端)一起使用

我有一个非常简单(现有)的Web服务,我想生成一个反对使用JDK8的Web服务客户端.

我正在使用纯JDK8工具链,这意味着我使用了JDK8目录中的wsimport工具.

现在来看问题:JDK8中wsimport工具生成的Java源代码不符合JDK8 Javadoc.您可能知道Javadoc工具在JDK8中变得更加严格.

请考虑以下简单架构:

<xs:schema version="1.0" targetNamespace="http://mavenwsserver.ws.mytest.org/">
  <xs:element name="operation" type="tns:operation"/>
  <xs:element name="operationResponse" type="tns:operationResponse"/>
  <xs:complexType name="operation">
    <xs:sequence>
      <xs:element name="person" type="tns:person" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="person">
    <xs:sequence>
      <xs:element name="firstName" type="xs:string" minOccurs="0"/>
      <xs:element name="lastName" type="xs:string" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="operationResponse">
    <xs:sequence>
      <xs:element name="return" type="xs:string" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>
</xs:schema>
Run Code Online (Sandbox Code Playgroud)

为此,wsimport工具将生成Java代码,如下所示:

package org.mytest.ws.mavenwsclient;

import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlType;


/**
 * <p>Java class for person complex type.
 * 
 * <p>The following schema fragment specifies the expected content contained …
Run Code Online (Sandbox Code Playgroud)

java web-services wsimport java-8

7
推荐指数
1
解决办法
1808
查看次数

wsimport客户端 - 自定义多个包名称

我正在使用wsimport为JAX-WS webservice调用生成客户端存根

wsimport-p选项,允许自定义包的名称.

例如.如果WSDL具有com.abc的命名空间,则可以通过wsimport使用-p com.pqr命令行调用com.abq来替换com.abc .

但是,只有在wsdl中只使用一个命名空间时,这才能正常工作.
如果wsdl中有多个名称空间,是否有办法用不同的包名替换每个名称空间.

例如.如果我希望命名空间com.abc.s1被命名空间com.pqr.s1和命名空间com.abc.s2替换为命名空间com.pqr.s2.

如果我使用wsimport -p com.pqr.s1,它会将所有生成的类放入com.pqr.s1

有没有办法实现我想要的?

java wsdl web-services jax-ws wsimport

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

wsimport:多个wsdl覆盖ObjectFactory

我有多个(假设是2,A和B)webservices,我需要生成一个客户端来使用它们.在Netbeans中,我使用向导"new Web Service Client"传递两个wsdl,查看输出Netbeans只需为每个wsmport调用wsimport.

wsimport http:/mydomain/wsA.svc?wsdl
wsimport http:/mydomain/wsB.svc?wsdl
Run Code Online (Sandbox Code Playgroud)

A和B都生成一个相同的包com.mydomain.myapp(我猜它们是在同一个命名空间中定义的),所以我得到了在同一个包中合并的A和B的存根类集.

但是,wsimport还为每个Web服务创建一个ObjectFactory,因此如果我在AI获取与B定义相关的ObjectFactory之后生成B的存根(因为第一个,A被覆盖).相反,如果我切换订单,A的ObjectFactory仍然存在.

问题是我需要两个ObjectFactories才能为Web服务A和B的类型创建JAXBElements包装clas实例.

有没有办法在Java包中映射A的名称空间,在另一个中映射B以获取

com.mydomain.myapp.a
com.mydomain.myapp.b
Run Code Online (Sandbox Code Playgroud)

所以保留两个ObjectFactories?

简单的重构没有帮助,因为在内部调用了getClass(),一旦一个包被重构,它就不再起作用了.

java wsdl jaxb wsimport objectfactory

6
推荐指数
1
解决办法
8777
查看次数

如何为jar创建和包含Java类和多个WSDL

我正在从多个wsdl文件生成java类.作品.但是,我想在@WebServiceClient注释中提供适当的wsdl文件.在wsdlLocation属性中,我希望目录路径与不同的文件名连接在一起.例如/myDir/myWsdl-1.wsdl用于第一个Web服务.但是,wsdlLocation仅填充"/ myDir" - 没有服务名称.如何为每个wsdl提供该名称?

@WebServiceClient(name = "myService", targetNamespace = "http://mycompany.com/services/", wsdlLocation = "/myDir")
Run Code Online (Sandbox Code Playgroud)

以下是我的指示:

<wsdlLocation>/myDir</wsdlLocation>
<wsdlDirectory>src/main/resources/myDir</wsdlDirectory>
<wsdlFiles>
    <wsdlFile>myWsdl-1.wsdl</wsdlFile>
    <wsdlFile>myWsdl-2.wsdl</wsdlFile>
    <wsdlFile>myWsdl-3.wsdl</wsdlFile>
    <wsdlFile>myWsdl-4.wsdl</wsdlFile>
</wsdlFiles>
Run Code Online (Sandbox Code Playgroud)

是什么让我失去了注意力?

谢谢你的任何提示.费德.

wsimport maven

6
推荐指数
1
解决办法
1886
查看次数

标签 统计

wsimport ×10

web-services ×7

java ×6

wsdl ×6

jax-ws ×3

jaxb ×2

maven ×2

ant ×1

apt ×1

java-8 ×1

java-ws ×1

objectfactory ×1

web ×1

wsdl2java ×1

wsgen ×1

xjc ×1