Search code examples
ibm-mobilefirstmobilefirst-servermobilefirst-analytics

MobileFirst Operational Analytics javax.xml.transform.TransformerFactoryConfigurationError


I'm tracking down why Analytic data is not being logged. I see the error messages described below, they occur when an attempt is made to log analytic data. Are these messages significant? What do I need to fix?

I have the Operation Analytics EAR deployed to a dedicated Liberty server

product = WebSphere Application Server 8.5.5.0 (wlp-1.0.3.20130510-0831)
wlp.install.dir = /home/virtuser/IBM/WebSphere/Liberty/
java.home = /home/virtuser/IBM/WebSphere/Liberty/java/java_1.7_64/jre
java.version = 1.7.0
java.runtime = Java(TM) SE Runtime Environment (pxa6470sr4fp1ifx-20130423_02    (SR4 FP1+IV38579+IV38399+IV40208))
 os = Linux (2.6.32-358.el6.x86_64; amd64) (en_GB)

And when I attempt to log some analytic data see this error in messages.log

Uncaught.init.exception.thrown.by.servlet 
data
worklight-analytics-ear
javax.xml.transform.TransformerFactoryConfigurationError: Provider for
     javax.xml.transform.TransformerFactory cannot be found

and

[30/01/15 05:24:20:853 EST] 00000022 org.apache.wink.server.internal.log.Resources                I The server has registered the JAX-RS resource class com.ibm.elasticsearch.servlet.DataReceiver with @Path(/).
[30/01/15 05:24:20:854 EST] 00000022 org.apache.wink.server.internal.log.Providers                I There are no custom JAX-RS providers defined in the application.
[30/01/15 05:24:20:860 EST] 00000022 pache.wink.common.internal.application.ApplicationFileLoader E The runtime environment failed to instantiate the org.apache.wink.common.internal.providers.entity.SourceProvider$StreamSourceProvider class. Ensure that the class is not abstract, has a valid constructor, has the right visibility, and is not an inner member class.
java.lang.NoClassDefFoundError: org.apache.wink.common.internal.providers.entity.SourceProvider$StreamSourceProvider (initialization failure)
        at java.lang.J9VMInternals.initialize(J9VMInternals.java:176)
        at java.lang.Class.forNameImpl(Native Method)
        at java.lang.Class.forName(Class.java:219)
        at org.apache.wink.common.internal.utils.ClassUtils$1.run(ClassUtils.java:73)
        at java.security.AccessController.doPrivileged(AccessController.java:229)
        at org.apache.wink.common.internal.utils.ClassUtils.loadClass(ClassUtils.java:66)

and

[30/01/15 05:25:09:342 EST] 0000001e 

com.ibm.ws.logging.internal.impl.IncidentImpl                I FFDC1015I: An FFDC Incident has been created: "org.elasticsearch.action.search.SearchPhaseExecutionException: 
Failed to execute phase [query], all shards failed; shardFailures {[beBqcnofT52DPVzgChWm_Q][worklight][1]: SearchParseException[[worklight][1]: from[-1],size[-1]: Parse Failure [Failed to parse source [{"facets":{"termsFacet":{"date_histogram":{"field":"gadgets.HybridApp.firstAccess","interval":"1h"},"facet_filter":{"bool":{"must":{"range":{"gadgets.HybridApp.firstAccess":{"from":1422527109262,"to":1422613509262,"include_lower":true,"include_upper":true}}}}}}}}]]]; nested: FacetPhaseExecutionException[Facet [termsFacet]: (key) field [gadgets.HybridApp.firstAccess] not found]; }{[beBqcnofT52DPVzgChWm_Q][worklight][2]: SearchParseException[[worklight][2]: from[-1],size[-1]: Parse Failure [Failed to parse source [{"facets":{"termsFacet":{"date_histogram":{"field":"gadgets.HybridApp.firstAccess","interval":"1h"},"facet_filter":{"bool":{"must":{"range":{"gadgets.HybridApp.firstAccess":{"from":1422527109262,"to":1422613509262,"include_lower":true,"include_upper":true}}}}}}}}]]]; nested: FacetPhaseExecutionException[Facet [termsFacet]: (key) field [gadgets.HybridApp.firstAccess] not found]; }{[beBqcnofT52DPVzgChWm_Q][worklight][3]: SearchParseException[[worklight][3]: from[-1],size[-1]: Parse Failure [Failed to parse source [{"facets":{"termsFacet":{"date_histogram":{"field":"gadgets.HybridApp.firstAccess","interval":"1h"},"facet_filter":{"bool":{"must":{"range":{"gadgets.HybridApp.firstAccess":{"from":1422527109262,"to":1422613509262,"include_lower":true,"include_upper":true}}}}}}}}]]]; nested: FacetPhaseExecutionException[Facet [termsFacet]: (key) field [gadgets.HybridApp.firstAccess] not found]; }{[beBqcnofT52DPVzgChWm_Q][worklight][4]: SearchParseException[[worklight][4]: from[-1],size[-1]: Parse Failure [Failed to parse source [{"facets":{"termsFacet":{"date_histogram":{"field":"gadgets.HybridApp.firstAccess","interval":"1h"},"facet_filter":{"bool":{"must":{"range":{"gadgets.HybridApp.firstAccess":{"from":1422527109262,"to":1422613509262,"include_lower":true,"include_upper":true}}}}}}}}]]]; nested: FacetPhaseExecutionException[Facet [termsFacet]: (key) field [gadgets.HybridApp.firstAccess] not found]; }{[beBqcnofT52DPVzgChWm_Q][worklight][0]: SearchParseException[[worklight][0]: from[-1],size[-1]: Parse Failure [Failed to parse source [{"facets":{"termsFacet":{"date_histogram":{"field":"gadgets.HybridApp.firstAccess","interval":"1h"},"facet_filter":{"bool":{"must":{"range":{"gadgets.HybridApp.firstAccess":{"from":1422527109262,"to":1422613509262,"include_lower":true,"include_upper":true}}}}}}}}]]]; nested: FacetPhaseExecutionException[Facet [termsFacet]: (key) field [gadgets.HybridApp.firstAccess] not found]; } com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters 1105" at ffdc_15.01.30_05.25.09.0.log

Note the: Parse Failure [Failed to parse source in that last message

My server.xml has this:

<featureManager>
        <feature>jsp-2.2</feature>
        <feature>jndi-1.0</feature>
        <feature>appSecurity-1.0</feature>
    </featureManager>

    <httpEndpoint id="defaultHttpEndpoint"
                  host="localhost"
                  httpPort="9082"
                  httpsPort="9445" />

<jndiEntry jndiName="analytics/httpport" value="9500" />
<jndiEntry jndiName="analytics/transportport" value="9600" />

<jndiEntry jndiName="analytics/masternodes" value="localhost:9600,anotherhost:9600" />
 <jndiEntry jndiName="analytics/shards" value="12" />


<application location="worklight-analytics.ear"
             name="worklight-analytics-ear"
             type="ear">
   ... registry and role entries here ...
<classloader delegation="parentLast"/>
</application>

Solution

  • Can you try removing the following from the server.xml entry for analytics?

    <classloader delegation="parentLast"/>
    

    After you remove this, try restarting the analytics console to see if it begins to work.