Crear mensajes

Si el mandato genera una excepción ECApplicationException que utiliza un nuevo mensaje, debe crear dicho mensaje. Para crear un nuevo mensaje debe efectuar los siguientes pasos:

Procedimiento

  1. Crear una nueva clase que contenga las claves de mensaje.

    El primer paso necesario para crear nuevos mensajes de usuario es crear una clase que contenga las nuevas claves de mensaje. Una clave de mensaje es un indicador exclusivo que el servicio de anotación cronológica utiliza para localizar el texto de mensaje correspondiente en un paquete de recursos. Esta nueva clase debe crearse dentro del paquete propio y se debe almacenar en el proyecto WebSphereCommerceServerExtensionsLogic.

    Suponga un ejemplo, denominado MyNewMessages, en el que crea una nueva clase denominada MyMessageKeys, que contiene las claves de mensaje _ERR_CUSTOMER y _ERR_CUSTOMER_INVALID_ID y pone esta clase en el paquete com.mycompany.messages. En este caso, la definición de la clase aparece de la forma indicada a continuación:

    
    public class MyMessageKeys
    {
        public static String _ERR_CUSTOMER="_ERR_CUSTOMER";
        public static String _ERR_CUSTOMER_INVALID_ID="_ERR_CUSTOMER_INVALID_ID";
    }
    

    Si se proporcionan wrappers de tipo String para las claves de mensaje, el compilador podrá comprobar su validez.

  2. Crear una nueva clase que contenga los objetos ECMessage.

    En el mismo paquete en el que ha creado la clase para las claves de mensaje, cree otra clase que contenga los objetos ECMessage. La clase ECMessage define la estructura de un objeto mensaje. Se utiliza para recuperar mensajes de texto sensibles al entorno local y hacer que sean persistentes.

    El objeto de mensaje de aviso contiene los siguientes atributos: gravedad, tipo, clave, paquete de recursos y paquete de recursos asociado. Hay varios métodos de constructor para esta clase.

    Siguiendo con el ejemplo de MyNewMessages, cree una nueva clase denominada MyMessages en el paquete com.mycompany.messages, de la forma indicada a continuación:

    
    /**
             * An error message that an invalid customer id was specified.
             */
            public static final ECMessage _ERR_CUSTOMER_INVALID_ID = 
                            new ECMessage(WcContentMessageKey._ERR_CUSTOMER_INVALID_ID_REASON_CODE, ECMessageType.USER, 
                            WcContentMessageKey._ERR_CUSTOMER_INVALID_ID, USER_RESOURCE_BUNDLE,
                            ECMessageSeverity.ERR, null, null, null);
    
  3. Crear un paquete de recursos.

    Debe crear un nuevo paquete de recursos, en el que se guarden las claves de mensaje con su texto de mensaje correspondiente. Este paquete de recursos puede implementarse como un objeto Java o como un archivo de propiedades (.properties). Se recomienda utilizar archivos de propiedades ya que son más fáciles de traducir y mantener. Los mensajes de HCL Commerce utilizan los archivos de propiedades.

    Para continuar con el ejemplo MyNewMessages, cree un archivo de texto con el nombre ecCustomerMessages.properties. Coloque los mensajes en el directorio adecuado:

    un solo servlet de tienda
    HCL Commerce Developer workspace_dir\Stores\Web Content\WEB-INF\classes\storeDirdonde storeDir es el nombre de la tienda.
    HCL Commerce Accelerator
    HCL Commerce Developer workspace_dir\CommerceAccelerator\Web Content\WEB-INF\classes
    Consola de administración
    HCL Commerce Developer workspace_dir\SiteAdministration\Web Content\WEB-INF\classes
    Consola de administración de organizaciones
    HCL Commerce Developer workspace_dir\Organización de administración\Web Content\WEB-INF\clases
    globalmente por un servlet en la aplicación de empresa
    HCL Commerce Developerworkspace_dir\WebSphereCommerceServer\properties

    Los directorios anteriores se especifican dentro del contexto del entorno de desarrollo. Los mensajes también pueden estar incluidos en el proyecto WebSphereCommerceExtensionLogic.

    Puesto que el archivo de propiedades contiene pares de claves de mensaje y el texto de mensaje correspondiente, el archivo ecCustomerMessages.propertiescontiene las siguientes líneas:

    
    _ERR_CUSTOMER_MESSAGE = The customer message "{0}".
    _ERR_CUSTOMER_INVALID_ID = Invalid ID "{0}".