我目前正在使用PrimeFaces4.0、OmniFaces1.6.2、MyFaces 2.1.12和Google 1.8.3。
在部署应用程序时,我得到以下错误:
java.lang.NoClassDefFoundError: javax.naming.InitialContext is a restricted class. Please see the Google App Engine developer's guide for more details.
at com.google.appengine.tools.development.agent.runtime.Runtime.reject(Runtime.java:51)
at org.omnifaces.util.JNDI.lookup(JNDI.java:82)
at org.omnifaces.config.BeanManager.init(BeanManager.java:68)
at org.omnifaces.config.BeanManager.getReference(BeanManager.java:107)
at org.omnifaces.application.OmniApplication.createConverter(OmniApplication.java:86)
at org.primefaces.config.ConfigContainer.initConfig(ConfigContainer.java:69)
at org.primefaces.config.ConfigContainer.<init>(ConfigContainer.java:59)在启动时,可以禁用Omnifaces中的CDI功能/JNDI查找吗?
我在OmniFaces1.6.0中没有这个问题。
提前谢谢你,
拉斐尔。
发布于 2013-10-18 16:33:34
这个问题已经在OmniFaces 1.6.3中解决了。当JNDI (和CDI)在运行时类路径中不可用时,解决方案是快速和静默地失败。
try {
Class.forName("javax.enterprise.inject.spi.BeanManager"); // Is CDI present?
Class.forName("javax.naming.InitialContext"); // Is JNDI present? (not on Google App Engine)
}
catch (Throwable ignore) {
return; // CDI or JNDI not supported on this environment.
}
// ...https://stackoverflow.com/questions/19428043
复制相似问题