Altova MapForce Server 2026 

Este ejemplo muestra cómo ejecutar un archivo de ejecución de MapForce (.mfx) desde código Java. En Windows, todos los archivos de ejemplo están disponibles en la siguiente ruta: C:\Archivos de programa\Altova\MapForceServer2026\etc ejemplo. Estos son:

 

TokenizeString.mfx: un archivo de ejecución de MapForce Server que se ejecutará con el programa Java.

AltovaTools.xml: archivo XML que proporciona datos de entrada al programa de asignación.

 

En Linux, no hay ejemplos preinstalados. Sin embargo, puede preparar un archivo .mfx ejecutable como el que se ejecuta en este ejemplo de la siguiente manera:

 

1.Abra un archivo de diseño de asignación (.mfd) con MapForce en Windows.

2.En el menú Archivo, seleccione Configurar asignación y desmarque la casilla Convertir las rutas de acceso en absolutas en el código generado si estaba marcada.

3.En cada componente de la asignación abra el cuadro de diálogo Propiedades (doble clic en la barra de título del componente, por ejemplo) y cambie todas las rutas de los archivos de absolutas a relativas. Marque también la casilla Guardar todas las rutas de acceso de archivos como relativas al archivo MFD. Para mayor comodidad, puede copiar todos los archivos de entrada y esquemas en la misma carpeta que la propia asignación y hacer referencia a ellos simplemente por el nombre del archivo. Consulte la documentación de MapForce para obtener más información sobre cómo trabajar con rutas relativas y absolutas al diseñar asignaciones de datos.

4.En el menú Archivo haga clic en Compilar en archivo de ejecución de MapForce Server. Esto genera el archivo .mfx que posteriormente ejecutará con MapForce Server, tal y como se muestra en el fragmento de código siguiente.

 

Requisitos previos

Antes de ejecutar el código siguiente, asegúrese de que se cumplen los siguientes requisitos previos:

 

MapForce Server está instalado y tiene asignada una licencia válida.

La CLASSPATH de Java incluye una referencia a la biblioteca MapForceServer.jar (para ver un ejemplo, consulte Información sobre la interfaz Java).

 

Si está utilizando un archivo .mfx personalizado como se muestra arriba, es posible que haya otros requisitos previos, dependiendo del tipo de datos procesados por la asignación. Para más información, consulte Preparar asignaciones para ejecución en servidor.

 

En Windows, el proyecto Java de ejemplo se encuentra en el directorio Archivos de programa, que requiere derechos de administrador. Deberá ejecutar su entorno de desarrollo Java (por ejemplo, Eclipse) como administrador o copiar el ejemplo a una carpeta diferente en la que no necesite derechos de administrador.

 

Ejecución del programa Java

El fragmento de código que aparece a continuación crea primero un objeto MapForce Server. A continuación, establece el directorio de trabajo donde la aplicación debe buscar cualquier archivo que actúe como entrada para la asignación y donde debe generar los archivos de salida de la asignación. Como se mencionó anteriormente, el archivo de asignación de ejemplo lee datos de un archivo XML de origen, por lo que debe asegurarse de que tanto el archivo XML como su esquema existan en el directorio de trabajo.

 

El método setServerPath especifica la ruta al ejecutable de MapForce Server. Por ejemplo, en Ubuntu, sería /opt/Altova/MapForceServer2026/bin/mapforceserver. Puede omitir setServerPath si no ha movido MapForceServer.jar de su ubicación predeterminada.

 

Por último, el método run ejecuta una asignación (archivo .mfx) que se compiló con MapForce (por ejemplo, TokenizeString.mfx). Si se ejecuta correctamente, el programa siguiente genera un archivo CSV y un archivo XML en el directorio de trabajo, además de mostrar el texto en la línea de comandos. En caso de error, el programa intenta imprimir el último mensaje de ejecución generado por MapForce Server.

 

import com.altova.mapforceserver.MapForceServer;

 

public class Program {

 

      public static void main(String[] args)

      {

             MapForceServer objMFS;

             try

             {

             // configurar el servidor

                objMFS = new MapForceServer();

             

             // La ubicación predeterminada del servidor es el directorio en el que se encuentra la biblioteca nativa de Java.

             // Con la siguiente línea podría seleccionar un binario de servidor diferente.

             // objMFS.setServerPath(strServerPath);

             // La propiedad ServerPath debe establecerse antes que cualquier otra propiedad, ya que reinicializa el servidor y restablece todas las propiedades.

 

             // Los datos de ejemplo se encuentran en la carpeta principal del código de ejemplo de Java.

                objMFS.setWorkingDirectory("..");

 

                System.out.println("Running " + objMFS.getProductNameAndVersion());

 

           //Establezca el archivo de recursos globales y la configuración, si su asignación de datos utiliza recursos globales.

           //objMFS.setOption( "globalresourcefile", "GlobalResources.xml" ); // "gr" puede utilizarse como abreviatura de "globalresourcefile"

           //objMFS.setOption( "globalresourceconfig", "Default" ); // "gc" puede utilizarse como abreviatura de "globalresourceconfig"

 

           // -----------------------------------------------------------------------------------

           // Un ejemplo con rutas de entrada y salida almacenadas dentro del archivo MFX.

              System.out.println("\nExecuting TokenizeString.mfx...");

              if (objMFS.run("TokenizeString.mfx"))

                 System.out.println("Success: " +  objMFS.getLastExecutionMessage());

              else

                 System.out.println("Unsuccessful: " + objMFS.getLastExecutionMessage());

                 

           // ----------------------------------------------------------------------------------

           // Un ejemplo que crea una salida sencilla para que podamos recuperar el resultado de forma explícita.

              System.out.println("\nExecuting SimpleTotal.mfx...");

              if (objMFS.run("SimpleTotal.mfx"))

                 System.out.println("El resultado de la asignación es: " + objMFS.getOutputParameter("total"));

              else

              {

                 // ejecución fallida (por ejemplo, alguien ha eliminado el archivo ipo.xml)

                 System.out.println(objMFS.getLastExecutionMessage());

              }

           // ----------------------------------------------------------------------------------

           // Un ejemplo con entrada parametrizada

           // el valor predeterminado «lower = 5» se cambia al valor «10»

           // mfx lee el archivo Temperatures.xml y escribe su resultado en Temperatures_out.xml.

           System.out.println("\nEjecutando ClassifyTemperatures.mfx con el parámetro “lower” establecido en "10" ...");

           objMFS.addParameter("lower", "10");

           if (objMFS.run("ClassifyTemperatures.mfx"))

              System.out.println("El archivo Temperatures_out.xml se ha escrito correctamente.");

           else

           {

               // Error en la ejecución. ¿Quizá no hay permisos de escritura en el directorio de trabajo? Ejecute este programa como administrador.

               System.out.println(objMFS.getLastExecutionMessage());

           }

 

           // Puede detener el servidor explícitamente invocando el método «stop» si no desea que el recolector de basura decida.

              objMFS.stop();

         }

             catch (Exception e)

             {

                System.out.println("ERROR: " + e.getMessage());

             }

      }

 

}

 

 

© 2019-2025 Altova GmbH