[wildfly-dev] use EL in wildfly module

Carl Harris ceharris414 at me.com
Sun Aug 28 06:40:25 EDT 2016


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




More information about the wildfly-dev mailing list