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文件里面查看是不是某些默认的配置项给配错了。

转载于:https://www.cnblogs.com/weisuoc/p/unable-to-find-bundle.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值