Subscribe
Accepted Solution

WFA REST calls giving "argument type mismatch"

Hi all,

I have a script that I wrote in Perl for running WFA workflows via REST calls, which used to work with WFA 2.0.  Now I am trying to run it for some workflows, against a WFA 2.1 or 2.2RC1 server, and in both cases I am getting an error of "argument type mismatch".  Here are a few more details from the WFA server.log file

2014-04-15 16:41:26,874 ERROR [com.netapp.wfa.rs.validation.WfaExceptionMapper] (http-executor-threads - 125) REST service got exception, returning: Internal Server Error (500): org.jboss.resteasy.spi.InternalServerErrorException: Bad arguments passed to public javax.ws.rs.core.Response com.netapp.wfa.rs.workflow.WorkflowResource.executeWorkflow(java.lang.String,com.netapp.wfa.rs.workflow.model.WorkflowInput,javax.ws.rs.core.UriInfo)  ( java.lang.String 76b936ba-d52e-4304-b562-01676d35ad43, java.lang.String <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <workflowInput> <userInputValues> <userInputEntry key="ClusterName" value="cs001"/> <userInputEntry key="VserverName" value="vs05_arndt_de"/> <userInputEntry key="VolumeName" value="wfatest1"/> <userInputEntry key="VolumeSizeInGB" value="1"/> </userInputValues> </workflowInput> </xml>, com.sun.proxy.$Proxy173 org.jboss.resteasy.specimpl.UriInfoImpl@585e0f79 )

And further down in server.log:

Caused by: java.lang.IllegalArgumentException: argument type mismatch

I am able to REST GET calls to determine the workflow UUID, so I know my authentication is working.  Any ideas what is going on?  Thanks,

Mike

Re: WFA REST calls giving "argument type mismatch"

Hi Mike,

I suspect that the "</xml>" tag is causing this. This shouldn't be present.

[The <?xml ... ?>  bit is the XML declaration and doesn't need a matching close tag]

Regards,

Tim

Re: WFA REST calls giving "argument type mismatch"

Oops, good catch Tim, but that was just me messing with my XML because I was suspecting something may be wrong with it. I get the same error with that removed…here are the relevant log entries:

2014-04-16 07:21:13,101 ERROR (http-executor-threads - 133) REST service got exception, returning: Internal Server Error (500): org.jboss.resteasy.spi.InternalServerErrorException: Bad arguments passed to public javax.ws.rs.core.Response com.netapp.wfa.rs.workflow.WorkflowResource.executeWorkflow(java.lang.String,com.netapp.wfa.rs.workflow.model.WorkflowInput,javax.ws.rs.core.UriInfo) ( java.lang.String 76b936ba-d52e-4304-b562-01676d35ad43, java.lang.String , com.sun.proxy.$Proxy173 org.jboss.resteasy.specimpl.UriInfoImpl@6d19f804 )

Caused by: java.lang.IllegalArgumentException: argument type mismatch

Any other ideas? Thanks,

Mike

Re: WFA REST calls giving "argument type mismatch"

The XML from that last log message didn't show up right...here it is:

2014-04-16 07:21:13,101 ERROR [com.netapp.wfa.rs.validation.WfaExceptionMapper] (http-executor-threads - 133) REST service got exception, returning: Internal Server Error (500): org.jboss.resteasy.spi.InternalServerErrorException: Bad arguments passed to public javax.ws.rs.core.Response com.netapp.wfa.rs.workflow.WorkflowResource.executeWorkflow(java.lang.String,com.netapp.wfa.rs.workflow.model.WorkflowInput,javax.ws.rs.core.UriInfo)  ( java.lang.String 76b936ba-d52e-4304-b562-01676d35ad43, java.lang.String <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <workflowInput> <userInputValues> <userInputEntry key="ClusterName" value="cs001"/> <userInputEntry key="VserverName" value="vs05_arndt_de"/> <userInputEntry key="VolumeName" value="wfatest1"/> <userInputEntry key="VolumeSizeInGB" value="1"/> </userInputValues> </workflowInput>, com.sun.proxy.$Proxy173 org.jboss.resteasy.specimpl.UriInfoImpl@6d19f804 )

Re: WFA REST calls giving "argument type mismatch"

Hi Mike,

It looks like "Bad arguments passed to public javax.ws.rs.core.Response" is a fairly generic error based on a quick search.

More log information might be useful (or your code perhaps?).

I found with WFA REST workflow invocation that

- you need to use HTTP/1.0 (not 1.1)

- Set content type to application/xml

- Request type is POST

Regards,

Tim

Re: WFA REST calls giving "argument type mismatch"

Looks like I needed to set the content-type to application/xml, and things are working now.  Thanks!

Mike