When upgrading OSB projects from version 10.3.1 to 11.1.1.4 the OEPE plugin shows the following error message in a JMS transport based business service.

Business Service error

Business Service error

Expected elements:
  unit-of-order@http://www.bea.com/wli/sb/transports/jms
  pass-caller-subject@http://www.bea.com/wli/sb/transports/jms
  response-properties@http://www.bea.com/wli/sb/transports/jms
instead of:
  response-required@http://www.bea.com/wli/sb/transports/jms
here in element outbound-properties@http://www.bea.com/wli/sb/transports/jms

The reason is a difference in the internal OSB JmsTransport.xsd schema definition for “http://www.bea.com/wli/sb/transports/jms” in both OSB version.

Oracle Service Bus 10.3.1 = /%WLHOME%/osb_10.3/lib/sb-schemas.jar

    <xs:choice>
        <xs:element name="outbound-properties" type="JmsOutboundPropertiesType"/>
        <xs:element name="inbound-properties" type="JmsInboundPropertiesType"/>
    </xs:choice>
	.....
    <xs:complexType name="JmsOutboundPropertiesType">
        <xs:sequence>
            <!-- type of outbound message: One of: Text or Bytes -->
            <xs:element name="message-type" type="JmsMessageTypeEnum"/>
            <!-- outbound JMS message time-to-live, in seconds -->
            <xs:element name="expiration" type="xs:int" minOccurs="0"/>
            <!-- Represents JMS message delivery mode. If it is enabled it will be set as persistent else it will be set as non-persistent -->
            <xs:element name="enable-message-persistence" type="xs:boolean" minOccurs="0"/>
            <!-- whether or not this endpoint needs to wait for response to be
                 published to specified destination -->
            <xs:element name="response-required" type="xs:boolean" minOccurs="0"/>
            <!-- response destination, only applicable if response-required is true -->
            <xs:element name="response-URI" type="xs:string" minOccurs="0"/>
            <!-- how long to wait for response to be published, in seconds, only
                applicable if response-required is true  -->
            <xs:element name="response-timeout" type="xs:int" minOccurs="0"/>
            <!-- JMS unit-of-order value, for ordered message delivery,
                 only applicable to JMS destinations hosted on BEA WLS 9.0
              for more details, see http://e-docs.bea.com/wls/docs90/jms/uoo.html -->
            <xs:element name="unit-of-order" type="xs:string" minOccurs="0"/>
            <!-- response correlation pattern. JMSCorrelationID represents
                 the legacy ALSB way, JMSMessageID is useful for jax-rpc and
                 other JMS interop use cases. -->
            <xs:element name="response-pattern" type="JmsResponsePatternEnum" minOccurs="0"/>
            <!-- response connection factory, only applicable if response-required is true and JMSMessageID pattern is used -->
            <xs:element name="response-CF" type="xs:string" minOccurs="0"/>
            <!-- map of targets to response queues -->
            <xs:element name="response-target-map" type="JmsDestinationMap" minOccurs="0"/>
            <!-- whether to pass the callers subject or not -->
            <xs:element name="pass-caller-subject" type="xs:boolean" minOccurs="0"/>
        </xs:sequence>
    </xs:complexType>

Oracle Service Bus 11.1.14 = /%WLHOME%/Oracle_OSB1/lib/sb-schemas.jar

    <xs:complexType name="JmsOutboundPropertiesType">
        <xs:sequence>
            <!-- type of outbound message: One of: Text or Bytes -->
            <xs:element name="message-type" type="JmsMessageTypeEnum" minOccurs="0"/>
            <!-- outbound JMS message time-to-live, in seconds -->
            <xs:element name="expiration" type="xs:int" minOccurs="0"/>
            <!-- Represents JMS message delivery mode. If it is enabled it will be set as persistent else it will be set as non-persistent -->
            <xs:element name="enable-message-persistence" type="xs:boolean" minOccurs="0"/>
            <!-- JMS unit-of-order value, for ordered message delivery,
                 only applicable to JMS destinations hosted on BEA WLS 9.0
              for more details, see http://e-docs.bea.com/wls/docs90/jms/uoo.html -->
            <xs:element name="unit-of-order" type="xs:string" minOccurs="0"/>
            <!-- whether to pass the callers subject or not -->
            <xs:element name="pass-caller-subject" type="xs:boolean" minOccurs="0"/>
            <!-- Response related properties, if there is no response required then this element does not exist. -->
            <xs:element name="response-properties" type="JmsOutboundResponsePropertiesType" minOccurs="0"/>
        </xs:sequence>
    </xs:complexType>

As you can see that multiple elements, amongst them the response-required element, have disappeared in the JmsOutboundPropertiesType. Editing the Business Service file manual, or even better use OEPE to change the configuration of your business service to trigger OEPE to regenerate a valid XML structure.

Houd jij je kennis graag up to date?

Mis niets meer van onze kennisdocumenten, events, blogs en cases: ontvang als eerste het laatste nieuws in je inbox!

Fijn dat we je op de hoogte mogen houden!