Troubleshooting: Transaction server error after struts 2 migration
After you migrate your local store to Struts 2 you might see an error in the Transaction server log similar to StrutsViewExecUnit StrutsViewExecUnit
CMN0203E: Command not found
. You can resolve this error using one of the
default Struts actions.
Problem
You store could have problems with some Struts views after upgrading to Struts 2. For example,
duplicating a requisition list in your B2B store is not working properly, and in the
Transaction server log, you can see the entry CommerceSrvr A
StrutsViewExecUnit StrutsViewExecUnit CMN0203E: Command not found:
"RequisitionListsView".
Solution
In Struts 2, the action parameter in a child package does not inherit the action in its parent
package. To fix this problem, copy the action from the default Struts configuration files to
struts-wcs-store-custom.xml and merge the parameters in the action definition.
The following example uses RequisitionListsView.
- Search for the string RequisitionListsView in the Transaction server's
Stores.war directory. You will override the
RequisitionListsView in the
struts-wcs-stores-custom.xml.In this example, the parameter is found to look like the following in struts-wcs-stores-custom.xml:
<action class="com.ibm.commerce.struts.v2.BaseAction" name="RequisitionListsView"> <param name="https">0:1</param> </action>
In struts-wcs-stores-widgets.xml, however, it looks like this:<action class="com.ibm.commerce.struts.v2.BaseAction" name="RequisitionListsView"> <param name="credentialsAccepted">0:P</param> <result name="RequisitionListsView"> <param name="location">/Widgets_701/com.ibm.commerce.store.widgets.RequisitionLists/RequisitionListsAjax.jsp</param> <param name="properties">storeDir=no</param> </result> </action>
- Copy the action from struts-wcs-stores-widgets.xml to
struts-wcs-stores-custom.xml, which now
contains:
<action class="com.ibm.commerce.struts.v2.BaseAction" name="RequisitionListsView"> <param name="https">0:1</param> <param name="credentialsAccepted">0:P</param> <result name="RequisitionListsView"> <param name="location">/Widgets_701/com.ibm.commerce.store.widgets.RequisitionLists/RequisitionListsAjax.jsp</param> <param name="properties">storeDir=no</param> </result> </action>
- Deploy the Stores project and restart the Transaction server.
Note: If you encounter similar problems with other Struts action views, check and merge their
parameters manually.