OpenESB not detecting all available parameters in External WSDL

classic Classic list List threaded Threaded
9 messages Options
Reply | Threaded
Open this post in threaded view
|

OpenESB not detecting all available parameters in External WSDL

OpenESB Community Forum mailing list
I'm having trouble attempting to invoke an external WSDL, because there are a separate set of parameters in this particular WSDL and I haven't been able to figure out how to get OpenESB to recognise them.

In the image below, the area in green is what OpenESB is picking up, and the area in red is what it's not.



This WSDL is very different from others I have consumed in the past. While I can consume it fine in testing tools like SoapUI, and can write scripts to consume it; I can't seem to figure out how to get OpenESB to as well.

Can anyone provide some advice or documentation that can point me in the right direction?

Sent from the OpenESB Community Forum mailing list archive at Nabble.com.
Reply | Threaded
Open this post in threaded view
|

Re: OpenESB not detecting all available parameters in External WSDL

Paul Perez
Administrator

Hello Carl

 

First thank you for your interest in OpenESB.

Regarding SOAP UI, it is a very permissible tool since he has to demonstrate that it can read and use any WSDL. So in some cases, we noticed that OpenESB was not able to understand a WSDL used successfully by SOAP UI. After analysis, we always found a tolerance on SOAP UI with the strict specification.

Nevertheless, it is possible that something wrong occurs during the WSDL import. Is it possible to send me directly the WSDL and then we could test it.

Of course, please feel free to remove confidential part of your document.

Regards

 

Paul

 

 

From: User <[hidden email]> On Behalf Of Carl Swagan via User
Sent: 07 March 2018 21:37
To: [hidden email]
Cc: Carl Swagan <[hidden email]>
Subject: [User] OpenESB not detecting all available parameters in External WSDL

 

I'm having trouble attempting to invoke an external WSDL, because there are a separate set of parameters in this particular WSDL and I haven't been able to figure out how to get OpenESB to recognise them. In the image below, the area in green is what OpenESB is picking up, and the area in red is what it's not.

 

This WSDL is very different from others I have consumed in the past. While I can consume it fine in testing tools like SoapUI, and can write scripts to consume it; I can't seem to figure out how to get OpenESB to as well. Can anyone provide some advice or documentation that can point me in the right direction?


Sent from the OpenESB Community Forum mailing list archive at Nabble.com.

www.pymma.com The best services on OpenESB
Reply | Threaded
Open this post in threaded view
|

Re: OpenESB not detecting all available parameters in External WSDL

Paul Perez
Administrator
In reply to this post by OpenESB Community Forum mailing list

Hello Carl

 

I created a very simple example with one inline schema in OpenESB to see if the OpenESB can take them into account.

Of course there is a difference with your case since I have not the WSDL to do the test.

First I create the WSDL with two inline ComplexType

 

 

Another view of the WSDL

 

 

Then I use these complex types in the message definition (FYI: if possible, use Element instead complex type it gives you an additional level of flexibility)

 

 

The third step, I use this WSDL in a BPEL.

 

 

In the Mapper you can see that the types are available

 

 

From that example, we see that the embedded type can be used in OpenESB and event it does not follow the Best practices, you can work with this type of WSDL.

 

A test with your WSDL must be done to understand the issue you face.

 

 

Best regards

 

Paul

 

 

www.pymma.com The best services on OpenESB
Reply | Threaded
Open this post in threaded view
|

Re: OpenESB not detecting all available parameters in External WSDL

OpenESB Community Forum mailing list
In reply to this post by Paul Perez



From: User <[hidden email]> on behalf of Paul Perez <[hidden email]>
Sent: Thursday, March 8, 2018 5:41 AM
To: 'OpenESB user list'
Subject: Re: [User] OpenESB not detecting all available parameters in External WSDL
 

Hello Carl

 

First thank you for your interest in OpenESB.

Regarding SOAP UI, it is a very permissible tool since he has to demonstrate that it can read and use any WSDL. So in some cases, we noticed that OpenESB was not able to understand a WSDL used successfully by SOAP UI. After analysis, we always found a tolerance on SOAP UI with the strict specification.

Nevertheless, it is possible that something wrong occurs during the WSDL import. Is it possible to send me directly the WSDL and then we could test it.

Of course, please feel free to remove confidential part of your document.

Regards

 

Paul

MG>be mindful that SOAPUI has builtin namespace resolutions (in XPATH format)

https://www.guru99.com/assertions-soapui-complete-tutorial.html


MG>same problem when resolving CLASSPATH with IDE vs standalone CLI
MG>OpenESB has no pre-built namespaces you'll need to be specify the XSD location
MG>if you have a specific XSD that contains your authentication credentials
MG>you will need to specify that schema Location using schemaLocation attribute
<catalog xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'  
xmlns:catalog="www.example.com/zzz"
xsi:schemaLocation="urn:AuthenticationInfo http://www.example.com/AuthenticationInfo.xsd" <AuthenticationInfo:username xmlns:AuthenticationInfo="urn:AuthenticationInfo">

 MG>if you have only one XSD definition can use noNamespaceSchemaLocation attr

xsi:noNamespaceSchemaLocation="file://C://Documents and Settings//All Users//Application Data//My Application//MyData.xsd"

 MG>the best xsd example which will define authenticationInfo located at

http://grepcode.com/file/repo1.maven.org/maven2/org.picketbox/jbosssx/3.0.0.Final/schema/security-config_5_0.xsd/




From: User <[hidden email]> On Behalf Of Carl Swagan via User
Sent: 07 March 2018 21:37
To: [hidden email]
Cc: Carl Swagan <[hidden email]>
Subject: [User] OpenESB not detecting all available parameters in External WSDL

 

I'm having trouble attempting to invoke an external WSDL, because there are a separate set of parameters in this particular WSDL and I haven't been able to figure out how to get OpenESB to recognise them. In the image below, the area in green is what OpenESB is picking up, and the area in red is what it's not.

 

This WSDL is very different from others I have consumed in the past. While I can consume it fine in testing tools like SoapUI, and can write scripts to consume it; I can't seem to figure out how to get OpenESB to as well. Can anyone provide some advice or documentation that can point me in the right direction?


Sent from the OpenESB Community Forum mailing list archive at Nabble.com.

Reply | Threaded
Open this post in threaded view
|

Re: OpenESB not detecting all available parameters in External WSDL

OpenESB Community Forum mailing list
In reply to this post by Paul Perez
Hey Paul, Thanks for the response, sorry for the delayed reply.

Here is a link to the WSDL that you can download:

https://drive.google.com/open?id=1RwSmRZ3e4jFFYTkePcqXgyGgVI0-FXS7


Perhaps I'm not adding it correctly, I'm not too sure. I know almost nothing about OpenESB, but I'm attempting to learn as quickly as I can. I've been stuck watching YouTube tutorials if that gives you an understanding of the level of competence I have with the OpenESB.

I can see from your screenshots that you were able to handle ComplexTypes, but when adding the above WSDL to OpenESB they are not available to me and if I have to manually map/create them, I don't know how to do that.

Sent from the OpenESB Community Forum mailing list archive at Nabble.com.
Reply | Threaded
Open this post in threaded view
|

Re: [*** Possible SPAM ***] Re: OpenESB not detecting all available parameters in External WSDL

support

Hello Carl,

 

Don’t worry about the delay.

 

I tested your WSDL and I can read it and access to the type defined in it.

 

 

Let me give you some explanation about the issue you found.

 

You want to use a BPEL to orchestrate your business process. BPEL specification Chapter 6 (http://docs.oasis-open.org/wsbpel/2.0/OS/wsbpel-v2.0-OS.html)  requires that you add to your WSDL a element name PartnerLink. The partnerlink element defines the role played by the BPEL regarding the service defined by the WSDL.

The WSDL you sent me does not contains a PartnerLink since it has been generated independently from the BPEL technology.

So OpenESB provides a simple Wizard to solve this issue and help you to add a partnerlink to you WSDL. Let’s be more rigorous: In order to keep your WSDL unchanged,  OpenESB creates a new WSDL (Often named wrapper) that import the Original WSDL but contains a partnerlink.

Let me detail the process:

 

  1. I import your BPEL

   

 

Please notice that the BPEL is a concrete BPEL since he has binding and services element not null.

I create a very simple BPEL with just an invoke and an assign. ( The BPEL does not work in that state but it is used to test if we can access the variable defined in the WSDL)

 

  1. drag and drop the WSDL in the right lane of the BPEL editor

 

When you drop the WSDL a popup window opens

 

 

This window is the Wizard to create the Partner link. Click OK

 

Double click on invoke1 and fill the form as follows:

Click on create a button to Create the variable

Then OK

 

Double click on the Assign1 activity

 

 

Then you can see that the BPEL Mapper is now able to Access to the variables defined in the WSDL.

 

I hope this is useful for you  

 

Best regards

 

Pymma Consulting

 

From: User <[hidden email]> On Behalf Of Carl Swagan via User
Sent: 21 March 2018 22:55
To: [hidden email]
Cc: Carl Swagan <[hidden email]>
Subject: [*** Possible SPAM ***] Re: [User] OpenESB not detecting all available parameters in External WSDL

 

Hey Paul, Thanks for the response, sorry for the delayed reply. Here is a link to the WSDL that you can download: https://drive.google.com/open?id=1RwSmRZ3e4jFFYTkePcqXgyGgVI0-FXS7 Perhaps I'm not adding it correctly, I'm not too sure. I know almost nothing about OpenESB, but I'm attempting to learn as quickly as I can. I've been stuck watching YouTube tutorials if that gives you an understanding of the level of competence I have with the OpenESB. I can see from your screenshots that you were able to handle ComplexTypes, but when adding the above WSDL to OpenESB they are not available to me and if I have to manually map/create them, I don't know how to do that.


Sent from the OpenESB Community Forum mailing list archive at Nabble.com.

Reply | Threaded
Open this post in threaded view
|

Re: [*** Possible SPAM ***] Re: OpenESB not detecting all available parameters in External WSDL

OpenESB Community Forum mailing list
Thanks for the detailed response, however you've only gotten as far as I have originally.

If you look at my initial screenshot of the WSDL, the area highlighted in green is what I can use, which are the same values that you have been able to use as well.

It's the AuthenticationInfo ComplexType highlighted in red I cannot figure out how to add or consume in that WSDL. The authentication information needs to be passed through with the rest of it.

Sent from the OpenESB Community Forum mailing list archive at Nabble.com.
Reply | Threaded
Open this post in threaded view
|

Re: [*** Possible SPAM ***] Re: OpenESB not detecting all available parameters in External WSDL

support

Hello Carl

 

Sorry I missed your question.

 

In your original WSDL you define three messages Create_OperationSoapIn, ARAuthenticate and Create_OperationSoapOut.

Then you associate an element to the Create_Operation to the message Create_operationSoapIn

In operation “Create_Operation”  the inbound message is the message Create_Operation_SoapIn

So you link three elements as follow:

 Create_Operation(Element) à Create_OperationSoapIn (Part) à Create_Operation (Operation inbound message)

 

 

So you request to add identification element in your operation. It is very easy: Just add a part to your message and select the Authentication_info element

 

 

Now open the BPEL assign activity.

 

 

So you can now set your identification.

 

NEVERTHELESS

 

In the WS-I specification (http://ws-i.org/profiles/basicprofile-1.2-2010-11-09.html) the recommendation 2201 says:

R2201 A document-literal binding in a DESCRIPTION MUST, in each of its wsoap11:body element(s), have at most one part listed in the parts attribute, if the parts attribute is specified.

So creating a message with more than one part is not recommended and I don’t recommend to design services in that way.  So if the WSDL is a description of one service of your project, I would Recommend creating a Complex type with the element create_Operation and Authentication. Else, you can use the solution described in these email.

 

I hope we solved your issue

Best regards

 

Pymma support

www.pymma.com

 

From: User <[hidden email]> On Behalf Of Carl Swagan via User
Sent: 22 March 2018 22:02
To: [hidden email]
Cc: Carl Swagan <[hidden email]>
Subject: Re: [User] [*** Possible SPAM ***] Re: OpenESB not detecting all available parameters in External WSDL

 

Thanks for the detailed response, however you've only gotten as far as I have originally. If you look at my initial screenshot of the WSDL, the area highlighted in green is what I can use, which are the same values that you have been able to use as well. It's the AuthenticationInfo ComplexType highlighted in red I cannot figure out how to add or consume in that WSDL. The authentication information needs to be passed through with the rest of it.


Sent from the OpenESB Community Forum mailing list archive at Nabble.com.

Reply | Threaded
Open this post in threaded view
|

Re: [*** Possible SPAM ***] Re: OpenESB not detecting all available parameters in External WSDL

OpenESB Community Forum mailing list
Ah yes! Brilliant!

I see how it's done now. Thank you for the assistance.

Unfortunately I don't have any control over the original WSDL and how it is, is how it is. Hopefully I can get this thing working now.

Sent from the OpenESB Community Forum mailing list archive at Nabble.com.