This may not be the right place to ask this question -- feel free to redirect me as
appropriate.
I have a CDI extension packaged as a Wildfly module. The extension evaluates some EL
expressions. In order to evaluate the expressions it calls
javax.el.ExpressionFactory.newInstance() to get an ExpressionFactory. However, when
calling this method an exception is thrown:
Caused by: javax.el.ELException: Provider com.sun.el.ExpressionFactoryImpl not found
at javax.el.FactoryFinder.newInstance(FactoryFinder.java:102)
at javax.el.FactoryFinder.find(FactoryFinder.java:186)
at javax.el.ExpressionFactory.newInstance(ExpressionFactory.java:197)
at javax.el.ExpressionFactory.newInstance(ExpressionFactory.java:168)
at javax.el.ELUtil.<clinit>(ELUtil.java:99)
... 50 more
Caused by: java.lang.ClassNotFoundException: com.sun.el.ExpressionFactoryImpl from [Module
\"javax.el.api:main\" from local module loader @18ef96 (finder: local module
finder @6956de9 (roots:
/tmp/wildfly-10.0.0.Final/modules,/tmp/wildfly-10.0.0.Final/modules/system/layers/base))]
I *think* the module descriptor has the right dependencies, but evidently I’m missing
something.
<module xmlns="urn:jboss:module:1.0" name="org.soulwing.pinject"
slot="main">
<resources>
<resource-root path="pinject-extension-1.2.0-SNAPSHOT.jar" />
</resources>
<dependencies>
<module name="org.soulwing.pinject.api" />
<module name="org.glassfish.javax.el" />
<module name="javax.inject.api" />
<module name="javax.enterprise.api"/>
<module name="javax.mail.api" />
<module name="javax.el.api" />
<module name="javax.api" />
</dependencies>
</module>
I’ve looked at some other Wildfly modules that use EL (e.g. Hibernate Validator), but I
haven’t been able to discern what they’re doing differently.
carl