Announcement

Collapse
No announcement yet.

Communicating to OTM using SOA Suite 11g

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Communicating to OTM using SOA Suite 11g

    Hi
    I have to make a connection to OTM using SOA Suite 11g
    The glogXML.WSDL that OTM provides works with a HTTP Post Binding to the integration servlet.
    I came to know that HTTP Post binding is not supported in SOA Suite 11g as of now.
    If any one worked with glogXML.WSDL and made a communication to OTM from SOA Suite 11g Composite, I would be very thankful for your guidance
    Thanks in advance

    Vijay Sai.S

  • #2
    Re: Communicating to OTM using SOA Suite 11g

    Hi Vijay,

    I am trying exactly the same right now, for a couple of weeks going. Results so far:

    - The IntXmlService description you get via the UI menu choice "download WSDL" and the ?WSDL-call from the webservice itself are not identical
    - The WSDL for IntXmlService includes GLogXML.xsd as stylesheet. However, meant is the 2001 version of that stylesheet, that in other places is named GLogXML-v2001.xsd, while the GLogXml.xsd stylesheet in those other places is in the "old" stylesheet format.

    It took me quite a while to figure out how to get JDeveloper to make a working service reference to this mess.

    So, what you do in JDeveloper:
    Create a service reference in your composite (right lane), take the WSDL from your OTM server, i.e. http://yourmachine.local:8888/GC3Services/IntXmlService/webservice?WSDL.
    Tell JDeveloper to make a local copy of the WSDL and to not (!) maintain the original directory structure. That way, you will end up with the correct GLogXML.xsd in your JDeveloper project's xsd directory, and also a wsdl file called "webservice.wsdl".
    From there, you can start mapping with a mediator, and all seems fine.

    But.

    The SOA Suite puts the correct namespace identifiers into the SOAP message when calling OTM, and also qualifies all XML elements, like <otm:Transmission>. OTM does not like that; it expects (against the specification!) that the XML elements are not qualified. See my other thread at http://www.otmfaq.com/forums/f24/nam...ng-tibco-2697/ for details.

    I have yet to find a way around this. If you get any results, please post.

    It is nice to see that I am not alone ;-)

    Regards,
    Sven

    Comment


    • #3
      Re: Communicating to OTM using SOA Suite 11g

      Hi
      Thank you very much for your reply
      First thing is I am way behind in the solution when compared to you
      I will tell you what I am doing
      I downloaded the whole intXMLService.wsdl from my server and made a local copy
      In my BPEL process I created a partnerlink for this local WSDL file
      Jdeveloper prompted me to create a new reference wsdl and I said OK to it.
      It created a reference file.
      Now I invoked the partner link and created input and output variables.
      Now when I say compile it is giving me a compilation error as below
      Can not build schema 'http://xmlns.oracle.com/apps/otm' located at 'http://xmlns.oracle.com/apps/otm.__OAUX_GENXSD_.TOP.XSD'
      [scac] <Line 47, Column 61>: XML-24528: (Error) Invalid reference: 'http://xmlns.oracle.com/apps/otm:Transmission'
      My project doesn't even compile

      To give you some background, I am trying to invoke in this intXMLService from wshSendTxnToOtmService which is already having a glogXML.xsd by default as it is trying to post data in the same document format to integration Servlet.
      Now my only point is to post data to intXMLService instead of servlet and this is becuase the HTTPBinding is depricated in 11g

      Can you tell me where I am having the issue

      Comment


      • #4
        Re: Communicating to OTM using SOA Suite 11g

        Hi
        Further to my post to avoid confusion I did the following
        I created a new composite and in that composite I created a new partner link for the local copy of my intXMLService.wsdl and invoked it
        Now as you said it copied a glogXML.xsd into my xsd folder.
        Now I tried to compile and compilation failed with following errors

        It is showing that some of the elements in the glogXML.xsd are duplicated.
        I am giving a sample message below.I am seeing messages for so many elements like these in compilation log.

        element declaration/definition of name '{http://xmlns.oracle.com/apps/otm}DataQuerySummary' are duplicated at the following locations:
        file:/C:/JDeveloper/mywork/BIC%20JAR/testItemPackage/xsd/GLogXML.xsd


        For me this looks like the XSD that is getting imported is having problems
        Do you see that I am missing something?
        I am working on Fusion Middleware 11g Suite with OTM v6.0
        Any information you can give will be of great help for me

        Thanks
        Vijay Sai.S

        Comment


        • #5
          Re: Communicating to OTM using SOA Suite 11g

          Hi
          Further to my post to avoid confusion I did the following
          I created a new composite and in that composite I created a new partner link for the local copy of my intXMLService.wsdl and invoked it
          Now as you said it didn't copied a glogXML.xsd into my xsd folder.
          Now I invoked this partner link and tried to compile and it compiled.
          So I think there is no issue with the intXMLService.wsdl.
          The issue is coming only when I use it in a service where I already have a default glogXML.xsd

          Can you suggest me something to resolve this issue

          Thanks
          Vijay Sai.S

          Comment


          • #6
            Re: Communicating to OTM using SOA Suite 11g

            Vijay,

            I went down all the paths that you have mentioned as well, without actual success. The failures were sometimes sooner, sometimes later.

            The way that worked out for me was _excactly_ this one:

            1) Have NO local copy of GLogXML.xsd in your project. Do NOT download the WSDL separately to your filesystem. Do NOT import the WSDL from the filesystem.

            2) Create the service reference. When JDeveloper asks for the WSDL, paste in the URL of the actual IntXmlService with the ?WSDL parameter (!), i.e. http://yourmachine.local:8888/GC3Services/IntXmlService/webservice?WSDL.

            3) Do not press the little button next to the text field for the WSDL, in case JDeveloper does not load it automatically, but rather leave the field by using the tab key. Now the drop down box below will be populated with the port type IntXml.

            4) Check "copy wsdl and its dependent artifacts into the project" and press Ok.

            5) JDeveloper will open a second dialog page, telling you that GLogXML is a prerequisite for the web service. Uncheck (!) the box "Maintain original directory structure for imported files". The dialog changes as now JDeveloper wants to put GLogXML into its own xsd directory. Press Ok.

            Above steps guarantee that the correct version of GLogXML.xsd with the correct name is downloaded and referenced in the correct way in the WSDLs JDeveloper creates.

            Hope that helps,
            Sven

            Comment


            • #7
              Re: Communicating to OTM using SOA Suite 11g

              Hi
              Thank you for your reply
              I did all the steps you mentioned
              I could not find the checkbox that you are talking about in step 4.
              Can you tell me which version of Jdeveloper you are using?
              I tried it with my 10g Jdeveloper and 11.1 Jdeveloper
              I didn't get the check box you told in step 4.


              Thanks
              Vijay Sai.S

              Comment


              • #8
                Re: Communicating to OTM using SOA Suite 11g

                Originally posted by vijaysaib4u View Post
                Hi
                Thank you for your reply
                I did all the steps you mentioned
                I could not find the checkbox that you are talking about in step 4.
                Can you tell me which version of Jdeveloper you are using?
                I tried it with my 10g Jdeveloper and 11.1 Jdeveloper
                I didn't get the check box you told in step 4.


                Thanks
                Vijay Sai.S
                Hi Vijay,
                I am using Studio Edition Version 11.1.1.2.0 Build JDEVADF_11.1.1.2.0_GENERIC_091029.2229.5536.

                My dialog looks like the attached image. I opened it by dropping a "Web Service" from the component palette to the External References lane in my composite.

                //Sven
                Attached Files

                Comment


                • #9
                  Re: Communicating to OTM using SOA Suite 11g

                  Hi
                  I think the version of Jdeveloper is the reason for all the confusion as I was using Jdveloper 11.1
                  Can you tell me from where can I download the Jdeveloper that you are working?
                  I downloaded latest 11.2 Jdeveloper studio version from oracle.com/technology (Oracle JDeveloper 11g (11.1.1.2.0) (Build 5536)) but I was not able to create SOA Composite in that Jdeveloper.
                  I think there are some add-ons that I am missing with this version of download. I was not able to find them on web also.
                  So if you have any place where can I download the Jdeveloper that you are working, that will be great for me or if you can tell me where I can find the add-on's for the Jdeveloper that I downloaded from OTN.

                  Thanks for all your time

                  Vijay Sai.S

                  Comment


                  • #10
                    Re: Communicating to OTM using SOA Suite 11g

                    Originally posted by vijaysaib4u View Post
                    Hi
                    I think the version of Jdeveloper is the reason for all the confusion as I was using Jdveloper 11.1
                    Can you tell me from where can I download the Jdeveloper that you are working?
                    I downloaded latest 11.2 Jdeveloper studio version from oracle.com/technology (Oracle JDeveloper 11g (11.1.1.2.0) (Build 5536)) but I was not able to create SOA Composite in that Jdeveloper.
                    I think there are some add-ons that I am missing with this version of download. I was not able to find them on web also.
                    So if you have any place where can I download the Jdeveloper that you are working, that will be great for me or if you can tell me where I can find the add-on's for the Jdeveloper that I downloaded from OTN.

                    Thanks for all your time

                    Vijay Sai.S
                    Vijay,

                    you do have the correct JDeveloper version, but that fact is carefully hidden. Install the version you have with the default options (i.e. everything), and when you are done, start it, select Help / Check for Updates from its menu. Follow the wizard through until you find the SCA editor as an downloadable update.

                    //Sven

                    Comment


                    • #11
                      Re: Communicating to OTM using SOA Suite 11g

                      Hi
                      Thank you for your time in replying my queries
                      Now I downloaded SCA editor and tried to follow the steps you mentioned
                      I am getting couple of issues.
                      First I create a reference in composite.xml and a wire to this reference from the bpel process.
                      Then I am able to see the reference in my bpel process as partner link,
                      Now if I try to invoke this partner link with an Invoke activity I am not able to create either input or output variables this is because the partner link that is being created from the reference in composite doesn't have any operations populated with it.

                      Now I tried something else
                      I created a partner link inside my bpel process for this same wsdl (remember this action doesn't give us the flexibility to copy the contents to our project)
                      Now if i use an invoke activity on this partner link it is populating the operation and giving me the option to create input and output variables
                      Now after creating input and output variables this way and mapping the contents to input and outvariables (using an assign activity) if i try to compile I am getting the same compilation error as I got earlier in 11.1 version of Jdeveloper.
                      I am completely confused how it is working for you and not for me

                      Now my question here is how you are invoking the reference that you created on composite in your bpel process.
                      I believe you mentioned that you are using a mediator for all your mapping
                      Are you using a mediator to send information to this intXMLService or a bpel process.
                      I don't think there will be any difference in using a BPEL or Mediator to post data to this service

                      Vijay Sai.S

                      Comment


                      • #12
                        Re: Communicating to OTM using SOA Suite 11g

                        Hi
                        Please bear with me and ignore my earlier post
                        The issue was resolved and I am able to invoke the reference that I created
                        I don't know how to delete a post here and that is the reason I am donig a new reply to tell you to ignore my earlier post

                        Vijay Sai.S

                        Comment


                        • #13
                          Re: Communicating to OTM using SOA Suite 11g

                          Hi
                          Here is the update till now from me
                          Whether I create a reference first on composite or a partner link directly inside the bpel there is no difference
                          it is any way creating a reference wsdl inside my project.
                          if i say no creating a reference wsdl i am not able to see the operation while invoking the external system.

                          After I invoke the process i verified my project and it didn't create any local glogXML.xsd in xsd folder as you mentioned earlier.
                          However the compilation is complete and there are no errors.
                          I am currently working on sending XML document to this service. I will keep posting the updates about my status here.

                          Please update me if you succeed in sending xml data to the service without the name space issue.

                          Thanks for your help

                          Vijay Sai.S

                          Comment


                          • #14
                            Re: Communicating to OTM using SOA Suite 11g

                            Finally, I (kind of) succeeded.

                            There is a subtle difference if above mentioned service reference to IntXmlService is called from the mediator or from BPEL: In the latter case, the top-most <Transmission> element does not have a namespace prefix, and therefore, OTM does swallow it.

                            So the workaround is: Instead of having the mediator (after transformation of whatever into GLogXml) call the IntXmlService web service, place a little stupid BPEL process in between the mediator and the IntXmlService reference. This BPEL process has GLogXML/Transmission as input and GLogXML/TransmissionAck as output type, thus looks the same to the mediator as IntXmlService. The BPEL process, however, assigns the incoming transmission to its own variable, invokes IntXmlService, and assigns the response back, so it does nothing smart at all.

                            Whenever Oracle fixes the bug preventing OTM from accepting perfectly valid XML, one can simply delete the workaround BPEL process from the composite. All message transformation is still kept in the mediator where it belongs.
                            Attached Files

                            Comment


                            • #15
                              Re: Communicating to OTM using SOA Suite 11g

                              Hi
                              Thank you and congratulations for your issue being resolved
                              Now my points are as below
                              1. I am not calling intXMLService from a mediator. I am calling it from my BPEL process directly. So I think I can ignore having a dummy BPEL process to invoke this service.
                              2. I am modifying the out of box integration services that Oracle is providing for 10g to suit my 11g requirement. So as you may know this call to intXMLService should happen from wshSendTxnToOtmService BPEL process. Now my only concern is this "wshSendTxnToOtmService " process is already having a glogXML.xsd shipped with it and I don't think I can delete that from project because it is being used by many other activities like invoking delivery process, invoking item process and invoking location process.
                              So if I have the default glogXML.xsd in my project and I create the reference for this process I am getting the compilation time error as I mentioned in my earlier post.
                              Do you think you have some workaround to make this compile even if I have a default glogXML.xsd in my project?
                              As of now I am successful in compilation only when I don't have the default glogXML.xsd in my project.
                              Let me know if you can give any way to do it or if you want more information from me

                              Thank you for your time

                              Vijay Sai.S

                              Comment

                              Working...
                              X