Search code examples
javajaxbweblogic

Weblogic 12 with java7 doesnt set nill in JAXBElement


We have application running on weblogic 11g using java 6. Now we want to use use weblogic 12c with java 7 but we have some problem. We are using JAXB to un/marshal soap request. Now when we deploy our application to wls12 we have problem with nillable atribut in element. When I send xml with:

<data:MyElement state="ok" xsi:nil="true"/>

element in my app isnt nill:

element.isNil() return false

JUnit with this test still works so I supposed that there is no problem with java7. This problem occurs just on wls12. How should I fix this problem or at least how should I debug it

thx for help


Solution

  • To future generation which will have this problem too:

    When I turn on tracing messages, this problem occurs again.

    org.springframework.ws.server.MessageTracing=TRACE
    

    By debugging I saw that wls 12 use oracle.j2ee.ws.saaj.soap.soap11.Message11and wls 10 use weblogic.xml.saaj.SOAPMessageImpl

    All I need to do is to add this class to messageFactory:

    <bean id="messageFactory" class="org.springframework.ws.soap.saaj.SaajSoapMessageFactory">
        <property name="messageFactory">
            <bean class="weblogic.xml.saaj.MessageFactoryImpl" />
        </property>
    </bean>