SOAP Web Service Consumer or provider

Hi Community,
I have two applications A and B, application A has an exposed web service it takes an input and give an output as a result, application B need to call that web service and give it the input and use its output, what i need is to do this Inside my IS, firstly i don’t know in this case how could i use my webservice as a provider or consumer?? and how to expose it from my IS to application B without givvine login and passw of the IS everytime?

what i did actually is: i create a consumer wsd based on an wsdl file and i creat a flow contain my webservice Under folder connector, i create an input and execute the flow, it works fine but i don’t know whats the URL that i should give to application B and how not enter login and passwd of my IS every time???

please find attachement what i did,
Regards,

Hi Abrabri,

if your application is the host of the WebService this is considered the Provider WebService, which will be invoked by the partner application being the consumer.

The URL you will give to the partner is listed in the WSD node properties:
http://:/ws/
If this is appended by “?WSDL” this will be URL, which can be used by your partner to read the WSDL instead of invoking the webservice.

Giving anonymus access to the service is not considered a good practice.

You should create an ACL and a User for your service which will be only used for this webservice and give this to your partner.

Set the Read ACL and Execute ACL for the WSD node accordingly.

See the WebService Developers Guide for further informations.

Regards,
Holger

Hi Abrabri,

Yes even I echo with Holger regarding the ACL and always try avoid giving Anonymous ACL access to execute the WS from the external parties unless you have put safety barriers like HTTPS with certs via DMZ/RI channel that invokes your WS service internal to IS.

Can you try this possibility and test it?

Yes I too echo with Holger regarding the ALC access to the service rather than giving Anonymous access and you can have some safety measures in place like HTTPS with certs via DMZ RI ports that invokes your endpoint URL the WS internal to IS.

HTH,
RMG

hi,
@Holger von Thomsen : thank you for yr reply i totally agree with you, and i will try to create a user and give it to my partenr, an other question is when i test my WS in soapUI it shows me that error :

An Exception was thrown in the server:[ISC.0076.9222] Document/Literal Coder: decoding error; cant convert SOAP Message to IS Document.
could you please tell me what to do?

@rmg: thank you for yr reply but im sorry i dont know how to test this possibility??

someone have an idea about UDDI and how can i use it to be my enter point to all my WS??

also i see that its so bad to give to my Partner an URL that contains all the path of the WS(folder.folder…/mywebservice?input=), there is any possibility to give a beautiful and transparent URL to my partener?

Regards,

Hi Abrabri,

you can check for CentraSite as an UDDI host.

How did you create your SoapUI project? Loading the WSDL from IS?

Regards,
Holger

Addendum:

according to KB Article #1764759 (webMethods Integration Server - Error when using MTOM configuration - unable to invoke webService), you should delete the WS Descriptor node and its artifacts and then recreate it from WSDL.

Regards,
Holger

HI?
YES i created the soapUI project by Loading the WSDL from IS is there any probleme because it works before when i tested for consumer webservice, but as a provider it shows that error,
and i don’t know how to delete the WS Descriptor node and its artifacte??

Regards,

Hi Abrabri,

you can delete them in Designer as per your screenshot.

After that you can create a new WSD node from your WSDL.

Artifacts are the WSD node itself as well as the folder with the same name preceeded by _.

You might take a backup of the services in the services folder for restoring the logic after recreation.

Regards,
Holger

HI,
yes its works for me now, Now i want to know how to change the URL of my Webservice now i have that path :http://IP: PORT/invoke/lims.it.architecture.app.soap.examplapp.outbound.pattern1.lims/test_process_lims?request=

i want somthing simple to give it to my Partner like http://Lims/test_process_lims?request=

another question is how to add my webservice to Centrasite i have never do somthing like that??
thanks a lot for yr help,

Regards,

Hi Abrabri,

I think that you are referring to the wrong URL.

/invoke/ is for invoking certain services directly.

/ws/ is for invoking Webservices via SOAP.

You can find the complete URL in the properties of the WSD node in Designer.

Regards,
Holger

HI Holger,
thank you for yr reply,

yes but when im trying this URL on my browser
http://IP: PORT/ws/ocp.it.architecture.app.soap.examplapp.outbound.pattern1.lims:new_wsd?WSDL it dosen’t give me the possibility to write my input, its just show the XML content of my WSDL but when i use invoke i can enter my input and see the response of my webservice??

Regards,

Hi Abrabri,

for invoking the WebService just remove the “?WSDL” part from the URL.

WebServices should not be invoked manually.

Use either SoapUI or the real WebService Consumer (your partner system?) to call the WebService via HTTP-POST.

Regards,
Holger

hi Holger,
ok i understand, now if i want to create an url from the first one http://IP: PORT/ws/ocp.it.architecture.app.soap.examplapp.outbound.pattern1.lims:test_process_lims_WSD_provider?WSDL

but a short one LIKE http://LIMS/test_process_lims_WSD_provider and hide all folders in the path,

Regards,

Hi,

I dont think that this is directly supported by webMethods.

Eventually CentraSite might be an option here, but I have never used this.

Regards,
Holger

hi Holger,
OK thank you so much for yr ideas and yr help :slight_smile: ,

Regards,