Caused by: java.util.MissingResourceException: Can't find bundle for base name javax.servlet.LocalStrings, locale zh_CN

这个是很早以前的一个bug了,最近开始用idea发现追源码相当方便,于是结合网上的解决方案以及自己的判断追踪一下原因,当然没有深究,只是根据提示一直追而已;先说一下解决方案:

<dependency>   <groupId>javax.servlet</groupId>   <artifactId>javax.servlet-api</artifactId>   <version>3.1.0</version>   <scope>provided</scope></dependency>

  根据异常提示发现Can‘t find bundle for base name这个是jdk的资源绑定类抛出的,根据提示bundle XXX基本上是个资源文件,推测在绑定这个资源文件没有找到,搜索 avax.servlet.LocalStrings 发现在javaee-api中,如图:


package javax.servlet;
public abstract class ServletOutputStream extends OutputStream  {

    private static final String LSTRING_FILE = "javax.servlet.LocalStrings";  //这个调用jdk的方法没有取到报错了
    private static ResourceBundle lStrings =
        ResourceBundle.getBundle(LSTRING_FILE);

看看名字取得XX_file,说明在javax/servlet/下应该有个文件叫 LocalStrings ,直接进行文件搜索,果然在下载的javaee-api源码文件中找到了,但是打成jar包的文件中却没有(原因不深究)。

这时候网上搜索了一下,有人说直接把tomcat的jar包引入,用到了web相关的jar(事后诸葛一下:tomcat本身就是一个servelet容器,javaee-api不可能调tomcat的私有jar,从上面的package也能看出跟servlet有关),引入发现果然可以;

这时候看到了另外一个文章,写得就是开头的解决方案,直接引入 javax.servlet-api ,问题解决了,验证一下,说明引入的这个servelt-api肯定有这个文件,搜索一下果然有,同时发现javaee-api和 javax.servlet-api里面有些全类限定名一模一样的类,比如上面的

ServletOutputStream,应该是出于一些考虑,这个时候想两个一模一样的类如何调用,不会冲突吗?根据加载的一些规则,比如都在pom中以jar包形式依赖 ,只要调整顺序即可(已验证)由于文件已经存在了,不影响调用;贴一下两个jar包的目录,如下:


Caused by: java.util.MissingResourceException: Can't find bundle for base name javax.servlet.LocalStrings, locale zh_CN

原文地址:https://www.cnblogs.com/aishangyizhihu/p/11333499.html

时间: 2024-10-08 10:17:16

Caused by: java.util.MissingResourceException: Can't find bundle for base name javax.servlet.LocalStrings, locale zh_CN的相关文章

java.util.MissingResourceException: Can&#39;t find bundle for base name init, locale zh_CN问题的处理

一.问题描述 项目开发使用的是SSM框架,项目那个正常运行,开发一个新功能后,添加了一些配置文件,再重新运行项目抛出异常,找不到name为init的bean. 二.异常信息详细 六月 30, 2018 8:49:56 下午 org.apache.catalina.core.StandardWrapperValve invoke 严重: Servlet.service() for servlet [springServlet] in context with path [/cyd_online]

转:解决 java.util.MissingResourceException: Can&#39;t find bundle for base name com...config, locale zh_CN 错误

Solve java.util.MissingResourceException: Can't find bundle for base name com...config, locale zh_CN at java.util.ResourceBundle.throwMissingResourceException(ResourceBundle.java:836)at java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:805)a

Exception in thread &quot;main&quot; java.util.MissingResourceException: Can&#39;t find bundle for base name Message, locale zh_CN

问题描述:今天在进行程序国际化编程时,碰到MissingResourceException异常,大意是没有找到属性文件.当时项目目录如下: 我把两个属性文件放到源码包下,所以会出现问题. 解决途径:将属性文件放到src目录下(最好放在与.class同目录下) Exception in thread "main" java.util.MissingResourceException: Can't find bundle for base name Message, locale zh_C

解决方法 java util MissingResourceException Can&#39;t find bundle fo

Exception in thread "main" java.util.MissingResourceException: Can't find bundle for base name MessageResource, locale zh_CN at java.util.ResourceBundle.throwMissingResourceException(ResourceBundle.java:1427) at java.util.ResourceBundle.getBundl

Java: MissingResourceException, &quot;Can&#39;t find bundle for base name myMessage, locale zh_CN&quot;

在java中,在多语言国际化时可以用 *.java 类来作为资源文件使用. 1. 首先定义类, 类必须继承ListResourceBundle 类所在路径为: src/I18N 1 public class myMessage_en_US extends ListResourceBundle { 2 3 private final Object mydata[][] = { { "hello", "hello!" }, 4 { "greetting&quo

解决spark程序报错:Caused by: java.util.concurrent.TimeoutException: Futures timed out after [300 seconds]

报错信息: 09-05-2017 09:58:44 CST xxxx_job_1494294485570174 INFO - at org.apache.spark.sql.catalyst.errors.package$.attachTree(package.scala:49) 09-05-2017 09:58:44 CST xxxx_job_1494294485570174 INFO - at org.apache.spark.sql.execution.aggregate.Tungsten

java读取package中的properties文件java.util.MissingResourceException

文件结构: /build/classes/d914/Hello.class /build/classes/d914/mess.properties /build/classes/d914/mess_zh_CN.properties /build/classes/d914/mess_en_US.properties 在eclipse中运行如下代码: package d914; import java.util.ResourceBundle; import java.util.Locale; pub

java.util.MissingResourceException解决策

.properties文件放到当前目录下会报错: 需要放到src文件夹下: java.util.MissingResourceException解决策

java.lang.IllegalStateException: class utils.filter.ContentFilter is not a javax.servlet.Filter

1.错误描述 2016-01-12 11:27:01.787:WARN:oejuc.AbstractLifeCycle:FAILED ContentFilter: java.lang.IllegalStateException: class utils.filter.ContentFilter is not a javax.servlet.Filter java.lang.IllegalStateException: class utils.filter.ContentFilter is not