Search code examples
ibm-integration-bus

Unable to deploy shared library into IIB integration server


I am trying to deploy a shared library in IIB v10 toolkit integration server which has 1 WSDL created through New->Message Model -> using existing WSDL. It internally imported referencing schema files.B ut while trying to deploy Shared lib project into integration server in toolkit, it's failing with below error:

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'

Is it a problem with relative path in wsdl referencing XSD schema files?

<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"/>

Could anyone you please suggest any solution?

Complete error details:

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.

Below are my files: 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(auto generated 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>

Thanks


Solution

  • IIB have a specific way to handle WSDL / XSD : usually, a WSDL contains a XSD, but IIB consider it should be in two different files (that's what it does when you import an existing WSDL, it split it into different files)

    You can do what you are trying to achieve in a different way : your XSD import should be done in the .xsd generated while importing the WSDL, instead of being done in the .wsdl directly.

    A small extract from one of my WSDL / XSD referencing another 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"/>
    [...]