maandag 14 september 2009

WSDL errors, Cannot figure out operation name. Bad SOAPAction or wsa:Action

If you get error messages like Cannot figure out operation name. Bad SOAPAction or wsa:Action or other strange things after you've changed something related to the WSDL then this might be a solution.
One of the possible error messages:

<env:Fault xmlns="http://xmlns.oracle.com/LeaveBalancePSProvABCSImpl">
  <faultcode xmlns="">null:LeaveBalancePSProvABCSImpl</faultcode>
  <faultstring xmlns="">Cannot figure out operation name. Bad SOAPAction or wsa:Action.</faultstring>
  <faultactor xmlns="">process</faultactor>
</env:Fault>

In our case we had modified the webservice LeaveBalancePSProvABCSImpl, which had 2 operations after a "get" was added next to the "process" operation and then we removed the process operation so we changed it back to only 1 operation (the "get"). The wsdl then is still cached somehow and even cleaning the cache through the BPELConsole does not fully work.

So, go to your DOMAIN directory on the Application Server (standard that is the 'default' domain), for example:
c:\product\10.1.3.4\OracleAS\bpel\domains\default and then under the \tmp\ directory, delete both references to your webservice.
You will need to stop all activities before deleting these temp files is possible (Oracle_AS\opmn\bin\opmnctl\opmnctl stopall)

Related version: 10.1.3.4.0

1 opmerking:

  1. Note that you should always do a 'clear wsdl cache' (BPELConsole - Administration - Actions - Clear WSDL Cache), but when that does not work, then you may need to stop opmn and delete the temp files and restart the server.

    BeantwoordenVerwijderen