Невозможно развернуть общую библиотеку на сервере интеграции IIB - PullRequest
0 голосов
/ 17 февраля 2019

Я пытаюсь развернуть общую библиотеку на сервере интеграции инструментария IIB v10, в котором 1 WSDL создан с помощью New-> Message Model -> с использованием существующего WSDL.Он внутренне импортировал файлы схемы ссылок. Но при попытке развернуть проект Shared lib на сервере интеграции в наборе инструментов он завершается с ошибкой ниже ошибка :

BIP4395E: Исключение Java: 'com.ibm.xml.xlxp.compiler.CompilerError ';выдается из имени класса: 'com.ibm.broker.schemamgr.MbXLXPCompiler', имя метода: 'compileSchemas', файл: 'MbXLXPCompiler.java', строка: '211'

Это проблема?с относительным путем в wsdl, ссылающимся на файлы схемы XSD?

<xsd:import namespace="http://test.com/ebo/Basic" schemaLocation="../../mds/ebo/Bsc.xsd"/>
<xsd:import namespace="http://test.com/ebo/header" schemaLocation="../../mds/ebo/header.xsd"/>
<xsd:import namespace="http://test.com/ebo/cpr" schemaLocation="../../mds/ebo/cpr.xsd"/>

Может ли кто-нибудь предложить вам какое-либо решение?

Полная информация об ошибке:

Begin running task [Deploying [TEST1SHARED] to integration server [DEVSERVER]]

BIP2087E: Integration node 'TESTNODE_USER' was unable to process the internal configuration message. 

The entire internal configuration message failed to be processed successfully. 

Use the messages following this message to determine the reasons for the failure. If the problem cannot be resolved after reviewing these messages, contact your IBM Support center. Enabling service trace may help determine the cause of the failure.

BIP4041E: Integration server 'DEVSERVER' received an administration request that encountered an exception. 

While attempting to process an administration request, an exception was encountered. No updates have been made to the configuration of the integration server. 

Review related error messages to determine why the administration request failed.

BIP5049E: A failure occurred when the integration server was preparing XML and DFDL schema files for use as part of the deployment of a library. 

A failure occurred when the integration server was preparing XML and DFDL schema files for use as part of the deployment of a library. The deployment of the library has failed, and the deployment will be rolled back. 

Review previous messages to find out why the error occurred. Be aware that DFDL schema files must also be valid XML Schema files, and that all DFDL schema files are prepared for use by the XMLNSC domain before being prepared for use by the DFDL domain.

BIP4395E: Java exception: 'com.ibm.xml.xlxp.compiler.CompilerError'; thrown from class name: 'com.ibm.broker.schemamgr.MbXLXPCompiler', method name: 'compileSchemas', file: 'MbXLXPCompiler.java', line: '211' 

The message contains that data associated with a Java exception. 

No user action required.

The task was unsuccessful: The deployment was unsuccessful. Check error messages above for explanation.

Ниже приведены мои файлы: 1) Plant_1.0.wsdl

<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
    name="Plant" targetNamespace="http://test.com/ivs/Plant" 
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:tns="http://test.com/ivs/Plant" 
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<wsdl:documentation>
    Version 1.0
    <wsdl:appinfo source="WMQI_APPINFO">
        <MRWSDLAppInfo imported="true">
            <binding hasEncoding="false" imported="true" 
 name="Plant.Binding"
                originalBindingStyle="document" />
        </MRWSDLAppInfo>
    </wsdl:appinfo>
</wsdl:documentation>
<wsdl:types>
    <schema xmlns="http://www.w3.org/2001/XMLSchema">
        <import namespace="http://test.com/ivs/Plant" 
schemaLocation="Plant_1.0_wsdl.xsd" />
    </schema>
  </wsdl:types>
    <wsdl:message name="getData">
    <wsdl:part element="tns:getData" name="payload" />
    </wsdl:message>
<wsdl:message name="getDataResponse">
    <wsdl:part element="tns:getDataResponse" name="payload" />
</wsdl:message>
<wsdl:portType name="Plant">
    <wsdl:operation name="getData">
        <wsdl:input message="tns:getData" />
        <wsdl:output message="tns:getDataResponse" />
    </wsdl:operation>
</wsdl:portType>
<wsdl:binding name="Plant.Binding" type="tns:Plant">
    <soap:binding style="document"
        transport="http://schemas.xmlsoap.org/soap/http" />
    <wsdl:operation name="getData">
        <soap:operation soapAction="getData" style="document" />
        <wsdl:input>
            <soap:body use="literal" />
        </wsdl:input>
        <wsdl:output>
            <soap:body use="literal" />
        </wsdl:output>
    </wsdl:operation>
    </wsdl:binding>
</wsdl:definitions>

Plant_1.0_wsdl.xsd (автоматически сгенерированный xsd)

    <?xml version="1.0" encoding="UTF-8"?><xsd:schema 
xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
targetNamespace="http://test.com/ivs/Plant" 
xmlns:tns="http://test.com/ivs/Plant">
 <xsd:include schemaLocation="Plant_1.0.xsd"/>
 </xsd:schema>

Plant_1.0.xsd:

<?xml version="1.0" encoding="UTF-8"?><xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://test.com/ivs/Plant" version="1.0" xmlns="http://test.com/ivs/Plant" xmlns:ibmSchExtn="http://www.ibm.com/schema/extensions">
<xsd:element ibmSchExtn:docRoot="true" name="getData" type="GetDataType"/>
<xsd:element ibmSchExtn:docRoot="true" name="getDataResponse" type="GetDataResponseType"/>

<xsd:complexType name="GetDataType">
    <xsd:sequence>
        <xsd:element name="body">
            <xsd:complexType>
                <xsd:sequence>
                    <xsd:element name="subDataType" type="xsd:string"/>
                    <xsd:element name="fromDateTime" type="xsd:dateTime"/>
                    <xsd:element name="toDateTime" type="xsd:dateTime"/>
                </xsd:sequence>
            </xsd:complexType>
        </xsd:element>
    </xsd:sequence>
</xsd:complexType>
<xsd:complexType name="GetDataResponseType">
    <xsd:sequence>
        <xsd:element name="body">
            <xsd:complexType>
                <xsd:sequence>
                    <xsd:element name="result" type="xsd:string"/>
                </xsd:sequence>
            </xsd:complexType>
        </xsd:element>
    </xsd:sequence>
</xsd:complexType>

Спасибо

1 Ответ

0 голосов
/ 19 февраля 2019

У IIB есть особый способ обработки WSDL / XSD: обычно WSDL содержит XSD, но IIB считает, что он должен быть в двух разных файлах (это то, что он делает, когда вы импортируете существующий WSDL, он разбивает его на разные файлы)

Вы можете сделать то, что пытаетесь достичь, другим способом: ваш импорт XSD должен быть выполнен в .xsd, сгенерированном при импорте WSDL, а не напрямую в .wsdl.

Небольшая выдержка из одного из моих WSDL / XSD со ссылкой на другой XSD:

XXX.wsdl:

[...]
<wsdl:types>
    <xsd:schema
        targetNamespace="http://toto.org/XXXX">
        <xsd:include schemaLocation="XXXX_InlineSchema1.xsd" />         
    </xsd:schema>
    <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
        <xsd:import
            namespace="http://toto.org/XXXX"
            schemaLocation="XXXX_InlineSchema1.xsd">
        </xsd:import>
    </xsd:schema>
</wsdl:types>
[...]

XXXX_InlineSchema1.xsd:

[...]
<xsd:import namespace="http://test.com/ebo/Basic" schemaLocation="../../mds/ebo/Bsc.xsd"/>
<xsd:import namespace="http://test.com/ebo/header" schemaLocation="../../mds/ebo/header.xsd"/>
<xsd:import namespace="http://test.com/ebo/cpr" schemaLocation="../../mds/ebo/cpr.xsd"/>
[...]
...