Example usage for javax.xml.transform TransformerException TransformerException

List of usage examples for javax.xml.transform TransformerException TransformerException

Introduction

In this page you can find the example usage for javax.xml.transform TransformerException TransformerException.

Prototype

public TransformerException(Throwable e) 

Source Link

Document

Create a new TransformerException wrapping an existing exception.

Usage

From source file:org.toobsframework.tags.FormatHelper.java

/**
 * Public Tag - Message - insert a resource bundle message in the result stream
 * <p>//from www . ja  v  a2s. co  m
 * <pre><code>
 *   &lt;fmt:message key="<i>key</i>"&gt;
 *   &lt;/fmt:message>
 * </code></pre>
 * 
 * implicit DTD for message
 * 
 * <pre><code>
 * &lt;!ELEMENT fmt:message (fmt:param*)&gt
 * &lt;!ATTLIST fmt:message
 * key CDATA #REQUIRED
 * </code></pre>
 * 
 * Where
 * <p>
 * <ul>
 * <li>key - is the resource bundle message key
 * </ul>
 */
@SuppressWarnings("unchecked")
public void message(XSLProcessorContext processorContext, ElemExtensionCall extensionElement)
        throws TransformerException {

    // Initialize
    TransformerImpl transformer = processorContext.getTransformer();
    ComponentTransformerHelper transformerHelper = getTransformerHelper(processorContext);

    // Get attributes
    String messageKey = getRequiredStringProperty("key",
            "the property key needs to be provided for the message tag", processorContext, extensionElement);

    // Obtain parameters
    List<String> parameterList = new ArrayList<String>();
    Object oldParameterList = transformer.getParameter(FORMAT_HELPER_PARAMETERS);
    if (extensionElement.hasChildNodes()) {
        transformer.setParameter(FORMAT_HELPER_PARAMETERS, parameterList);
        transformer.executeChildTemplates(extensionElement, true);
        transformer.setParameter(FORMAT_HELPER_PARAMETERS,
                oldParameterList == null ? new Boolean(false) : oldParameterList);
    }

    // Compute Results
    IRequest request = getComponentRequest(processorContext);
    if (request == null) {
        throw new TransformerException("Internal error: Invalid request passed to the layout through the "
                + IXMLTransformer.TRANSFORMER_HELPER);
    }
    try {
        LocaleResolver localeResolver = (LocaleResolver) request.getHttpRequest()
                .getAttribute(DispatcherServlet.LOCALE_RESOLVER_ATTRIBUTE);
        Locale locale = localeResolver.resolveLocale(request.getHttpRequest());

        String message = transformerHelper.getApplicationContext().getMessage(messageKey,
                parameterList.toArray(), locale);

        if (oldParameterList == null) {
            serialize(processorContext, extensionElement, message, false);
        } else if (oldParameterList instanceof List) {
            ((List<String>) oldParameterList).add(message);
        }
    } catch (Exception ex) {
        throw new TransformerException("Error getting message for key=" + messageKey + ": " + ex.getMessage(),
                ex);
    }
}

From source file:it.tidalwave.northernwind.core.impl.util.CachedURIResolver.java

/*******************************************************************************************************************
 *
 ******************************************************************************************************************/
@Override// w  ww. ja v a  2s .  c o  m
public Source resolve(final String href, final String base) throws TransformerException {
    try {
        log.info("resolve({}, {})", href, base);

        final File cacheFolder = new File(cacheFolderPath);

        if (!cacheFolder.exists()) {
            mkdirs(cacheFolder);
        }

        final File cachedFile = new File(cacheFolder, encodedUtf8(href));
        final long elapsed = System.currentTimeMillis() - cachedFile.lastModified();

        log.debug(">>>> cached file is {} elapsed time is {} msec", cachedFile, elapsed);

        if (!cachedFile.exists() || (elapsed > expirationTime)) {
            cacheDocument(cachedFile, href);
        }

        return new StreamSource(new FileInputStream(cachedFile));
    } catch (IOException e) {
        throw new TransformerException(e);
    }
}

From source file:it.greenvulcano.util.xpath.search.jaxen.JaxenXPathAPIImpl.java

/**
 * @see it.greenvulcano.util.xpath.search.XPathAPIImpl#selectNodeList(Object,
 *      Object, Object)/*  www . j ava  2  s .c o  m*/
 */
public Object selectNodeList(Object contextNode, Object xpath, Object namespaceNode)
        throws TransformerException {
    JaxenXPath lowlevelXPath = (JaxenXPath) xpath;
    try {
        CurrentFunction.putCurrent(contextNode);
        List<Object> list = lowlevelXPath.selectNodes(contextNode);
        return contextNode instanceof OMNode ? list : new JaxenNodeList((Node) contextNode, list);
    } catch (JaxenException e) {
        throw new TransformerException(e);
    } catch (RuntimeException exc) {
        exc.printStackTrace();
        throw new RuntimeException(
                "nodeName=" + (contextNode instanceof Node ? ((Node) contextNode).getNodeName() : "unknown")
                        + ", xpath=" + lowlevelXPath.toString(),
                exc);
    } finally {
        CurrentFunction.removeCurrent();
    }
}

From source file:org.callimachusproject.engine.TemplateEngine.java

private XMLEventReader asXMLEventReader(Reader in, String systemId) throws IOException, TransformerException {
    try {//from   ww  w .  j  a  v  a  2s .co m
        FluidBuilder fb = FluidFactory.getInstance().builder();
        return fb.read(in, systemId, "text/xml").asXMLEventReader();
    } catch (FluidException e) {
        throw new TransformerException(e);
    }
}

From source file:org.callimachusproject.xml.InputSourceResolver.java

@Override
public StreamSource resolve(String href, String base) throws TransformerException {
    try {/*  ww w . j av a 2s .  com*/
        InputSource input = resolve(resolveURI(href, base));
        if (input == null)
            return null;
        InputStream in = input.getByteStream();
        if (in != null) {
            if (input.getSystemId() == null)
                return new StreamSource(in);
            return new StreamSource(in, input.getSystemId());
        }
        Reader reader = input.getCharacterStream();
        if (reader != null) {
            if (input.getSystemId() == null)
                return new StreamSource(reader);
            return new StreamSource(reader, input.getSystemId());
        }
        if (input.getSystemId() == null)
            return new StreamSource();
        return new StreamSource(input.getSystemId());
    } catch (IOException e) {
        throw new TransformerException(e);
    }
}

From source file:gov.nih.nci.cacis.config.XSLTTransformerConfig.java

@Bean
@Scope(PROTOTYPE)//from w w w  .  ja v  a2 s . com
public SourceTransformer sourceTransformer(String sourceSystemIdentifier) throws TransformerException {
    try {
        PropertiesConfiguration propertiesConfiguration = new PropertiesConfiguration(
                sourceSystemXSLTProperties);
        String propertyValue = propertiesConfiguration.getString(sourceSystemIdentifier);
        if (propertyValue == null) {
            throw new TransformerException(String.format("Source system '%s' is not configured in [%s]!",
                    sourceSystemIdentifier, sourceSystemXSLTProperties));
        }
        final Transformer transformer = xslTransformerFactory()
                .newTransformer(xslUriResolver().resolve(propertyValue, sourceSystemBaseClassPath));
        return new SourceTransformer(transformer);
    } catch (ConfigurationException e) {
        throw new TransformerException(String.format(
                "Property '%s' cannot be read from [%s]. Either the "
                        + "property / properties file does not exist or the properties file is not readable!",
                sourceSystemIdentifier, sourceSystemXSLTProperties) + e);
    }
}

From source file:it.greenvulcano.util.xpath.search.jaxen.JaxenXPathAPIImpl.java

/**
 * @see it.greenvulcano.util.xpath.search.XPathAPIImpl#selectSingleNode(Object,
 *      Object, Object)//from ww  w . j a v a  2  s. c om
 */
public Object selectSingleNode(Object contextNode, Object xpath, Object namespaceNode)
        throws TransformerException {
    JaxenXPath lowlevelXPath = (JaxenXPath) xpath;
    try {
        CurrentFunction.putCurrent(contextNode);
        List<Object> ret = lowlevelXPath.selectNodes(contextNode);
        if ((ret == null) || (ret.size() == 0)) {
            return null;
        }
        return extractNode(contextNode, ret);
    } catch (JaxenException e) {
        throw new TransformerException(e);
    } finally {
        CurrentFunction.removeCurrent();
    }
}

From source file:org.obm.sync.push.client.XMLOPClient.java

@Override
public Document postXml(String namespace, Document doc, String cmd, String policyKey, boolean multipart)
        throws TransformerException, WBXmlException, IOException, HttpRequestException {

    DOMUtils.logDom(doc);//from  w  ww  .j  av a  2  s. com

    ByteArrayEntity requestEntity = getRequestEntity(doc);

    HttpPost request = new HttpPost(ai.getUrl() + "?User=" + ai.getLogin());
    request.setHeaders(
            new Header[] { new BasicHeader("Content-Type", requestEntity.getContentType().getValue()),
                    new BasicHeader("Authorization", ai.authValue()), new BasicHeader("Accept", "*/*"),
                    new BasicHeader("Accept-Language", "fr-fr"), new BasicHeader("Connection", "keep-alive") });
    request.setEntity(requestEntity);

    try {
        HttpResponse response = hc.execute(request);
        StatusLine statusLine = response.getStatusLine();
        Header[] hs = response.getAllHeaders();
        for (Header h : hs) {
            logger.error("head[" + h.getName() + "] => " + h.getValue());
        }
        int statusCode = statusLine.getStatusCode();
        if (statusCode != HttpStatus.SC_OK) {
            logger.error("method failed:{}\n{}\n", statusLine, response.getEntity());
            throw new HttpRequestException(statusCode);
        } else {
            InputStream in = response.getEntity().getContent();
            Document docResponse = DOMUtils.parse(in);
            DOMUtils.logDom(docResponse);
            return docResponse;
        }
    } catch (SAXException e) {
        throw new TransformerException(e);
    } catch (FactoryConfigurationError e) {
        throw new TransformerException(e);
    } finally {
        request.releaseConnection();
    }
}

From source file:de.betterform.xml.xslt.impl.CachingTransformerService.java

/**
 * Returns a transformer for the specified stylesheet.
 * <p/>/*w  w w  .ja v a2  s  .c  om*/
 * If the URI is null, an identity transformer is created.
 *
 * @param uri the URI identifying the stylesheet.
 * @return a transformer for the specified stylesheet.
 * @throws TransformerException if the transformer couldn't be created.
 */
public Transformer getTransformer(URI uri) throws TransformerException {
    if (uri == null) {
        return getTransformer();
    }

    try {
        // lookup cache entry
        CacheEntry entry = (CacheEntry) this.resources.get(uri);
        if (nocache == true || entry == null || entry.isDirty()) {
            if (LOGGER.isDebugEnabled()) {
                LOGGER.debug("get transformer: cache " + (entry == null ? "miss" : "dirty") + " for " + uri);
            }

            // load missing/dirty resource
            Resource resource = load(uri);
            if (resource == null) {
                // complain if resource couldn't be loaded
                throw new IllegalArgumentException(uri.toString());
            }

            // sync entry with resource
            entry = sync(entry, resource);

            // store entry in cache
            this.resources.put(uri, entry);
            this.name2URI.put(getXsltName(uri), uri);
        } else {
            if (LOGGER.isDebugEnabled()) {
                LOGGER.debug("get transformer: cache hit for " + uri);
            }
        }

        if (entry.templates == null) {
            // create source and templates object (this might trigger uri resolution)
            Source source = new StreamSource(entry.resource.getInputStream());
            source.setSystemId(uri.toString());
            entry.templates = getTransformerFactory().newTemplates(source);
        }

        return entry.templates.newTransformer();
    } catch (Exception e) {
        throw new TransformerException(e);
    }
}

From source file:org.toobsframework.tags.FormatHelper.java

/**
 * Public Tag - Parameter - pass a parameter to a message
 * <p>//  w w w .  jav a2s.com
 * <pre><code>
 *   &lt;fmt:parameter value="<i>string literal|variable value</i>" /&gt;
 *   &lt;fmt:parameter&gt;<i>string literal</i>&lt;/param&gt;
 *   &lt;fmt:parameter&gt;<i>value-of expression</i>&lt;/param&gt;
 *   &lt;fmt:parameter&gt;<i>nested fmt:message</i>&lt;/param&gt;
 * </code></pre>
 * 
 * implicit DTD for parameter
 * 
 * <pre><code>
 * &lt;!ELEMENT toobs:parameter (PCDATA)?>
 * &lt;!ATTLIST toobs:parameter
 * value CDATA #IMPLIED&gt;
 * </code></pre>
 * 
 * Where
 * <p>
 * <ul>
 * <li>value - a string literal or xsl variable
 * </ul>
 */
@SuppressWarnings("unchecked")
public void parameter(XSLProcessorContext processorContext, ElemExtensionCall extensionElement)
        throws TransformerException {
    TransformerImpl transformer = processorContext.getTransformer();
    Object p = transformer.getParameter(FORMAT_HELPER_PARAMETERS);

    if (p == null || !(p instanceof List)) {
        throw new TransformerException("fmt parameter declarartion needs to be nested inside of a fmt message");
    }

    // Get attributes
    String value = getStringProperty("value", null, processorContext, extensionElement);
    if (value == null && extensionElement.hasChildNodes()) {
        Node firstChild = extensionElement.getFirstChild();
        if (firstChild instanceof ElemTextLiteral) {
            value = ((ElemTextLiteral) firstChild).getNodeValue();
        } else if (firstChild instanceof ElemValueOf) {
            XPathContext xctxt = transformer.getXPathContext();
            XPath xPath = new XPath(
                    new XRTreeFragSelectWrapper(((ElemValueOf) firstChild).getSelect().getExpression()));
            XObject var = xPath.execute(xctxt, processorContext.getContextNode(), extensionElement);
            value = var.str();
        } else if (firstChild instanceof ElemExtensionCall) {
            transformer.executeChildTemplates(extensionElement, true);
        }
    }
    if (value != null) {
        ((List<String>) p).add(value);
    }
    // this method does not execute any child templates.  No xslt instructions can be nested under it
}