Topic
  • 14 replies
  • Latest Post - ‏2013-07-03T05:10:13Z by TrushkinAndrey
imsiva
imsiva
43 Posts

Pinned topic WESB - Body is not generated

‏2013-06-20T14:51:31Z |

Dear Team,

 

In my mediation I'm using HTTP import with post method and calling the external system. Since my external system is not accepting the operation tag which is coming from my interface, i'm using the binding style as Document literal-Non wrapped and this is not sending the operation tag. However after changing the binding style , when i test my module using the integration test client(ITC) I could not see the body structure in XSLT or BO Mapper  or service invoke primitives during the flow of the call(while testing). What i could see in (ITC) is just the context and header information.

Could anyone please guide me if the XSD itself is wrong or am I missing something here.

 

Many thanks in advance.

  • TrushkinAndrey
    TrushkinAndrey
    113 Posts

    Re: WESB - Body is not generated

    ‏2013-06-21T05:22:48Z  

    It looks like you have invalid XML in your body. But we need more detailed information:

    1. Which version of the WebSphere ESB do you use? There were some errors during business objects parsing in some product versions.

    2. Which diagnostic you can see in your logs, ffdc, for example?

     

    Based on the first look, I can recommend you enable validation on your input interface and insert validation blocks into your mediation module.

  • imsiva
    imsiva
    43 Posts

    Re: WESB - Body is not generated - XML Schema instance tag

    ‏2013-06-23T17:27:27Z  

    It looks like you have invalid XML in your body. But we need more detailed information:

    1. Which version of the WebSphere ESB do you use? There were some errors during business objects parsing in some product versions.

    2. Which diagnostic you can see in your logs, ffdc, for example?

     

    Based on the first look, I can recommend you enable validation on your input interface and insert validation blocks into your mediation module.

    Hi TrushkinAndrey,

     

    That Body issue got resolved. It was because the xsd was anonymous type. Now we converted them to proper golbal complex type. 

    however right now we are facing new issue.

    We were testing our module using HTTP export--> SCA component--> HTTP Import. This is the assembly diagram flow. We configured tcp/ip monitor to see the message structure going out of HTTPImport. Testing using test client. We found there is an xsi tag which our target system is not accepting it.

     

    The sample structure with the tag is  :

     

    <?xml version="1.0" encoding="UTF-8"?>
    <p:MyData xmlns:p="http://Lib/Interface"> --------------- > How to remove this tag
      <ReferenceData xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">    --------------- > this tag
      <LogonId/>
      <LogonPassword/>
    </ReferenceData>
      <InquiryData xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">  ----------------------------- > This Tag.
      <FirstName/>
      <LastName/>
      <MiddleName/>
    </InquiryData>
    </p:MyData>
  • TrushkinAndrey
    TrushkinAndrey
    113 Posts

    Re: WESB - Body is not generated - XML Schema instance tag

    ‏2013-06-24T03:59:10Z  
    • imsiva
    • ‏2013-06-23T17:27:27Z

    Hi TrushkinAndrey,

     

    That Body issue got resolved. It was because the xsd was anonymous type. Now we converted them to proper golbal complex type. 

    however right now we are facing new issue.

    We were testing our module using HTTP export--> SCA component--> HTTP Import. This is the assembly diagram flow. We configured tcp/ip monitor to see the message structure going out of HTTPImport. Testing using test client. We found there is an xsi tag which our target system is not accepting it.

     

    The sample structure with the tag is  :

     

    <?xml version="1.0" encoding="UTF-8"?>
    <p:MyData xmlns:p="http://Lib/Interface"> --------------- > How to remove this tag
      <ReferenceData xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">    --------------- > this tag
      <LogonId/>
      <LogonPassword/>
    </ReferenceData>
      <InquiryData xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">  ----------------------------- > This Tag.
      <FirstName/>
      <LastName/>
      <MiddleName/>
    </InquiryData>
    </p:MyData>

    It looks like you have invalid XML.

    You said me, that you have some maps in your mediation flow. WebSphere ESB in some circumstances performes incorrect mapping. For example, you have "Move" transform, and "moved" dataobject has internal dataobject, that has structure equals with internal dataobject in dataobject in another hand of the map, but different namespace. In this example ESB can move dataobject with namespace. It can be (and will be) incorrect.

  • imsiva
    imsiva
    43 Posts

    Re: WESB - Body is not generated - XML Schema instance tag

    ‏2013-06-24T05:51:31Z  

    It looks like you have invalid XML.

    You said me, that you have some maps in your mediation flow. WebSphere ESB in some circumstances performes incorrect mapping. For example, you have "Move" transform, and "moved" dataobject has internal dataobject, that has structure equals with internal dataobject in dataobject in another hand of the map, but different namespace. In this example ESB can move dataobject with namespace. It can be (and will be) incorrect.

    Yes I have BOMapper inside my mediation. However in the above sample structure , the first tag is the interface (which am using in my library module). The other two tags appears at my invoke itself(at HTTP Export end- beginning of the call.), which means before the call going to the BOMapper.

    Do we have any solution for this such that my xml which goes out of the http import is something like below.. Please help.

    <?xml version="1.0" encoding="UTF-8"?>
    <p:MyData ?
      <ReferenceData>
      <LogonId/>
      <LogonPassword/>
    </ReferenceData>
      <InquiryData >
      <FirstName/>
      <LastName/>
      <MiddleName/>
    </InquiryData>

    </p:MyData

     

  • TrushkinAndrey
    TrushkinAndrey
    113 Posts

    Re: WESB - Body is not generated - XML Schema instance tag

    ‏2013-06-24T06:21:28Z  
    • imsiva
    • ‏2013-06-24T05:51:31Z

    Yes I have BOMapper inside my mediation. However in the above sample structure , the first tag is the interface (which am using in my library module). The other two tags appears at my invoke itself(at HTTP Export end- beginning of the call.), which means before the call going to the BOMapper.

    Do we have any solution for this such that my xml which goes out of the http import is something like below.. Please help.

    <?xml version="1.0" encoding="UTF-8"?>
    <p:MyData ?
      <ReferenceData>
      <LogonId/>
      <LogonPassword/>
    </ReferenceData>
      <InquiryData >
      <FirstName/>
      <LastName/>
      <MiddleName/>
    </InquiryData>

    </p:MyData

     

    Yes, you have, I think.

    1. Have you sinchronized your interfaces and references to your implementation?

    2. Have you internal business objects in your input/output (for your BO map) BOs? If you have it, is the only high-level "move" transfromation in your map, or you have transformations for all objects?

  • imsiva
    imsiva
    43 Posts

    Re: WESB - Body is not generated - XML Schema instance tag

    ‏2013-06-24T09:50:32Z  

    Yes, you have, I think.

    1. Have you sinchronized your interfaces and references to your implementation?

    2. Have you internal business objects in your input/output (for your BO map) BOs? If you have it, is the only high-level "move" transfromation in your map, or you have transformations for all objects?

    1.I did not get what you meant by synchronized your interfaces and references to your implementation. Please can you explain little further.

    2. Yes I'm using the BO Mapper. Moving at the top level(Since am doing poc my request and response BO are same.)  So i presume a simple move at the top level will map all the objects in it.

  • imsiva
    imsiva
    43 Posts

    Re: WESB - Body is not generated - XML Schema instance tag

    ‏2013-06-24T09:55:43Z  
    • imsiva
    • ‏2013-06-24T09:50:32Z

    1.I did not get what you meant by synchronized your interfaces and references to your implementation. Please can you explain little further.

    2. Yes I'm using the BO Mapper. Moving at the top level(Since am doing poc my request and response BO are same.)  So i presume a simple move at the top level will map all the objects in it.

    Hope your mentioning about the below information.

    http://publib.boulder.ibm.com/infocenter/dmndhelp/v6rxmx/index.jsp?topic=/com.ibm.wbit.help.wiring.ui.doc/topics/tsynch.html

    If yes I did the sync.

  • TrushkinAndrey
    TrushkinAndrey
    113 Posts

    Re: WESB - Body is not generated - XML Schema instance tag

    ‏2013-06-24T10:19:51Z  
    • imsiva
    • ‏2013-06-24T09:55:43Z

    1. Ok. That's right.

    2. This is not fully correct in WebSphere ESB context. If you use the "move" transformation, you should use this transformation on the level of the business object, that has not childs (inline business objects).  In your above example you sholud move objects: MyData, ReferenceData, InquiryData.

  • imsiva
    imsiva
    43 Posts

    Re: WESB - Body is not generated - XML Schema instance tag

    ‏2013-06-24T16:42:01Z  

    1. Ok. That's right.

    2. This is not fully correct in WebSphere ESB context. If you use the "move" transformation, you should use this transformation on the level of the business object, that has not childs (inline business objects).  In your above example you sholud move objects: MyData, ReferenceData, InquiryData.

    Yes, I did individual mapping. The two tag went off. However the below tag could't be removed as this is the operation of the interface. When i create the interface i need to provide the namespace and that namespace is reflecting in my message.

    <?xml version="1.0" encoding="UTF-8"?>
    <p:MyData xmlns:p="http://Lib/Interface"> --------------- > How to remove this tag

     

    Th other solution would be to use document literal non-wrapped. However when i use non-wrapped, I could not see the body in the message. How to approach this ?