Ошибка загрузки пакета JSF - PullRequest
0 голосов
/ 14 ноября 2011

В настоящее время мое приложение JSF (1.2) выдает следующий сбой при запуске Servlet Engine (Tomcat 6.0.32) ....

java.util.MissingResourceException: Can't find bundle for base name javax.faces.Messages, locale de
    java.util.ResourceBundle.throwMissingResourceException(Unknown Source)
    java.util.ResourceBundle.getBundleImpl(Unknown Source)
    java.util.ResourceBundle.getBundle(Unknown Source)
    com.sun.faces.util.MessageFactory.getMessage(MessageFactory.java:177)
    com.sun.faces.util.MessageFactory.getMessage(MessageFactory.java:136)
    com.sun.faces.util.MessageUtils.getExceptionMessageString(MessageUtils.java:351)
    com.sun.faces.mgbean.BeanBuilder.newBeanInstance(BeanBuilder.java:187)
    com.sun.faces.mgbean.BeanBuilder.build(BeanBuilder.java:105)
    com.sun.faces.mgbean.BeanManager.createAndPush(BeanManager.java:368)
    com.sun.faces.mgbean.BeanManager.create(BeanManager.java:230)
    com.sun.faces.el.ManagedBeanELResolver.getValue(ManagedBeanELResolver.java:86)
    javax.el.CompositeELResolver.getValue(CompositeELResolver.java:54)
    com.sun.faces.el.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:72)
    org.apache.el.parser.AstIdentifier.getValue(AstIdentifier.java:69)
    org.apache.el.parser.AstValue.getValue(AstValue.java:112)
    org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)
    com.sun.faces.application.ValueBindingValueExpressionAdapter.getValue(ValueBindingValueExpressionAdapter.java:113)
    javax.faces.component.ValueExpressionValueBindingAdapter.getValue(ValueExpressionValueBindingAdapter.java:70)
    org.apache.myfaces.custom.aliasbean.Alias.computeEvaluatedExpression(Alias.java:113)
    org.apache.myfaces.custom.aliasbean.Alias.make(Alias.java:137)
    org.apache.myfaces.custom.aliasbean.AliasBean.makeAlias(AliasBean.java:357)
    org.apache.myfaces.custom.aliasbean.AliasBean.makeAlias(AliasBean.java:342)
    org.apache.myfaces.custom.aliasbean.AliasBeanTagHandler.applyNextHandler(AliasBeanTagHandler.java:90)
    com.sun.facelets.tag.jsf.ComponentHandler.apply(ComponentHandler.java:169)
    com.sun.facelets.tag.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:47)
    com.sun.facelets.tag.jsf.ComponentHandler.applyNextHandler(ComponentHandler.java:314)
    com.sun.facelets.tag.jsf.ComponentHandler.apply(ComponentHandler.java:169)
    com.sun.facelets.tag.jsf.ComponentHandler.applyNextHandler(ComponentHandler.java:314)
    com.sun.facelets.tag.jsf.ComponentHandler.apply(ComponentHandler.java:169)
    com.sun.facelets.tag.jsf.ComponentHandler.applyNextHandler(ComponentHandler.java:314)
    com.sun.facelets.tag.jsf.ComponentHandler.apply(ComponentHandler.java:169)
    com.sun.facelets.tag.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:47)
    com.sun.facelets.tag.jsf.ComponentHandler.applyNextHandler(ComponentHandler.java:314)
    com.sun.facelets.tag.jsf.ComponentHandler.apply(ComponentHandler.java:169)
    com.sun.facelets.tag.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:47)
    com.sun.facelets.tag.jsf.core.ViewHandler.apply(ViewHandler.java:109)
    com.sun.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.java:49)
    com.sun.facelets.compiler.EncodingHandler.apply(EncodingHandler.java:25)
    com.sun.facelets.impl.DefaultFacelet.apply(DefaultFacelet.java:95)
    com.icesoft.faces.facelets.D2DFaceletViewHandler.renderResponse(D2DFaceletViewHandler.java:274)
    com.icesoft.faces.application.D2DViewHandler.renderView(D2DViewHandler.java:159)
    com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:110)
    com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100)
    com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
    com.icesoft.faces.webapp.http.core.JsfLifecycleExecutor.apply(JsfLifecycleExecutor.java:19)
    com.icesoft.faces.context.View$2$1.respond(View.java:48)
    com.icesoft.faces.webapp.http.servlet.ServletRequestResponse.respondWith(ServletRequestResponse.java:201)
    com.icesoft.faces.context.View$2.serve(View.java:77)
    com.icesoft.faces.context.View.servePage(View.java:149)
    com.icesoft.faces.webapp.http.core.SingleViewServer.service(SingleViewServer.java:52)
    com.icesoft.faces.webapp.http.common.ServerProxy.service(ServerProxy.java:11)
    com.icesoft.faces.webapp.http.servlet.MainSessionBoundServlet$4.service(MainSessionBoundServlet.java:149)
    com.icesoft.faces.webapp.http.common.standard.PathDispatcherServer.service(PathDispatcherServer.java:24)
    com.icesoft.faces.webapp.http.servlet.BasicAdaptingServlet.service(BasicAdaptingServlet.java:16)
    com.icesoft.faces.webapp.http.servlet.PathDispatcher.service(PathDispatcher.java:23)
    com.icesoft.faces.webapp.http.servlet.SessionDispatcher.service(SessionDispatcher.java:53)
    com.icesoft.faces.webapp.http.servlet.PathDispatcher.service(PathDispatcher.java:23)
    com.icesoft.faces.webapp.http.servlet.MainServlet.service(MainServlet.java:131)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:368)
    org.springframework.security.web.authentication.preauth.AbstractPreAuthenticatedProcessingFilter.doFilter(AbstractPreAuthenticatedProcessingFilter.java:89)
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
    org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:97)
    de.konsens.wwwkmv.security.KmvExceptionTranslationFilter.doFilter(KmvExceptionTranslationFilter.java:54)
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
    org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:57)
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
    org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:79)
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
    org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:169)
    org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237)
    org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)

Я настроил пакет сообщений в файле face-config.xml

<application>
  <view-handler>com.icesoft.faces.facelets.D2DFaceletViewHandler</view-handler>
  <locale-config>
     <default-locale>de</default-locale>
     <supported-locale>de</supported-locale>
     <supported-locale>de_DE</supported-locale>
   </locale-config>
   <message-bundle>Messages</message-bundle>
</application>

Я поместил файл свойств в папку WEB-INF / classes / (Messages_de.properties, Messages_de_DE.properties), но я всегда получаю это сообщение .... Самое загадочное то, что я только изменил вещи в чтении конфигурации приложения, но ничего не изменилось в файлахface-config.xml или jspx.

Ответы [ 2 ]

2 голосов
/ 21 сентября 2012

Я получил то же сообщение об ошибке:

20-09-2012 16:20:31   HTTP JVM: Can't find resource for bundle javax.faces.Messages, key nl. For more detailed information, please consult error-log-0.xml located in /prj/notes/appldata/data/domino/workspace/logs

20-09-2012 16:20:31   HTTP JVM: com.ibm.xsp.webapp.FacesServlet$ExtendedServletException: javax.faces.FacesException: Can't find resource for bundle javax.faces.Messages, key nl

20-09-2012 16:20:31   HTTP JVM: CLFAD0134E: Exception processing XPage request. For more detailed information, please consult error-log-0.xml located in /prj/notes/appldata/data/domino/workspace/logs

Что ж, я использую XPages (мощный инструмент RAD от IBM, основанный на JSF), и в моем случае это было потому, что система хотела показать некоторые сообщения об ошибках проверки поля , когда мой MessagesObject был не в фокусе (или даже не отображается).

Я решил ее в источнике проблемы, потому что ошибка произошла из-за проверки поля. Фактически, я нажимал на изображение, которое переключалось на другой динамический контент, путем частичного обновления. Я выбрал «Не проверять или обновлять данные», поэтому проверка поля была пропущена.

0 голосов
/ 14 ноября 2011
java.util.MissingResourceException: Can't find bundle for base name javax.faces.Messages, locale de

Это фактически вводящее в заблуждение исключение и ошибка в сообщениях об ошибках более старых версий JSF 1.2. Проблема real в том, что <message-bundle> не может быть найден.

Вы упомянули, что поместили Messages_de.properties и Messages_de_DE.properties в папку /WEB-INF/classes, что нормально, но вы должны также предоставить файл по умолчанию Messages.properties. Его можно оставить пустым.

Другой возможной причиной является то, что вы на самом деле разрабатываете с использованием IDE и что вы буквально поместили его в папку /WEB-INF/classes с помощью навигатора IDE. Вы не должны этого делать. Это будет отменено всякий раз, когда вы создаете и развертываете WAR. Вместо этого вы должны поместить файлы .properties в корневой каталог проекта, где также находятся все ваши пакеты Java.

...