Dépannage : erreur du Transaction server après une migration vers Struts 2

Une fois que vous avez fait migrer votre magasin local vers Struts 2, vous pouvez constater une erreur dans le journal Transaction server similaire à StrutsViewExecUnit StrutsViewExecUnit CMN0203E: Command not found. Vous pouvez résoudre cette erreur à l'aide de l'une des actions Struts par défaut.

Problème

Votre magasin pourrait rencontrer des problèmes avec certaines vues Struts après la mise à niveau vers Struts 2. Par exemple, la duplication d'une liste préconfigurée dans votre magasin B2B ne fonctionne pas correctement, et dans le journal Transaction server, vous pouvez voir l'entrée CommerceSrvr A StrutsViewExecUnit StrutsViewExecUnit CMN0203E: Command not found: "RequisitionListsView".

Solution

Dans Struts 2, le paramètre d'action d'un package enfant n'hérite pas de l'action dans son package parent. Pour résoudre ce problème, copiez l'action depuis les fichiers de configuration Struts par défaut vers struts-wcs-store-custom.xml et fusionnez les paramètres de la définition d'action. L'exemple suivant utilise RequisitionListsView.
  1. Recherchez la chaîne RequisitionListsView dans le répertoire Stores.war du serveur de transactions. Vous remplacerez RequisitionListsView dans struts-wcs-stores-custom.xml.
    Dans cet exemple, le paramètre ressemble à ce qui suit dans struts-wcs-stores-custom.xml :
     <action class="com.ibm.commerce.struts.v2.BaseAction" name="RequisitionListsView"> <param name="https">0:1</param> </action> 
    Dans struts-wcs-stores-widgets.xml, cependant, il ressemble à ceci :
     <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>
  2. Copiez l'action de struts-wcs-stores-widgets.xml vers struts-wcs-stores-custom.xml, qui contient maintenant :
     <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> 
  3. Déployez le projet de magasins et redémarrez le Transaction server.
Note: Si vous rencontrez des problèmes similaires avec d'autres vues d'action Struts, vérifiez et fusionnez manuellement leurs paramètres.