当前位置: 首页 > 知识库问答 >
问题:

单个文件中目标命名空间的多个

南门祯
2023-03-14

我使用maven-jaxb2-plugin生成java文件从wsdl之一。运行“生成源”目标后,我得到以下错误

[ERROR] Error while parsing schema(s).Location[
file:/home/*/src/main/resources/soap/binding.xjb{8,30} ]. 
com.sun.istack.SAXParseException2; systemId: file:/home/*/src/main/resources/soap/binding.xjb; lineNumber: 8; columnNumber: 30; 
Multiple <schemaBindings> are defined for the target namespace "http://schemas.***"

有几个wsdl文件,我需要不同的目标包,所以我尝试使用绑定文件,但现在只有1个wsdl。

这是我的插件配置

<configuration>
    <schemaLanguage>WSDL</schemaLanguage>
    <schemaDirectory>
        ${basedir}/src/main/resources/soap
    </schemaDirectory>
    <schemaIncludes>
        <include>manager/*.wsdl</include>
    </schemaIncludes>
    <bindingDirectory>
        ${basedir}/src/main/resources/soap
    </bindingDirectory>
</configuration>

这是装订。xjb文件

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<jaxb:bindings
        version="2.1"
        xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
        xmlns:xs="http://www.w3.org/2001/XMLSchema">

    <jaxb:bindings schemaLocation="manager/service.wsdl" multiple="true" node="//xs:schema">
        <jaxb:schemaBindings>
            <jaxb:package name="com.test.manager"/>
        </jaxb:schemaBindings>
    </jaxb:bindings>
</jaxb:bindings>

开始服务。wsdl文件

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
                  xmlns:sch0="http://schemas.***"
                  xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
                  xmlns:tns="http://schemas.***"
                  targetNamespace="http://schemas.***">
    <wsdl:types>
        <xs:schema xmlns="http://schemas.***" 
                   xmlns:xs="http://www.w3.org/2001/XMLSchema" 
                   attributeFormDefault="unqualified" 
                   elementFormDefault="qualified" 
                   targetNamespace="http://schemas.***">
            <xs:simpleType name="NumericReference">
                ***
            </xs:simpleType> 
            <xs:simpleType name="EntityNumber">
                ***
            </xs:simpleType>
        </xs:schema>
        <xs:schema xmlns="http://schemas.***" 
                   xmlns:xs="http://www.w3.org/2001/XMLSchema" 
                   attributeFormDefault="unqualified" 
                   elementFormDefault="qualified" 
                   targetNamespace="http://schemas.***">
            <xs:complexType name="DisplayGroup">

看起来问题与具有相同targetNamespace的多个xs:schema元素有关,但我找不到如何在不修改wsdl的情况下修复它。

共有1个答案

阎裕
2023-03-14

JAXB通常将一个目标名称空间映射到一个包上,因此不能为同一个目标名称空间指定不同的schemaBindings

 类似资料:
  • 问题内容: 我正在尝试使用Python重命名目录中的某些文件。 假设我有一个名为的文件,并且想要删除,所以我得到的文件名将是 我正在尝试使用,但无法正常工作。我也考虑过使用字符串操作,但也没有成功。 问题答案: 使用重命名或移动文件或目录。

  • 尝试使用camel cxf bean调用外部soap服务,但不确定如何在setHeader中传递多个名称空间。 OPERATION_NAMESPACE,常量("http://test.org/Imports") 对于其中一个操作,需要传递2个命名空间作为http://test.org/Importshttp://globe.org/schema 让我知道我们如何在调用cxf bean之前将骆驼头中

  • 我一直在使用PDF文件中的命名目标来打开文件中特定位置的PDF文件。负责生成PDF文档的团队使用工具从图书标记自动生成命名目的地,因此命名目的地的名称往往类似于*9\u Glossary*或*Additional\u Information*。我们被要求用多种语言制作相同的文档。我预计我们将收到多种外语的PDF文档,在相同的位置带有书签,但图书标记的名称当然将使用这些其他语言,自动生成的命名目的地

  • 问题内容: 我有这样的事情: 我想将这些文件重命名为以下形式: 在同一目录中。 我想我可以使用,但是我不知道如何在文件夹和文件重命名的同时使用它。 问题答案: 可以使用bash for loop和: 请注意,如果目录名称包含空格,则上述解决方案将不起作用。相关链接。 另一种基于注释的解决方案(也适用于名称中也包含空格的目录):

  • 我遇到了一种情况,多个Kubernetes命名空间被配置为使用一个入口主机。对K8s入口控制器的请求将来自负载平衡器F5。 如果用户向示例发送请求。com/api/service1,该请求将降落在F5上,F5将把它路由到工作节点,而不更改URL。K8s入口需要将请求路由到不同的命名空间,但正如我所提到的,所有命名空间都使用相同的入口(例如.com)。 我关心的是K8s入口将如何将请求转发到适当的命

  • 我使用SpringBoot创建了一个SOAP Web服务服务器,并且我能够成功创建一个endpoint。但是,我无法创建多个endpoint并使用不同的URL访问它们。我想通过URL来访问处理该过程。 每个endpoint接收到的SOAP消息具有相同的模式。(命名空间和localpart是相同的!!!)我不想公开WSDL。 例如。 userA向以下URL发送以下SOAP消息:http://soap