zoukankan      html  css  js  c++  java
  • ADF错误unable to find bundle for:XXX

    部署ADF应用时,页面打不开,服务器报以下错误:

    java.util.MissingResourceException: unable to find bundle for:LimsContacpOutApplyUIBundle
        at oracle.javatools.resourcebundle.BundleFactory.getMap(BundleFactory.java:118)
        at oracle.javatools.resourcebundle.BundleFactory.getMap(BundleFactory.java:55)
        at oracle.javatools.resourcebundle.BundleVariableResolver$LocaleMap.get(BundleVariableResolver.java:69)
        at oracle.javatools.resourcebundle.BundleVariableResolver$LocaleMap.get(BundleVariableResolver.java:56)
        at javax.el.MapELResolver.getValue(MapELResolver.java:164)
        at com.sun.faces.el.DemuxCompositeELResolver._getValue(DemuxCompositeELResolver.java:173)
        at com.sun.faces.el.DemuxCompositeELResolver.getValue(DemuxCompositeELResolver.java:200)

    但我确定资源文件LimsContacpOutApplyUIBundle是存在的,而且页面上也正确引用了

    <c:set var="limscontacpoutapplyuiBundle"
              value="#{adfBundle['LimsContacpOutApplyUIBundle']}"/>

    JDevelper页面编辑面板上资源文本也可以正常显示,试了各种办法,问题还是没解决,把jsff页面引用资源文件的EL全部删除,在本地可以run得起来,但和别的应用整合起来的时候还是报一样的错误。

    另外一个解决方法是:

    删掉资源文件,在文本属性上选择资源文件时JDeveloper会自动再创建个资源文件,虽然这样可以运行,但资源文件存放的目录有点奇怪,见截图:

    ws.type这两个文件夹不是笔者指定的,看到这就想到,程序应该是到ws.type这个目录下搜索资源文件,还没改之前是没这个目录的,资源文件存放在view目录下,这个目录应该是存在某个配置文件里面,使用JDeveloper的搜索功能(Search->Find in Files),在当前工程搜索ws.type这个关键字,最后在XXXXUI.jpr文件中找到这样一段xml:

    <value n="defaultPackage" v="org.lims.contacp.outapply.ws.type"/>

    看到这就应该知道,这个是默认目录配置项,笔者所期待的默认目录应该是org.lims.contacp.outapply.view原先的资源文件也是存在该目录下,可能是某些操作将默认目录给改了,而且看对资源文件引用的jsff片段就知道

    <c:set var="limscontacpoutapplyuiBundle"
              value="#{adfBundle['LimsContacpOutApplyUIBundle']}"/>

    这里面是没有目录信息的,也就是说程序对该文件的定位肯定是基于某个配置项的,而且上面自动生成ws.type这两个目录就可以推断该目录就是XXXUI.jpr里面的这个

    defaultPackage,将defaultPackage的值改成资源文件所在的目录,重新部署应用,错误消失。

    这个错误给我们一点经验就是,当服务器找不到某些文件,但我们确定该文件是存在的,这时候我们就应该去.jpr文件里面查看是不是某些默认的配置项给配错了。

  • 相关阅读:
    Educational Codeforces Round 89 (Rated for Div. 2) B. Shuffle(数学/双指针)
    Educational Codeforces Round 89 (Rated for Div. 2) A. Shovels and Swords(贪心/数学)
    Codeforces Round #648 (Div. 2) E. Maximum Subsequence Value(鸽巢原理)
    Codeforces Round #648 (Div. 2) D. Solve The Maze
    Codeforces Round #648 (Div. 2) C. Rotation Matching
    Codeforces Round #648 (Div. 2) B. Trouble Sort
    Codeforces Round #648 (Div. 2) A. Matrix Game
    一些常见的重置密码漏洞分析整理
    有无轻量级的可以显示md大纲的编辑器?
    Python3+ssl实现加密通信
  • 原文地址:https://www.cnblogs.com/weisuoc/p/unable-to-find-bundle.html
Copyright © 2011-2022 走看看