2017-08-22 60 views
0

我正在做一個簡單的基於JSF的項目(請參閱this image檢查項目結構),但我不明白爲什麼faces-config無法到達消息。「無法找到基本名稱捆綁」在JSF messages.properties

下面是引用「Messages.properties」文件中的「faces-config.xml中」的代碼段:

<application> 
     <message-bundle>br.com.teste.primeiraaplicacaojsf.web.i18n.Messages</message-bundle> 
     <locale-config> 
     <default-locale>pt_BR</default-locale> 
     </locale-config> 
    </application> 

這裏是在瀏覽器上所產生的錯誤消息:

HTTP Status 500 - Can't find bundle for base name br.com.teste.primeiraaplicacaojsf.web.i18n.Messages, locale pt_BR 

type Exception report 

message Can't find bundle for base name br.com.teste.primeiraaplicacaojsf.web.i18n.Messages, locale pt_BR 

description The server encountered an internal error that prevented it from fulfilling this request. 

exception 

javax.servlet.ServletException: Can't find bundle for base name br.com.teste.primeiraaplicacaojsf.web.i18n.Messages, locale pt_BR 
    javax.faces.webapp.FacesServlet.service(FacesServlet.java:671) 
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) 
root cause 

java.util.MissingResourceException: Can't find bundle for base name br.com.teste.primeiraaplicacaojsf.web.i18n.Messages, locale pt_BR 
    java.util.ResourceBundle.throwMissingResourceException(ResourceBundle.java:1564) 
    java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1387) 
    java.util.ResourceBundle.getBundle(ResourceBundle.java:1082) 
    javax.faces.component.MessageFactory.getMessage(MessageFactory.java:161) 
    javax.faces.component.MessageFactory.getMessage(MessageFactory.java:251) 
    javax.faces.component.UIInput.validateValue(UIInput.java:1149) 
    javax.faces.component.UIInput.validate(UIInput.java:982) 
    javax.faces.component.UIInput.executeValidate(UIInput.java:1248) 
    javax.faces.component.UIInput.processValidators(UIInput.java:712) 
    javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1261) 
    javax.faces.component.UIForm.processValidators(UIForm.java:253) 
    javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1261) 
    javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1261) 
    javax.faces.component.UIViewRoot.processValidators(UIViewRoot.java:1195) 
    com.sun.faces.lifecycle.ProcessValidationsPhase.execute(ProcessValidationsPhase.java:76) 
    com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101) 
    com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:198) 
    javax.faces.webapp.FacesServlet.service(FacesServlet.java:658) 
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) 
+0

將您的Messages.properties重命名爲Messages_pt_BR.properties,構建,部署並查看它是否可行。 – Bonifacio

+0

@Bonifacio錯誤仍然存​​在。一模一樣。 –

+0

@Kukeltje它位於結構中的正確位置,但我不知道如何在部署後檢查它是否保留在該位置。 –

回答

1

由於某種原因,IntelliJ項目瀏覽器顯示「Messages.properties」文件的路徑,就好像它是一個窗口後面的文件夾序列,它只創建一個包含整個路徑名稱的文件夾。 該問題已通過重新創建資源文件夾(文件保持完全相同)內的文件夾結構得到解決。

+0

確實,IntelliJ創建的結構不是一組文件夾,而只是一個名爲org.abc.def.messages的文件夾,並且其中的所有屬性文件都位於其中。這是造成這個問題。需要在src/main/resources下創建適當的文件夾,例如/ org/abc/def/messages,並在其中放置.properties文件。 –

相關問題