CMDBuild Forum

Error al ejecutar importador de OCS

Hola a todos,

Estoy configurando el external connector para poder enlazar cmdbuild con OCS y siguiendo todos los pasos que vienen en el readme_en.txt me quedo en el último. Al ejecutar el jar, me da el siguiente error:

 java -jar ExternalConnector1.2.2.jar ./conf ImportOCS

...

log4j: Finished configuring.
ERROR: an error has occurred retrieving this file: configuration.xml
Exception in thread "main" java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:56)
Caused by: java.lang.NullPointerException
        at org.cmdbuild.externalconnector.configuration.ConfigurationFile.<init>(ConfigurationFile.java:34)
        at org.cmdbuild.externalconnector.update.UpdateCMDBuild.main(UpdateCMDBuild.java:37)
        ... 5 more
Me baje el codigo fuente y vi que la linea 34 del ConfigurationFile.java es un iterator xml de los elementos del fichero, en este caso configuration.xml, pero mi fichero contiene:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <cmdbuild>
    <ServerAddress>127.0.0.1</ServerAddress>
    <ServerContext>cmdbuild</ServerContext>
    <ServerPort>8080</ServerPort>
    <Username>administrador</Username>
    <Password>passwd</Password>
  </cmdbuild>
  <inventory>
    <DbType>mysql</DbType>
    <DbAddress>siurana</DbAddress>
    <DbPort>3306</DbPort>
    <DbName>ocsweb</DbName>
    <DbUser>ocs</DbUser>
    <DbPassword>passwd</DbPassword>
  </inventory>
</configuration>
----------------------

Y aparentemente no tiene nada raro. Que se me escapa? Alguien puede hecharme una mano?

 

Un saludo.

Hola Jose,

 

Estoy intentando hacer lo mismo, podrías indicar si lo has conseguido y qué guía has seguido para llevarlo a cabo ?

 

Gracias

 

Estoy en el mismo caso, has conseguido hacer funcionar esta importación ?

Creo que hay que meterle datos a CMDBuild, para crear las clases con los atrubutos necesarios, que mapeen los datos de OCS.

Hay 3 ficheros de configuración, el que muestras que es el fácil, con datos de conexión a la base de datos de OCS y la aplicación CMDBuild. Los otros dos son los más complicados:

cmdbuild-schema.xml

transform.xsl

 

En el transform.xml se establecen los parámetros que vamos a leer del OCS y donde lo vamos a meter en la base de datos CMDBuild.

 

  <xsl:template match="/inventory/device">
    <Computer key="Code">
      <Code>
        <xsl:value-of select="/inventory/device/TAG"/>
      </Code>
    <Description>
         <xsl:value-of select="NAME"/>
      </Description>
      <SO>
        <xsl:value-of select="/inventory/device/OSNAME"/>
      </SO>
      <RAM>
        <xsl:value-of select="sum(/inventory/memory/CAPACITY)"/>
      </RAM>
    </Computer>
  </xsl:template>
  <xsl:template match="/CMDBUILD/Computer">
    <Computerkey="Code">
      <xsl:attribute name="objid">
        <xsl:value-of select="./@objid"/>
      </xsl:attribute>
      <Code>
        <xsl:value-of select="./Code"/>
      </Code>
      <Description>
         <xsl:value-of select="./Description"/>
      </Description>
      <SO>
        <xsl:value-of select="./SO"/>
      </SO>
      <RAM>
        <xsl:value-of select="./RAM"/>
      </RAM>
    </Computer>
  </xsl:template>

 

Y en el cmdbuild-schema.xml establece la estructura que va a recibir:

<?xml version="1.0"?>
<CMDBUILD>
    <Computer>
              <Code/>
              <Description/>
              <NumeroSerie/>
              <SO/>
              <RAM/>
    </Computer>
       <SchedaRete>
              <IndirizzoIP/>
              <MACAddress/>
       </SchedaRete>
</CMDBUILD>

 

En principio creando los atributos y la clase que tiene por defecto, será suficiente. Pero a mi me falla...

No están muy claros los pasos a seguir en la importación...

Puede alguien ayudar un poco con este tema ???

 

Gracias

 

 

Previously Josep wrote:

Hola a todos,

Estoy configurando el external connector para poder enlazar cmdbuild con OCS y siguiendo todos los pasos que vienen en el readme_en.txt me quedo en el último. Al ejecutar el jar, me da el siguiente error:

 java -jar ExternalConnector1.2.2.jar ./conf ImportOCS

...

log4j: Finished configuring.
ERROR: an error has occurred retrieving this file: configuration.xml
Exception in thread "main" java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:56)
Caused by: java.lang.NullPointerException
        at org.cmdbuild.externalconnector.configuration.ConfigurationFile.<init>(ConfigurationFile.java:34)
        at org.cmdbuild.externalconnector.update.UpdateCMDBuild.main(UpdateCMDBuild.java:37)
        ... 5 more
Me baje el codigo fuente y vi que la linea 34 del ConfigurationFile.java es un iterator xml de los elementos del fichero, en este caso configuration.xml, pero mi fichero contiene:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <cmdbuild>
    <ServerAddress>127.0.0.1</ServerAddress>
    <ServerContext>cmdbuild</ServerContext>
    <ServerPort>8080</ServerPort>
    <Username>administrador</Username>
    <Password>passwd</Password>
  </cmdbuild>
  <inventory>
    <DbType>mysql</DbType>
    <DbAddress>siurana</DbAddress>
    <DbPort>3306</DbPort>
    <DbName>ocsweb</DbName>
    <DbUser>ocs</DbUser>
    <DbPassword>passwd</DbPassword>
  </inventory>
</configuration>
----------------------

Y aparentemente no tiene nada raro. Que se me escapa? Alguien puede hecharme una mano?

 

Un saludo.