2017-10-13 17 views
0

wsdl 하나에서 Java 파일을 생성하는 데 maven-jaxb2-plugin을 사용하고 있습니다. 실행 한 후 여러 WSDL 파일이 있습니다하나의 파일에서 대상 네임 스페이스에 대한 여러 <schemaBindings>

[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.***" 

나는 다음과 같은 오류를 얻을 목표를 "- 소스 생성"그들 각각에 대해 나는 다른 대상 패키지가 필요, 그래서 바인딩 파일을 사용했지만, 지금은 단 1 WSDL에 대한 . 여기

내 플러그인 configuraiton입니다

<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> 
다음

인 binding.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> 

시작 service.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

일반적으로 JAXB는 하나의 대상 네임 스페이스를 하나의 패키지에 매핑하므로 동일한 대상 네임 스페이스에 다른 schemaBindings을 지정할 수 없습니다.