You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@xalan.apache.org by Mike Ball <mi...@softwareag.co.uk> on 2000/08/07 12:13:13 UTC

Invoking Xalan from an EJB

Hello Xalan gurus.

Does anyone have experience of using Xalan under JBoss or other EJB servers?

It all seems to work fine *except* for Java extension functions. I have a
stylesheet which works quite happily from the command line or when invoked
from a servlet (assuming of course I put all the necessary jars on the
classpath). However, when I try to invoke it from within an EJB I get the
following exception.

...
java.lang.reflect.InvocationTargetException:    at
org.apache.xalan.xslt.ExtensionNSHandler.startupComponent(ExtensionNSHandler
.java:291)
        at
org.apache.xalan.xpath.ExtensionFunctionHandler.callFunction(ExtensionFuncti
onHandler.java:482)
        at
org.apache.xalan.xpath.xml.XMLParserLiaisonDefault.extFunction(XMLParserLiai
sonDefault.java:1878)
        at org.apache.xalan.xpath.XPath.extfunction(XPath.java:1015)
        at org.apache.xalan.xpath.XPath.executeExtension(XPath.java:1254)
        at org.apache.xalan.xpath.XPath.execute(XPath.java:1379)
        at org.apache.xalan.xpath.XPath.execute(XPath.java:1354)
        at org.apache.xalan.xpath.XPath.execute(XPath.java:311)
        at org.apache.xalan.xslt.ElemValueOf.execute(ElemValueOf.java:186)
        at
org.apache.xalan.xslt.ElemTemplateElement.executeChildren(ElemTemplateElemen
t.java:659)
        at
org.apache.xalan.xslt.ElemTemplateElement.transformChild(ElemTemplateElement
.java:1194)
        at
org.apache.xalan.xslt.ElemTemplateElement.processLocatedNode(ElemTemplateEle
ment.java:1056)
        at
org.apache.xalan.xpath.SimpleNodeLocator.findChildren(SimpleNodeLocator.java
:748)
        at
org.apache.xalan.xpath.SimpleNodeLocator.step(SimpleNodeLocator.java:403)
        at
org.apache.xalan.xpath.SimpleNodeLocator.locationPath(SimpleNodeLocator.java
:296)
        at org.apache.xalan.xpath.XPath.locationPath(XPath.java:964)
        at org.apache.xalan.xpath.XPath.execute(XPath.java:1385)
        at org.apache.xalan.xpath.XPath.execute(XPath.java:1354)
        at org.apache.xalan.xpath.XPath.execute(XPath.java:311)
        at
org.apache.xalan.xslt.ElemTemplateElement.transformSelectedChildren(ElemTemp
lateElement.java:894)
        at
org.apache.xalan.xslt.ElemApplyTemplates.execute(ElemApplyTemplates.java:176
)
        at
org.apache.xalan.xslt.ElemTemplateElement.executeChildren(ElemTemplateElemen
t.java:659)
        at
org.apache.xalan.xslt.ElemLiteralResult.execute(ElemLiteralResult.java:254)
        at
org.apache.xalan.xslt.ElemTemplateElement.executeChildren(ElemTemplateElemen
t.java:659)
        at
org.apache.xalan.xslt.ElemLiteralResult.execute(ElemLiteralResult.java:254)
        at
org.apache.xalan.xslt.ElemTemplateElement.executeChildren(ElemTemplateElemen
t.java:659)
        at
org.apache.xalan.xslt.ElemLiteralResult.execute(ElemLiteralResult.java:254)
        at
org.apache.xalan.xslt.ElemTemplateElement.executeChildren(ElemTemplateElemen
t.java:659)
        at
org.apache.xalan.xslt.ElemLiteralResult.execute(ElemLiteralResult.java:254)
        at
org.apache.xalan.xslt.ElemTemplateElement.executeChildren(ElemTemplateElemen
t.java:659)
        at
org.apache.xalan.xslt.ElemTemplateElement.transformChild(ElemTemplateElement
.java:1194)
        at
org.apache.xalan.xslt.ElemTemplateElement.transformSelectedChildren(ElemTemp
lateElement.java:957)
        at
org.apache.xalan.xslt.ElemApplyTemplates.execute(ElemApplyTemplates.java:176
)
        at
org.apache.xalan.xslt.ElemTemplateElement.executeChildren(ElemTemplateElemen
t.java:659)
        at org.apache.xalan.xslt.ElemTemplate.execute(ElemTemplate.java:145)
        at
org.apache.xalan.xslt.StylesheetRoot.process(StylesheetRoot.java:440)
        at
org.apache.xalan.xslt.XSLTEngineImpl.process(XSLTEngineImpl.java:631)
        at
com.softwareaguk.xml.XSLTProcessorXalan.process(XSLTProcessorXalan.bolero)
        at java.lang.reflect.Method.invoke(Native Method)
        at
com.softwareaguk.xml.XSLTProcessorEJB.process(XSLTProcessorEJB.bolero)
        at java.lang.reflect.Method.invoke(Native Method)
        at
org.jboss.ejb.StatelessSessionContainer$ContainerInterceptor.invoke(Stateles
sSessionContainer.java:286)
        at
org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:82
)
        at
org.jboss.ejb.plugins.StatelessSessionInstanceInterceptor.invoke(StatelessSe
ssionInstanceInterceptor.java:73)
        at
org.jboss.ejb.plugins.TxInterceptor.invoke(TxInterceptor.java:179)
        at
org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:140)
        at
org.jboss.ejb.StatelessSessionContainer.invoke(StatelessSessionContainer.jav
a:152)
        at
org.jboss.ejb.plugins.jrmp.server.JRMPContainerInvoker.invoke(JRMPContainerI
nvoker.java:129)
        at java.lang.reflect.Method.invoke(Native Method)
        at sun.rmi.server.UnicastServerRef.dispatch(Unknown Source)
        at sun.rmi.transport.Transport$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at sun.rmi.transport.Transport.serviceCall(Unknown Source)
        at sun.rmi.transport.tcp.TCPTransport.handleMessages(Unknown Source)
        at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(Unknown
Source)
        at java.lang.Thread.run(Unknown Source)
[XSLTProcessor]
com.softwareaguk.xml.XSLTProcessorEJB.process(XSLTProcessorEJB.bolero):
Exception occurred while invoking xsltProcessor
java.lang.reflect.InvocationTargetException
[XSLTProcessor] java.lang.IllegalAccessError: try to access field
org.apache.xalan.xpath.ExtensionFunctionHandler.class$com$ibm$bsf$BSFManager
from class org.apache.xalan.xslt.ExtensionNSHandler
...

If I take out the call to the extension function it all works OK. It also
works OK using Saxon instead of Xalan

Does anyone have any ideas?

I'm using Xalan_1_0_1, JBoss 2.0, Sun JDK 1.3, Windows NT4 Workstation.

Mike Ball


Application Services Consultant
Software AG UK