Unable to make webservice call from rule action

I am getting the following error in Analytical Engine’s server.log file while making call to a webservice from rule’s action:

(OPTIMIZE) [Analytic Engine v7.1.2.0.WebServiceAction.wsActionInvokeAction] 2009-07-23 10:30:27.971 AST ERROR: Error sending context com.dante.analysis.action.template.context.ActionContextImpl@d229cf
(OPTIMIZE) [Analytic Engine v7.1.2.0.WebServiceAction.wsActionInvokeAction] 2009-07-23 10:30:27.971 AST ERROR: electric.registry.RegistryException: could not bind to <IP_Address>:/ws/<Top_Folder>/<Sub_Folder>/abcWebService

Following is the WSAction Settings :

<?xml version="1.0" encoding="UTF-8"?> Test Action webservice1 :/ws///abcWebService.wsdl optimizeWebService [Place parameter name and types here] RuleName RuleInstanceName RuleDefinition RuleEvaluation RuleSla RuleCustomer RuleSeverity RuleStatus Attributes Time ProcessInfo

I have created a WSD consumer and tested the web service.

My guess is the web service URL format is wrong. Any ideas ? I have also tried without “ws” in the URL but same error.

So anyone ?

Ok so I was right, the url format to call webservice was wrong. It looks like you have to use WSDL url instead of what it says in documentation which is weird because this is my first time where documentation was wrong or maybe there are two ways to call webservice. Anyways I was able to call webservice from optimize using a url something like that:

http://:/ws/:?WSDL

So now after getting the webservice working I am having another problem where all the inputs which I am passing in WSAction are not coming in webservice call even though I have those inputs defined in webservice. Following is the template I am using in WSAction:

Any idea how to pass the violated rule information in webservice or what am I doing wrong here ?

Any suggestions on this ?

Ok so here is the update, I found out, few days before in an old SR, that WSAction only supports RPC protocol and not Document-Literal which I didn’t find in documentations(probably because it isn’t mentioned). Anyways I was wondering if someone can point me to a documentation which mentions all the available variables which can be passed in WSAction webservice. Optimize for infrastructure Administrator guide mentions the following ones but I was hoping for some more because in email alerts you get some additional ones which aren’t mentioned in the guide for example “URL” etc:

RuleName RuleDefinition RuleInstanceName RuleEvaluation RuleSla RuleCustomer RuleSeverity RuleStatus Attributes Time ProcessInfo

we can also get additional parameters like eventmap parameters facts,dimensions.we have to add the display names of these variables in
WSAction xml.

Thanks,
-V S Pachica

Pachica,

Thanks for the reply, but is there is documentation which lists all those variables ? Reason I am looking for those is because you have to literally use the exact same name in WSAction and webservice to catch those variables. Also it doesn’t show up in pipeline when you save pipeline at the beginning of webservice.

I’m not sure about the documentation.we have to use the same name variables in WSAction and webservice input signature.whatever the parameters you want from eventmap inaddition to the standard variables like RuleStatus,RuleDefination…etc…
Add all there variables in WSAction and webservice input.
we have to use the Ddisplayname of the variable instead of exactname.
You can see all these parameters in pipeline after rule violation.

Thanks,
-V S Pachica.

Hi Talha,

First of all, tks to create this post about Ws action. The WM guide does not have details information about this feature. So, I created a webservice action to send optimize alerts but I can’t grab this rules informations into my Web service created in IS 7.1.2. When I save the pipeline. I only get a blank record called ‘list’ in my input service. How did you create this WSDL input ?

Regards,

Marcos

My WS action xml:

<?xml version="1.0" encoding="UTF-8"?>


WebService
http://AUSDFSSIDEV02:5555/ws/DfsCareServices.Services.troubleTicket:optimizeTroubleTicketWSTest?WSDL
optimizeTroubleTicketActionService


RuleName


RuleInstanceName


RuleDefinition


RuleEvaluation


RuleSla


RuleCustomer


RuleSeverity


RuleStatus


Attributes


Time


ProcessInfo



marcos_filipe_pereir
1258481118901_0
********



Marcos,

Make sure which ever variable you are passing from WSAction in MWS, should have the same input variables in your service. See the attachment.
input.jpg

When I put according your attachment file. I got this error:
so, strange because the fields are matching.

(OPTIMIZE) [Analytic Engine v7.1.2.0.WebServiceAction.wsActionInvokeAction] 2009-11-18 10:34:10.499 CST ERROR: Error sending context com.dante.analysis.action.template.context.ActionContextImpl@19ae1a0
(OPTIMIZE) [Analytic Engine v7.1.2.0.WebServiceAction.wsActionInvokeAction] 2009-11-18 10:34:10.499 CST ERROR: java.rmi.MarshalException: java.lang.ArrayIndexOutOfBoundsException: 9
(OPTIMIZE) [Analytic Engine v7.1.2.0.WebServiceAction.wsActionInvokeAction] 2009-11-18 10:34:10.499 CST ERROR: at electric.soap.wsdl.SOAPOperation.writeRequest(SOAPOperation.java:403)
(OPTIMIZE) [Analytic Engine v7.1.2.0.WebServiceAction.wsActionInvokeAction] 2009-11-18 10:34:10.499 CST ERROR: at electric.soap.java.reference.JavaToSOAP.invoke(JavaToSOAP.java:223)
(OPTIMIZE) [Analytic Engine v7.1.2.0.WebServiceAction.wsActionInvokeAction] 2009-11-18 10:34:10.499 CST ERROR: at electric.soap.java.reference.JavaToSOAP.invoke(JavaToSOAP.java:187)
(OPTIMIZE) [Analytic Engine v7.1.2.0.WebServiceAction.wsActionInvokeAction] 2009-11-18 10:34:10.499 CST ERROR: at electric.proxy.handler.Proxy.invoke(Proxy.java:250)
(OPTIMIZE) [Analytic Engine v7.1.2.0.WebServiceAction.wsActionInvokeAction] 2009-11-18 10:34:10.499 CST ERROR: at com.dante.analysis.action.WebServiceAction.executeAction(WebServiceAction.java:219)
(OPTIMIZE) [Analytic Engine v7.1.2.0.WebServiceAction.wsActionInvokeAction] 2009-11-18 10:34:10.499 CST ERROR: at com.dante.analysis.action.ActionInvocation.run(ActionInvocation.java:23)
(OPTIMIZE) [Analytic Engine v7.1.2.0.WebServiceAction.wsActionInvokeAction] 2009-11-18 10:34:10.499 CST ERROR: at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:417)
(OPTIMIZE) [Analytic Engine v7.1.2.0.WebServiceAction.wsActionInvokeAction] 2009-11-18 10:34:10.499 CST ERROR: at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:269)
(OPTIMIZE) [Analytic Engine v7.1.2.0.WebServiceAction.wsActionInvokeAction] 2009-11-18 10:34:10.499 CST ERROR: at java.util.concurrent.FutureTask.run(FutureTask.java:123)
(OPTIMIZE) [Analytic Engine v7.1.2.0.WebServiceAction.wsActionInvokeAction] 2009-11-18 10:34:10.499 CST ERROR: at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
(OPTIMIZE) [Analytic Engine v7.1.2.0.WebServiceAction.wsActionInvokeAction] 2009-11-18 10:34:10.499 CST ERROR: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
(OPTIMIZE) [Analytic Engine v7.1.2.0.WebServiceAction.wsActionInvokeAction] 2009-11-18 10:34:10.499 CST ERROR: at java.lang.Thread.run(Thread.java:595)

As per the message tells you “java.lang.ArrayIndexOutOfBoundsException: 9” that number arguments in the invoked webservice and the number of arguments passed through the wsaction tag is ({parameters} not the same in case if your webservice uses SOAP RPC call please check on this nad let us know if you still face the isssue.