Quantcast
Channel: Ariba Exchange: Message List
Viewing all articles
Browse latest Browse all 3363

Re: Webservice - Problem with Operation field

$
0
0

One problem was in the MessageDefinition.table.

I was missing the Operation type (Operation = Export;). So this is how another web service shows up now!

UserCoreRequestService = {  Operation = Export;        Signature = {  Error = {};  ListenerClass = "integration.service.GeneralDataRequestProcessor";  Reply = {  Schema = "ariba.user.core.User";  };
Request = { BasicMessage = integration.messages.WebServiceBasicMessage; };            Response = {};        };        TopicName = UserCoreRequestService;        Type = Service;    };

 

The reason why I have my own listener class is because I want to process the request and response on a custom fashion.

For example, I would like to list all PRs associated to a user.

 

One thing I noticed is the Request needs to be an ClusterRoot type. I tried something like below but got a 500 validation error:

Request = { AuthtenticatedUser = java.lang.String; };

 

FYI, this is how my actual ../Server/config/variants/@variant/partitions/@partition/ws/MessageConfiguration.table looks like:

UserCoreRequestService = {                    Channel = {                              Encoding = UTF-8;                              WSDLLocation = "config/variants/cvar1/wsdl/UserCoreRequestService.wsdl";                              Operation = "UserCoreRequest";                              Port = "";                              ObjectNameTag = "DataRequest";                              TimeoutInSec = 60;                              Decoder = {                                        Name = WSChannelDecoder;                              };                              Encoder = {                                        Name = WSChannelEncoder;                              };                              FileType = SOAP;                              Name = WS;                    };                    MessageParameters = {                              Request = {                                        Parameters = {                                                  EventSource = "External";                                                  Operation = "Export";                                                  Filename = "TBD";                                        };                                        SchemaName = ariba.integration.SimpleFileSchema;                              };                    };                    TopicName = UserCoreRequestService;          };

 

 

With this I was able to start up the application and see the web service listed under my service URL: https://buyer.com/Buyer/soap/@partition

 

As a heads up, if you try to generate the WSDL by clicking on the link https://buyer.com/Buyer/soap/@partition/UserCoreRequestService?wsdl you a 500 error.

It is because it is trying to validate. To work around this you just add "&validate=false":

https://buyer.com/Buyer/soap/@partition/UserCoreRequestService?wsdl&validate=false

 

I am still working on a web page to make a SOAP request to that service and see how it goes.

 

Regards

Murilo


Viewing all articles
Browse latest Browse all 3363

Trending Articles