es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Error de tarea Gradle: Se produjo una excepción de NullPointerException mientras se utiliza ServerEvaluationCall para invocar el módulo xquery.

Soy nuevo en Gradle y necesito escribir una tarea para programar la copia de seguridad de MarkLogic.

Entonces, quiero invocar un módulo XQuery que utiliza un archivo XML de configuración para obtener detalles de la copia de seguridad.

Entonces intenté esto:

task mlBackupTask(type: com.marklogic.gradle.task.ServerEvalTask) {
  def client = hubConfig.newStagingClient()
  println client
  //DatabaseClient client = DatabaseClientFactory.newClient(host,portno,new DatabaseClientFactory.DigestAuthContext(username, password))
  ServerEvaluationCall invoker = client.newServerEval();
  String result = invoker.modulePath("/admin/create-backup.xqy").addVariable("config-name", "dev").evalAs(String.class);
}

He intentado ambos:
hubConfig.newStagingClient()
DatabaseClientFactory.newClient(host,portno,new DatabaseClientFactory.DigestAuthContext(username, password))

Esto no funciona y solo da el siguiente error:

Execution failed for task ':mlBackupTask'.
> java.lang.NullPointerException (sin mensaje de error)

¿Alguien podría ayudar con esto, por favor?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para programar una copia de seguridad de MarkLogic utilizando Gradle, puedes crear una nueva tarea en tu archivo build.gradle y utilizar la ServerEvalTask proporcionada por el complemento MarkLogic Gradle. Aquí tienes un ejemplo de código que puedes modificar según tus necesidades:

    task mlBackupTask(type: com.marklogic.gradle.task.ServerEvalTask) {
        def configName = 'dev'
        def configXml = '<config><backup-dir>/path/to/backup/dir</backup-dir></config>'
    
        inputDir = file('src/main/ml-modules/root')
        module = '/admin/create-backup.xqy'
        scriptParameters = [
            'config-name': configName,
            'config-xml': configXml
        ]
    }
    

    En este ejemplo, estamos definiendo una nueva tarea llamada mlBackupTask que utiliza el tipo ServerEvalTask proporcionado por el complemento MarkLogic Gradle. La tarea está configurada para utilizar un módulo XQuery específico (/admin/create-backup.xqy) y pasar dos valores de parámetros al módulo: config-name y config-xml. Los valores de parámetros están codificados en este ejemplo, pero puedes modificarlos para adaptarlos a tus requisitos específicos.

    Ten en cuenta que la propiedad inputDir se establece en el directorio raíz de tus módulos de MarkLogic. Esto permite que el complemento Gradle empaquete tus módulos junto con el módulo de copia de seguridad XQuery antes de enviarlos a MarkLogic.

    Una vez que hayas definido esta tarea en tu archivo build.gradle, puedes ejecutarla mediante el siguiente comando:

    ./gradlew mlBackupTask
    

    Esto activará la tarea y programará una copia de seguridad en MarkLogic utilizando los parámetros que especificaste en la tarea.

Comments are closed.