%SOAP PROTECT error

Hello all, I created a web service and I am trying to access it using SoapUI but I get this error:

<text>ERROR #5002: Cache error: &lt;PROTECT>zGetMsgClass+3^%SOAP.WebService.1 ^oddCOM("TestWeb.Service.TestWebSoap",85,"P",0,"soapAction","http://127.0.0.1/csp/dev5/Utils.TestWebService.testNow"),h:\dev5\</text>

It appears to be trying to make an entry in the ^oddCOM global, but is getting a PROTECT error. 

I also tried a .NET app where I added the service using the WSDL. In .NET I get "Internal Server Error" so I'm assuming it's the same error.

Any ideas welcome. 

Thanks, Malcolm.

  • 0
  • 0
  • 252
  • 2
  • 1

Answers

It seems you try to call ans Action that is not defined / compiled

 /// Get class name for a message descriptor class for this web method based on the SOAPAction
Method GetMsgClass(action As %String, messageChildlist As %Integer, Output methodName As %String, bodyStream As %GlobalCharacterStream = "") As %String [ Internal, ServerOnly = 1 ]
{
Set (methodName,className,msgClass,methodList)=""
Set class=$classname()

Set methodList=$get($$$SOAPParametersSoapActionList(class,action))
>>>> this is line +3   ^^^^^^^^^^^^^^^^^^^^^^^^^^^

this translates to and there is no attempt to write something. 

#define SOAPParametersSoapActionList(%class,%soapAction) ^oddCOM(%class,$$$cCLASSxmldata,"P",0,"soapAction",$select(%soapAction="":$c(0),1:%soapAction))

 

But finally: . . . .  stNow"),h:\dev5\</text>

Does your Caché Server Instance have access right to  the bolded directory location ????  This smells like  <PROTECT>
 

Robert, my understanding of the h:\dev5\ suffix on the error string is that this indicates the directory holding the CACHE.DAT database where Malcolm's webservice class is located. I'm guessing his web application definition in Portal doesn't even have READ permission on that database.

Comments

Thank you, gentlemen. I needed to set Roles in my Web App csp/dev5. It is now working!