Ошибка Arquillian при использовании с TomEE
Я получаю ошибку ниже при выполнении тестов Arquillian во встроенном контейнере TomEE
Caused by: javax.el.ELException: Provider com.sun.el.ExpressionFactoryImpl not found
at javax.el.FactoryFinder.newInstance(FactoryFinder.java:101)
at javax.el.FactoryFinder.find(FactoryFinder.java:197)
at javax.el.ExpressionFactory.newInstance(ExpressionFactory.java:197)
at javax.el.ExpressionFactory.newInstance(ExpressionFactory.java:168)
at org.apache.jasper.runtime.JspApplicationContextImpl.<init>(JspApplicationContextImpl.java:46)
at org.apache.jasper.runtime.JspApplicationContextImpl.getInstance(JspApplicationContextImpl.java:76)
at org.apache.jasper.runtime.JspFactoryImpl.getJspApplicationContext(JspFactoryImpl.java:217)
at org.apache.openejb.cdi.OpenEJBLifecycle.setJspELFactory(OpenEJBLifecycle.java:420)
at org.apache.openejb.cdi.OpenEJBLifecycle.initializeServletContext(OpenEJBLifecycle.java:387)
at org.apache.tomee.catalina.TomcatWebAppBuilder.startInternal(TomcatWebAppBuilder.java:1464)
at org.apache.tomee.catalina.TomcatWebAppBuilder.configureStart(TomcatWebAppBuilder.java:1124)
at org.apache.tomee.catalina.GlobalListenerSupport.lifecycleEvent(GlobalListenerSupport.java:133)
at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:94)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5087)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
... 97 more
Caused by: java.lang.ClassNotFoundException: com.sun.el.ExpressionFactoryImpl
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1285)
1 ответ
Решение
Это потому, что вы каким-то образом использовали javax.javaee api jar, а не один (org.apache.tomee: javaee-api), поэтому у вас есть другие значения по умолчанию, отличные от того, который установлен на сервере Tomee.
Либо установите системное свойство, чтобы выбрать правильное, либо используйте правильную зависимость API.