2015-03-03 4 views
1

У меня есть одно приложение, использующее CDI со сваркой 2.2.9.Final и встроенный Tomcat 7.0.57, и все работает нормально. После обновления встроенного Tomcat 7.0.59, когда я начинаю мое заявление я получил следующее исключение:WELD-001201: Ошибка загрузки beans.xml + Tomcat 7.0.59

Caused by: org.jboss.weld.exceptions.IllegalStateException: WELD-001201: Error loading beans.xml jndi:/localhost/WEB-INF/beans.xml 
at org.jboss.weld.xml.BeansXmlParser.parse(BeansXmlParser.java:124) 
at org.jboss.weld.bootstrap.WeldBootstrap.parse(WeldBootstrap.java:131) 
at org.jboss.weld.environment.servlet.deployment.WebAppBeanArchiveScanner.scan(WebAppBeanArchiveScanner.java:78) 
at org.jboss.weld.environment.deployment.discovery.AbstractDiscoveryStrategy.performDiscovery(AbstractDiscoveryStrategy.java:83) 
at org.jboss.weld.environment.servlet.WeldServletLifecycle.createDeployment(WeldServletLifecycle.java:230) 
at org.jboss.weld.environment.servlet.WeldServletLifecycle.initialize(WeldServletLifecycle.java:120) 
at org.jboss.weld.environment.servlet.EnhancedListener.onStartup(EnhancedListener.java:61) 
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5513) 
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
... 6 more 
    Caused by: java.io.FileNotFoundException: jndi:/localhost/WEB-INF/beans.xml 
at org.apache.naming.resources.DirContextURLConnection.getInputStream(DirContextURLConnection.java:384) 
at java.net.URL.openStream(URL.java:1037) 
at org.jboss.weld.xml.BeansXmlParser.parse(BeansXmlParser.java:101) 
... 14 more 

ответ

0

Проблема заключается в том java.io.FileNotFoundException: JNDI:/локальный/WEB-INF/бобы. xml

Я только что столкнулся с чем-то подобным сегодня. Либо файл не может быть найден, либо вы пытаетесь включить его из вашего web.xml с объявлением ENTITY. Если вы пытаетесь загрузить beans.xml с объявлением ENTITY, проблема возникает из-за новой политики безопасности в Tomcat 7.0.59 - теперь блокировка загрузки внешних объектов по умолчанию. Контекстный параметр xmlBlockExternal теперь установлен на значение «true» по умолчанию.

Вы должны переопределить это в своем контексте: либо основной контекст в ~ Tomcat/conf/context.xml, либо в вашем контекстном файле на уровне приложения. Чтобы переопределить, добавьте параметр следующим образом:

 <Context xmlBlockExternal="false"> 
Смежные вопросы