我试图覆盖init(ServletConfig配置)方法.我的代码是:
public void init(ServletConfig config) throws ServletException {
ServletContext sc = getServletContext(); // ----- NullPointerException
}
Run Code Online (Sandbox Code Playgroud)
这是给出NullPointerException.
如果我将其修改为:
public void init(ServletConfig config) throws ServletException {
ServletContext sc = config.getServletContext(); // ----- works fine
}
Run Code Online (Sandbox Code Playgroud)
这很好用.我知道我们应该覆盖init()方法而不是init(ServletConfig配置),但
任何人都可以给我正确的理由,为什么会发生这种情况?
我是 spring 新手,正在开发基于云的应用程序,并尝试使用 RabbitTemplate 和 RabbitMQ。
我能够将数据存储到队列中使用。
rabbitTemplate.convertAndSend(QUEUE_NAME, msg);
Run Code Online (Sandbox Code Playgroud)
但是当我使用从同一个队列接收数据时
rabbitTemplate.receiveAndConvert(QUEUE_NAME)
Run Code Online (Sandbox Code Playgroud)
我遇到异常:
错误原因:java.io.IOException 2016-09-13T11:15:21.38 + 0530 [App / 0]错误在com.rabbitmq.client.impl.AMQChannel.wrap(AMQChannel.java:106)2016-09-13T11 :15:21.38 + 0530 [App / 0]在com.rabbitmq.client.impl.AQChannel.wrap(AQChannel.java:102)发生错误2016-09-13T11:15:21.38 + 0530 [App / 0]在com发生错误.rabbitmq.client.impl.AMQChannel.exnWrappingRpc(AMQChannel.java:124) 2016-09-13T11:15:21.38+0530 [App/0] com.rabbitmq.client.impl.ChannelN.basicGet(ChannelN.java) 出现错误:985)2016-09-13T11:15:21.38 + 0530 [App / 0]错误在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)2016-09-13T11:15:21.38 + 0530 [App/0]错误在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 2016-09-13T11:15:21.38+0530 [App/0] Sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 2016-09-出现错误13T11:15:21.38 + 0530 [App / 0]错误在java.lang.reflect.Method.invoke(Method.java:498)2016-09-13T11:15:21.38 + 0530 [App / 0]错误在组织。 springframework.amqp.rabbit.connection.CachingConnectionFactory$CachedChannelInitationHandler.invoke(CachingConnectionFactory.java:625) 2016-09-13T11:15:21.38+0530 [App/0] com.sun.proxy.$Proxy55.basicGet 出现错误(未知来源)2016-09-13T11:15:21.38 + 0530 [App / 0]错误在org.springframework.amqp.rabbit.core.RabbitTemplate $ 4.doInRabbit(RabbitTemplate.java:650)2016-09-13T11:15:21.38 +0530 [App/0] org.springframework.amqp.rabbit.core.RabbitTemplate$4.doInRabbit(RabbitTemplate.java:646) 2016-09-13T11:15:21.38+0530 [App/0] org. springframework.amqp.rabbit.core.RabbitTemplate.doExecute(RabbitTemplate.java:1045) 2016-09-13T11:15:21.38+0530 [App/0] ERR ... 50 …
Local Inner类不仅可以访问实例变量,还可以访问方法的局部变量(在其中定义它们),但必须声明局部变量final.
为什么final在这种情况下必须声明局部变量?
我有一个文本文件,其中包含一些印地语字符和ISO 8859-1中的默认字符编码.我使用"FileInputStream"来读取该文件中的数据,使用"FileOutputStream"将数据写入另一个文本文件.
我的代码是:
FileInputStream fis = new FileInputStream("D:/input.txt");
int i = -1;
FileOutputStream fos = new FileOutputStream("D:/outputNew.txt");
while((i = fis.read())!= -1){
fos.write(i);
}
fos.flush();
fos.close();
fis.close();
Run Code Online (Sandbox Code Playgroud)
我没有在任何地方指定编码("UTF-8"),但仍然在输出文件中有正确的文本.如何发生,我没有得到?