Example usage for java.rmi RemoteException getMessage

List of usage examples for java.rmi RemoteException getMessage

Introduction

In this page you can find the example usage for java.rmi RemoteException getMessage.

Prototype

public String getMessage() 

Source Link

Document

Returns the detail message, including the message from the cause, if any, of this exception.

Usage

From source file:org.pepstock.jem.jbpm.tasks.JemWorkItemHandler.java

/**
 * Executes the work item, creating all JEM features and therefore reachable by JNDI.
 * //from  ww w  . ja va2s .c  om
 * @param task current JBPM task
 * @param item sub workitem to execute
 * @param parms list of parameters, created by JBPM for this work item
 * @return return code of work item execution
 * @throws JemException if any error occurs
 */
private int execute(Task task, JemWorkItem item, Map<String, Object> parms) throws JemException {
    // this boolean is necessary to understand if I have an exception 
    // before calling the main class
    boolean isExecutionStarted = false;

    JBpmBatchSecurityManager batchSM = (JBpmBatchSecurityManager) System.getSecurityManager();

    // object serializer and deserializer into XML
    XStream xstream = new XStream();

    List<DataDescriptionImpl> ddList = null;
    InitialContext ic = null;

    try {
        // gets all data description requested by this task
        ddList = ImplementationsContainer.getInstance().getDataDescriptionsByItem(task);
        // new intial context for JNDI
        ic = ContextUtils.getContext();

        // LOADS DataPaths Container
        Reference referencePaths = new DataPathsReference();
        // loads dataPaths on static name
        String xmlPaths = xstream.toXML(DataPathsContainer.getInstance());
        // adds the String into a data stream reference
        referencePaths.add(new StringRefAddr(StringRefAddrKeys.DATAPATHS_KEY, xmlPaths));
        // re-bind the object inside the JNDI context
        ic.rebind(JBpmKeys.JBPM_DATAPATHS_BIND_NAME, referencePaths);

        // scans all datasource passed
        for (DataSource source : task.getDataSources()) {
            // checks if datasource is well defined
            if (source.getResource() == null) {
                throw new MessageException(JBpmMessage.JEMM027E);
            } else if (source.getName() == null) {
                // if name is missing, it uses the same string 
                // used to define the resource
                source.setName(source.getResource());
            }

            // gets the RMi object to get resources
            CommonResourcer resourcer = InitiatorManager.getCommonResourcer();
            // lookups by RMI for the database 
            Resource res = resourcer.lookup(JobId.VALUE, source.getResource());
            if (!batchSM.checkResource(res)) {
                throw new MessageException(JBpmMessage.JEMM028E, res.toString());
            }

            // all properties create all StringRefAddrs necessary  
            Map<String, ResourceProperty> properties = res.getProperties();
            // scans all properteis set by JCL
            for (Property property : source.getProperties()) {
                if (property.isCustom()) {
                    if (res.getCustomProperties() == null) {
                        res.setCustomProperties(new HashMap<String, String>());
                    }
                    if (!res.getCustomProperties().containsKey(property.getName())) {
                        res.getCustomProperties().put(property.getName(), property.getText().toString());
                    } else {
                        throw new MessageException(JBpmMessage.JEMM028E, property.getName(), res);
                    }
                } else {
                    // if a key is defined FINAL, throw an exception
                    for (ResourceProperty resProperty : properties.values()) {
                        if (resProperty.getName().equalsIgnoreCase(property.getName())
                                && !resProperty.isOverride()) {
                            throw new MessageException(JBpmMessage.JEMM028E, property.getName(), res);
                        }
                    }
                    ResourcePropertiesUtil.addProperty(res, property.getName(), property.getText().toString());
                }
            }

            // creates a JNDI reference
            Reference ref = getReference(resourcer, res, source, ddList);

            // loads all properties into RefAddr
            for (ResourceProperty property : properties.values()) {
                ref.add(new StringRefAddr(property.getName(),
                        replaceProperties(property.getValue(), JobsProperties.getInstance().getProperties())));
            }

            // loads custom properties in a string format
            if (res.getCustomProperties() != null && !res.getCustomProperties().isEmpty()) {
                // loads all entries and substitute variables
                for (Entry<String, String> entry : res.getCustomProperties().entrySet()) {
                    String value = replaceProperties(entry.getValue(),
                            JobsProperties.getInstance().getProperties());
                    entry.setValue(value);
                }
                // adds to reference
                ref.add(new StringRefAddr(CommonKeys.RESOURCE_CUSTOM_PROPERTIES,
                        res.getCustomPropertiesString()));
            }

            // binds the object with format [type]/[name]
            LogAppl.getInstance().emit(JBpmMessage.JEMM035I, res);
            ic.rebind(source.getName(), ref);
        }

        // if list of data description is empty, go to execute java main
        // class
        if (!ddList.isEmpty()) {

            // after locking, checks for GDG
            // is sure here the root (is a properties file) of GDG is locked
            // (doesn't matter if in READ or WRITE)
            // so can read a consistent data from root and gets the right
            // generation
            // starting from relative position
            for (DataDescriptionImpl ddImpl : ddList) {
                // creates a reference, accessible by name. Is data stream
                // reference because
                // contains a stream of data which represents a object
                Reference reference = new DataStreamReference();
                // loads GDG generation!! it meeans the real file name of
                // generation
                GDGManager.load(ddImpl);

                LogAppl.getInstance().emit(JBpmMessage.JEMM034I, ddImpl);
                // serialize data descriptor object into xml string
                // in this way is easier pass to object across different
                // classloader, by JNDI.
                // This xml, by reference, will be used by DataStreamFactory
                // when
                // java main class requests a resource by a JNDI call
                String xml = xstream.toXML(ddImpl);
                // adds the String into a data stream reference
                reference.add(new StringRefAddr(StringRefAddrKeys.DATASTREAMS_KEY, xml));
                // re-bind the object inside the JNDI context
                ic.rebind(ddImpl.getName(), reference);
            }

        }
        batchSM.setInternalAction(false);
        // executes the java main class defined in JCL
        // setting the boolean to TRUE
        isExecutionStarted = true;
        return item.execute(parms);
    } catch (RemoteException e) {
        throw new JemException(e);
    } catch (RuntimeException e) {
        throw e;
    } catch (Exception e) {
        throw new JemException(e);
    } finally {
        batchSM.setInternalAction(true);
        // checks datasets list
        if (ddList != null && !ddList.isEmpty()) {
            StringBuilder exceptions = new StringBuilder();
            // scans data descriptions
            for (DataDescriptionImpl ddImpl : ddList) {
                try {
                    // consolidates the GDG situation
                    // changing the root (is a properties file)
                    // only if execution started
                    if (isExecutionStarted) {
                        GDGManager.store(ddImpl);
                    }
                } catch (IOException e) {
                    // ignore
                    LogAppl.getInstance().ignore(e.getMessage(), e);
                    LogAppl.getInstance().emit(JBpmMessage.JEMM036E, e.getMessage());
                    if (exceptions.length() == 0) {
                        exceptions.append(JBpmMessage.JEMM036E.toMessage().getFormattedMessage(e.getMessage()));
                    } else {
                        exceptions.append(JBpmMessage.JEMM036E.toMessage().getFormattedMessage(e.getMessage()))
                                .append("\n");
                    }
                }
                // unbinds all data sources
                try {
                    ic.unbind(ddImpl.getName());
                } catch (NamingException e) {
                    // ignore
                    LogAppl.getInstance().ignore(e.getMessage(), e);
                    LogAppl.getInstance().emit(JBpmMessage.JEMM037E, e.getMessage());
                }
            }
            // checks if has exception using the stringbuffer
            // used to collect exception string. 
            // Stringbuffer is not empty, throws an exception
            if (exceptions.length() > 0) {
                LogAppl.getInstance().emit(JBpmMessage.JEMM055E, exceptions.toString());
            }
        }
        for (DataSource source : task.getDataSources()) {
            if (source.getName() != null) {
                // unbinds all resources
                try {
                    ic.unbind(source.getName());
                } catch (NamingException e) {
                    // ignore
                    LogAppl.getInstance().ignore(e.getMessage(), e);
                    LogAppl.getInstance().emit(JBpmMessage.JEMM037E, e.getMessage());
                }
            }
        }
        batchSM.setInternalAction(false);
    }
}

From source file:org.pepstock.jem.springbatch.tasks.DataSource.java

/**
 * Implements the connection to database, using the JNDI reference
 * @return a SQL connection/*  w  w w  . j  a  v  a 2 s  .c o  m*/
 * @throws SQLException if any error occurs
 */
private Connection getConnectionImpl() throws SQLException {
    try {
        SpringBatchSecurityManager batchSM = (SpringBatchSecurityManager) System.getSecurityManager();
        // checks if datasource is well defined
        if (getResource() == null) {
            throw new SQLException(SpringBatchMessage.JEMS016E.toMessage().getFormattedMessage());
        } else if (getName() == null) {
            // if name is missing, it uses the same string 
            // used to define the resource
            setName(getResource());
        }
        // gets the RMi object to get resources
        CommonResourcer resourcer = InitiatorManager.getCommonResourcer();
        // lookups by RMI for the database 
        Resource res = resourcer.lookup(JobId.VALUE, getResource());
        if (!batchSM.checkResource(res)) {
            throw new SQLException(SpringBatchMessage.JEMS017E.toMessage().getFormattedMessage(res.toString()));
        }
        // all properties create all StringRefAddrs necessary
        Map<String, ResourceProperty> props = res.getProperties();

        // scans all properteis set by JCL
        for (Property property : getProperties()) {
            if (property.isCustom()) {
                if (res.getCustomProperties() == null) {
                    res.setCustomProperties(new HashMap<String, String>());
                }
                if (!res.getCustomProperties().containsKey(property.getName())) {
                    res.getCustomProperties().put(property.getName(), property.getValue());
                } else {
                    throw new SQLException(SpringBatchMessage.JEMS018E.toMessage()
                            .getFormattedMessage(property.getName(), res));
                }
            } else {
                // if a key is defined FINAL, throw an exception
                for (ResourceProperty resProperty : props.values()) {
                    if (resProperty.getName().equalsIgnoreCase(property.getName())
                            && !resProperty.isOverride()) {
                        throw new SQLException(SpringBatchMessage.JEMS018E.toMessage()
                                .getFormattedMessage(property.getName(), res));
                    }
                }
                ResourcePropertiesUtil.addProperty(res, property.getName(), property.getValue());
            }
        }
        // creates a JNDI reference
        Reference ref = getReference(resourcer, res);
        // loads all properties into RefAddr
        for (ResourceProperty property : props.values()) {
            ref.add(new StringRefAddr(property.getName(), replaceProperties(property.getValue())));
        }

        // loads custom properties in a string format
        if (res.getCustomProperties() != null && !res.getCustomProperties().isEmpty()) {
            // loads all entries and substitute variables
            for (Entry<String, String> entry : res.getCustomProperties().entrySet()) {
                String value = replaceProperties(entry.getValue());
                entry.setValue(value);
            }
            // adds to reference
            ref.add(new StringRefAddr(CommonKeys.RESOURCE_CUSTOM_PROPERTIES, res.getCustomPropertiesString()));

        }

        // binds the object with format {type]/[name]
        LogAppl.getInstance().emit(SpringBatchMessage.JEMS024I, res);

        JdbcFactory factory = new JdbcFactory();
        javax.sql.DataSource ds = (javax.sql.DataSource) factory.getObjectInstance(ref, null, null, null);
        return ds.getConnection();
    } catch (RemoteException e) {
        throw new SQLException(e.getMessage(), e);
    } catch (UnknownHostException e) {
        throw new SQLException(e.getMessage(), e);
    } catch (Exception e) {
        throw new SQLException(e.getMessage(), e);
    }
}

From source file:org.seadva.data.lifecycle.service.ResearchObjectService.java

@GET
@Path("/agentGraph/{agentId}")
@Produces("application/json")
public Response getAgentGraph(@PathParam("agentId") String agentId, @QueryParam("callback") String callback) {
    try {/*from   www  . j a va  2s  .  c  om*/
        GetAgentGraphRequestDocument agentGraphRequest = GetAgentGraphRequestDocument.Factory.newInstance();
        GetAgentGraphRequestType agentRequestType = GetAgentGraphRequestType.Factory.newInstance();
        agentRequestType.setAgentID(agentId);
        agentRequestType.setInformationDetailLevel(DetailEnumType.FINE);
        agentGraphRequest.setGetAgentGraphRequest(agentRequestType);
        KomaduServiceStub serviceStub = new KomaduServiceStub(komaduServiceUrl);
        GetAgentGraphResponseDocument agentResponse = serviceStub.getAgentGraph(agentGraphRequest);
        JSONObject xmlJSONObj = XML
                .toJSONObject(agentResponse.getGetAgentGraphResponse().getDocument().toString());
        String jsonPrettyPrintString = xmlJSONObj.toString(4);
        return Response.ok(
                //"__gwt_jsonp__.P0.onSuccess" +
                callback + "(" + jsonPrettyPrintString + ")").header("Content-Type", "application/javascript")
                .build();
    } catch (RemoteException e) {
        return Response.serverError().entity(e.getMessage()).build();
    } catch (JSONException e) {
        return Response.serverError().entity(e.getMessage()).build();
    }
}

From source file:org.seadva.data.lifecycle.service.ResearchObjectService.java

@GET
@Path("/entityGraph/{entityId}")
@Produces("application/json")
public Response getEntityGraph(@PathParam("entityId") String entityId,
        @QueryParam("callback") String callback) {
    try {/*from   ww  w  .  j  av a2 s .c  o  m*/
        GetEntityGraphRequestDocument entityGraphRequest = GetEntityGraphRequestDocument.Factory.newInstance();
        GetEntityGraphRequestType entityRequestType = GetEntityGraphRequestType.Factory.newInstance();
        entityRequestType.setInformationDetailLevel(DetailEnumType.FINE);
        entityRequestType.setEntityURI(entityId);
        entityRequestType.setEntityType(EntityEnumType.COLLECTION);
        entityGraphRequest.setGetEntityGraphRequest(entityRequestType);
        KomaduServiceStub serviceStub = new KomaduServiceStub(komaduServiceUrl);

        GetEntityGraphResponseDocument entityResponse = serviceStub.getEntityGraph(entityGraphRequest);
        JSONObject xmlJSONObj = XML
                .toJSONObject(entityResponse.getGetEntityGraphResponse().getDocument().toString());
        String jsonPrettyPrintString = xmlJSONObj.toString(4);

        if (callback == null)
            callback = "";

        return Response.ok(callback + "(" + jsonPrettyPrintString + ")")
                .header("Content-Type", "application/javascript").build();
    } catch (RemoteException e) {
        return Response.serverError().entity(e.getMessage()).build();
    } catch (JSONException e) {
        return Response.serverError().entity(e.getMessage()).build();
    }
}

From source file:org.sonar.plugins.testtrack.reviews.LinkFunction.java

@Override
public void doExecute(MutableReview review, Review initialReview, WorkflowContext context,
        Map<String, String> parameters) {
    RemoteIssue issue;/*  w  w w. j a  v a 2  s .c o  m*/
    try {
        issue = jiraIssueCreator.createIssue(initialReview, context.getProjectSettings(),
                parameters.get("text"));
    } catch (RemoteException e) {
        throw new IllegalStateException(
                "Impossible to create an issue on JIRA. A problem occured with the remote server: "
                        + e.getMessage(),
                e);
    }

    createComment(issue, review, context, parameters);
    // and add the property
    review.setProperty(TestTrackConstants.REVIEW_DATA_PROPERTY_KEY, issue.getKey());
}

From source file:org.viafirma.cliente.ViafirmaClient.java

/**
 * Enva el fichero que deseamos firmar y devuelve un identificador temporal
 * ( No es el identificador final de la firma ).
 * /*from  w  w w . j  a  v a  2 s.  c  om*/
 * @param tituloFile
 *            ( Titulo del fichero )
 * @param tipoFichero
 *            ( Extension del fichero )
 * @param Formato de la firma a realizar
 * @param bytesToSign
 *            ( Byte array de los datos del fichero )
 * @return Identificador asignado al proceso de firma(este indentificador
 *         tendra validez de 10 mins).
 * @throws InternalException
 */
public String prepareFirmaWithTypeFileAndFormatSign(String tituloFile, TypeFile typoFichero,
        TypeFormatSign formatoFirma, byte[] bytesToSign) throws InternalException {
    // sube los datos por rmi al conector de firma1
    try {
        if (tituloFile == null || typoFichero == null || bytesToSign == null) {
            if (tituloFile == null) {
                throw new InternalException(CodigoError.ERROR_CAMPOS_NULL, " Titulo del archivo ");
            } else if (typoFichero == null) {
                throw new InternalException(CodigoError.ERROR_CAMPOS_NULL, " Tipo de archivo ");
            }
            throw new InternalException(CodigoError.ERROR_CAMPOS_NULL, " Contenido archivo ");
        } else {
            log.info("Iniciando el proceso de firma del fichero:" + tituloFile);
            return getRemoteObject().prepareFirmaWithTypeFileAndFormatSign(tituloFile, typoFichero,
                    formatoFirma, bytesToSign);
        }
    } catch (RemoteException e) {
        // excepcin remota
        log.error("No se puede preparar la firma " + e.getMessage(), e);
        throw new InternalException(CodigoError.ERROR_PROTOCOLO_FIRMA, e.getMessage(), e);
    }
}

From source file:org.viafirma.cliente.ViafirmaClient.java

/**
 * Enva el fichero que deseamos firmar y devuelve un identificador temporal
 * ( No es el identificador final de la firma ).
 * //from  www.  ja  v  a  2  s .co  m
 * @param tituloFile
 *            ( Titulo del fichero )
 * @param typoFichero
 *            ( Extension del fichero )
 * @param bytesToSign
 *            ( Byte array de los datos del fichero )
 * @return Identificador asignado al proceso de firma(este indentificador
 *         tendra validez de 10 mins).
 * @throws InternalException
 */
public String prepareFirma(String tituloFile, TypeFile typoFichero, byte[] bytesToSign)
        throws InternalException {
    // sube los datos por rmi al conector de firma1
    try {
        if (tituloFile == null || typoFichero == null || bytesToSign == null) {
            if (tituloFile == null) {
                throw new InternalException(CodigoError.ERROR_CAMPOS_NULL, " Titulo del archivo ");
            } else if (typoFichero == null) {
                throw new InternalException(CodigoError.ERROR_CAMPOS_NULL, " Tipo de archivo ");
            }
            throw new InternalException(CodigoError.ERROR_CAMPOS_NULL, " Contenido archivo ");
        } else {
            log.info("Iniciando el proceso de firma del fichero:" + tituloFile);
            return getRemoteObject().prepareFirma(tituloFile, typoFichero, bytesToSign);
        }
    } catch (RemoteException e) {
        // excepcin remota
        log.error("No se puede preparar la firma " + e.getMessage(), e);
        throw new InternalException(CodigoError.ERROR_PROTOCOLO_FIRMA, e.getMessage(), e);
    }
}

From source file:org.viafirma.cliente.ViafirmaClient.java

/**
 * Firma los datos utilizando un certificado almacenado en el servidor. Para
 * la utilizacion de este metodo es necesario tener un certificado de
 * usuario dentro del Cacert de Java. Nota: Este mtodo no requiere
 * intervencion del usuario.//from  w  w w  .  ja  v  a2s .c  o  m
 * 
 * @param datosToSign
 *            datos a firmar
 * @param alias
 *            Nombre del alias utilizado para realizar la firma.
 * @return El cdigo de firma asignado a este documento firmado.
 * @throws InternalException
 *             Problemas al realizar la firma o al conectar con el servidor.
 */
public String signByServer(byte[] datosToSign, String alias, String password) throws InternalException {
    // sube los datos por rmi al conector de firma1
    try {
        if (datosToSign.length < this.tamanyoMaximoDocumento) {
            return getRemoteObject().signByServer(datosToSign, alias, password);
        } else {
            // excepcin remota
            log.error(
                    "No se puede preparar la firma. El archivo supera el tamao maximo permitido por el servidor");
            throw new InternalException(CodigoError.ERROR_EXCEDIDO_TAMANYO_MAXIMO_POR_ARCHIVO,
                    CodigoError.ERROR_EXCEDIDO_TAMANYO_MAXIMO_POR_ARCHIVO.getMensaje());
        }
    } catch (RemoteException e) {
        // excepcin remota
        log.error("No se puede preparar la firma " + e.getMessage(), e);
        throw new InternalException(CodigoError.ERROR_PROTOCOLO_FIRMA, e.getMessage(), e);
    }
}

From source file:org.viafirma.cliente.ViafirmaClient.java

/**
 * Firma los datos utilizando un certificado almacenado en el servidor. Para
 * la utilizacion de este metodo es necesario tener un certificado de
 * usuario dentro del Cacert de Java. Nota: Este mtodo no requiere
 * intervencion del usuario.//from   w w  w. ja  v  a 2  s  . co  m
 * 
 * @param datosToSign
 *            datos a firmar
 * @param alias
 *            Nombre del alias utilizado para realizar la firma.
 * @param type
 *            Tipo de firma realizada en servidor
 * @return El cdigo de firma asignado a este documento firmado.
 * @throws InternalException
 *             Problemas al realizar la firma o al conectar con el servidor.
 */
@Deprecated
public String signByServerWithType(byte[] datosToSign, String alias, String password, TypeFormatSign type)
        throws InternalException {
    // sube los datos por rmi al conector de firma1
    try {
        if (datosToSign.length < this.tamanyoMaximoDocumento) {
            return getRemoteObject().signByServerWithType(datosToSign, alias, password, type);
        } else {
            // excepcin remota
            log.error(
                    "No se puede preparar la firma. El archivo supera el tamao maximo permitido por el servidor");
            throw new InternalException(CodigoError.ERROR_EXCEDIDO_TAMANYO_MAXIMO_POR_ARCHIVO,
                    CodigoError.ERROR_EXCEDIDO_TAMANYO_MAXIMO_POR_ARCHIVO.getMensaje());
        }
    } catch (RemoteException e) {
        // excepcin remota
        log.error("No se puede preparar la firma " + e.getMessage(), e);
        throw new InternalException(CodigoError.ERROR_PROTOCOLO_FIRMA, e.getMessage(), e);
    }
}

From source file:org.viafirma.cliente.ViafirmaClient.java

/**
 * Firma los datos utilizando un certificado almacenado en el servidor. Para
 * la utilizacion de este metodo es necesario tener un certificado de
 * usuario dentro del Cacert de Java. Nota: Este mtodo no requiere
 * intervencion del usuario.//from w ww.jav a  2 s  .  co  m
 * 
 * @param nombredocumento nombre del documento original
 * @param datosToSign datos a firmar
 * @param alias Nombre del alias utilizado para realizar la firma.
 * @param password clave del certificado utilizado.
 * @param tipofirma Tipo de firma realizada en servidor
 * @param tipoFichero Tipo de formato del fichero firmado.
 * @return El cdigo de firma asignado a este documento firmado.
 * @throws InternalException
 *             Problemas al realizar la firma o al conectar con el servidor.
 */
public String signByServerWithTypeFileAndFormatSign(String nombredocumento, byte[] datosToSign, String alias,
        String password, TypeFile tipoFichero, TypeFormatSign tipofirma) throws InternalException {
    // sube los datos por rmi al conector de firma1
    try {
        if (datosToSign.length < this.tamanyoMaximoDocumento) {
            return getRemoteObject().signByServerWithTypeFileAndFormatSign(nombredocumento, datosToSign, alias,
                    password, tipoFichero, tipofirma);
        } else {
            // excepcin remota
            log.error(
                    "No se puede preparar la firma. El archivo supera el tamao maximo permitido por el servidor");
            throw new InternalException(CodigoError.ERROR_EXCEDIDO_TAMANYO_MAXIMO_POR_ARCHIVO,
                    CodigoError.ERROR_EXCEDIDO_TAMANYO_MAXIMO_POR_ARCHIVO.getMensaje());
        }
    } catch (RemoteException e) {
        // excepcin remota
        log.error("No se puede preparar la firma " + e.getMessage(), e);
        throw new InternalException(CodigoError.ERROR_PROTOCOLO_FIRMA, e.getMessage(), e);
    }
}