2

我的目录中没有使用 xjc 或诸如氧气和 eclipse xml 插件之类的工具的问题,但似乎找不到与 wsimport 命令一起使用的风格。

使用命名空间进行解析,以下条目适用于 xjc,但不适用于 wsimport。

<public publicId="http://schemas.ticomgeo.com/2010/geonet/common/ServiceMessageTypes/v0" uri="./MessageTypes/ServiceMessageTypes.xsd"/>

这是我发出的命令

xjc /data/catalog.work/wsdefs/HSTypes/HealthAndStatusV1.xsd -catalog /data/catalog.work/wsdefs/catalog3.xml

wsimport -verbose /data/catalog.work/wsdefs/HealthAndStatusServiceV1.wsdl -catalog /data/catalog.work/wsdefs/catalog5.xml

我在 wsimport 中得到的错误表明它没有映射架构位置。它只查找相对于目录或 wsdl 主目录的它(它们是相同的)。

[错误] /data/catalog.work/wsdefs/ServiceMessageTypes.xsd(没有这样的文件或目录)

这是 wsdl 中的导入语句

    <xs:schema>
        <xs:import
           namespace="http://schemas.ticomgeo.com/2010/geonet/common/ServiceMessageTypes/v0"
            schemaLocation="ServiceMessageTypes.xsd"/>
    </xs:schema>

再次使用目录文件中的以下条目处理适用于 xjc

<systemSuffix systemIdSuffix="ServiceMessageTypes.xsd" uri="./MessageTypes/ServiceMessageTypes.xsd"/>

但是,使用 wsimport 我在每个元素上都会收到类似于以下内容的错误。第一个错误行号是指endpointStatusEnumType 之后元素开始的行号,第二个错误行号是指EndpointStatusEnumType 元素的开始。请注意,它正在解析文件位置以获取架构。

[错误] 'EndpointStatusEnumType' 已在文件的第 38 行定义:/data/catalog.work/wsdefs/MessageTypes/ServiceMessageTypes.xsd

[错误](与上述错误相关)第一个定义出现在文件的第 23 行:/data/catalog.work/wsdefs/MessageTypes/ServiceMessageTypes.xsd

23 <xs:simpleType name="EndpointStatusEnumType"> Web 服务端点的当前状态。>

   </xs:annotation>
   <xs:restriction base="xs:string">
     <xs:enumeration value="NORMAL"/>
      <xs:enumeration value="COMMS_ERROR"/>
        <xs:enumeration value="DISABLED"/>
    </xs:restriction>
</xs:simpleType>



<!-- Complex Types -->
<!-- -->

38 <xs:complexType name="HeaderType">"

除了与 xjc 一起使用外,这两种格式还可以与 OXYGEN 和 Eclipse XML 编辑器和验证器一起使用。

我假设 wsimport 调用与 xjc 相同的代码,所以我猜测在将模式导入 wsdl 文件的方式中存在一些问题,但这是一个非常简单的问题,或者是我正在使用的 wsimport 版本中的错误。

wsimport -版本 JAX-WS RI 2.1.6 在 JDK 6

xjc 版本“JDK 6 中的 JAXB 2.1.10”用于 XML 绑定 (JAXB) 参考实现的 JavaTM 架构,(在 JDK 6 中构建 JAXB 2.1.10)

有人对如何让目录与 wsimport 一起工作有建议吗?

4

0 回答 0