We have an application that uses our own web services as the back end API. I am trying to do a proof of concept where I place the webMethods ESB in between the app and the web services. Can someone point me at a tutorial or give me the steps that shows me how to consume (import) our web services and then republish them so that our application can then use them? I basically just want to use the ESB as a pass through just to say our software works with the product.
I have the server and the developer installed and I did figure out how to add a Web Service Descriptor to the project but I am lost on how to republish the service so our app can use it.
For the POC you’ll need to have a web service provider (provider descriptor) and a web service consumer(consumer descriptor) if I understand what you are attempting.
App → webMethods ESB Service(Service Provider)–>webMethods ESB Service(Consumer) -->Back-end API Web Service
In that example your App would use the WSDL end points provided by the webMethods ESB Service Provider, you’ll get this once you create your web service provider descriptor.
webMethods ESB, let’s just say Integration Server :), would then forward the message to the Integration Server consumer service(consumer service will use the WSDL end points/interface defined by your back end API web service) which in turn invokes the Back-end API Web Service and gets the response and brings it all the back to your app.
Clear as mud?
Suggest to visit http://techcommunity.softwareag.com/ , login , webMethods, Code samples, Search
Enter search value of “webMethods Web Service Samples” (exact with quotes)
You say you use Developer; but this tool is deprecated, pls consider Designer.
Please note that IS can be configured as reverse Proxy - which will be another passthru mode of operation.
See Administration Guide.
My observations are in the vicinity of your concern, hope this helps.
Please follow the Mark’s instructions above its really clear as mud
If you have any questions revert back on this thread and code samples.
For any WS simulation you can use soapUI tool for basic web service invocation testing.
Actually it was as clear as dirty water. I got the gist of it and actually was headed down the right path. The issue I am having is that when I try to create the publisher web service I can’t select the consumer service that I imported. I think it may need a container such as the app. Also I realize that Designer is the preferred IDE to use but it doesn’t work for me and I haven’t had the time to go figure out why. When I try to connect to the Integration Server with Designer it says it can’t connect to the service.
Regarding the Designer issue when you first set up Window–>Preference->SoftwareAG and set up the Default IntegrationServer conneciton with user/pwd and test the login sucess?
Once it works connection to the IS above then navigate the perspective to Service Development and you should see all the Packages listed via package navigator view:
Sounds like you are almost there. For your provider descriptor you create that off the external WSDL you have from the API, the endpoint will obviously change once it’s in webMethods IS , but within webMethods IS the provider WSD will have a link to the WSDL which your external calling app will hook up to. Your consumer decriptor will be created off the same external API WSDL. You will now have two WSD services within webMethods IS, one provider, one consumer both created off the same external API WSDL.
You’ll now need to add the plumbing to connect the two services within webMethods IS, ie the provider wsd service is just a shell, you’ll need to add an implementation in order to connect it to the consumer wsd service. I’ll skip the real world architecture styles for doing this since you are just trying to work through a proof of concept, in your implementation flow service(shell was created when you created the provider service) you will need map the inbound document to the input document of the consumer service which in turn invokes the external API. You’ll then map the output message of the consumer message to the output message of your provider service which will return that to the external calling app. More dirty water I know. :lol:
Just a caveat in a real world implementation I would not recommend doing it like I suggested above.
@rmg I’ve tried that and it still doesn’t work. I even tried creating a new connection and that gives the same error. I just don’t have time to look at it at this point.
Connection failed for localhost:5555 ([ISC.0064.9324] Server Error: Service Unavailable)
[ISC.0064.9324] Server Error: Service Unavailable
Are you sure is it localhost:5555 accessible from the network/browser?
Can you try IP or server name with port?
@rmg I tried ip address, fully qualified name even its kilngon name , none of them appear to work. I can get at the site through a browser and in developer.
@Mark - how exactly do I connect the two services together? Via properties or should I add some object to accomplish that. It’s a little weird that you create two services that both use the API web services as definition.
That’s strange even with IP…not sure unless I watch closely what you are doing.
A couple of things. The issue with designer was that the network connection was set to Native and needed to be direct.
Once I got designer up and running I had to recreate all the input and output services. After doing that and hooking up all the calls from the flow services of the provider to the connectors of the consumers I was able to run the app and get calls through the ESB. I am having an issue though that I thought somebody could shed some light on. I have one call that gives me an error that states “Unrecognized message version.” The only thing I can see is that one of the parameters of that call is Base64 encoded. It appears to be defined correctly in the descriptor though. Anybody ever seen this message and can you point me were to look at for a solution?
When I try to connect with integration server it shows the connection refused error. Help me to resolve this issue
what are your proxy settings (Window → Preferences)?
Can you try to use the real name of your pc instead of localhost?
For me it looks like you have changed the default port of IS i.e, 5555 during installation.
Connect with the correct port and retry.
Thank you Holger von Thomsen and M@he$h. The problem was resolved. Actually the problem was because of HOST. Need to put actual host name there.
I have one requirement to convert bytes to Document. For that I planed to use bytesToString and stringToDocument services. Actually an issue stringToDocument. When I try to include it in my service it shows below error message
You do not have the List ACL privileges and I do not find any information on the BIS guide.
Also share your input string and expected IS document structure
Even I am facing the same issue where connection refused error is coming for one of the ports on one IS server.
It was working fine before I had done a re-installation on the port.
After re-installation, no request is getting triggered and completed sucessfully.
Could someone please let me know what could be the reason and what step shall i take to resolve the issue.