想了解IllegalArgumentException:Theobserverisnull的解决方法的新动态吗?本文将为您提供详细的信息,我们还将为您解答关于observationerror的相关问题
想了解IllegalArgumentException:The observer is null的解决方法的新动态吗?本文将为您提供详细的信息,我们还将为您解答关于observation error的相关问题,此外,我们还将为您介绍关于android – java.lang.IllegalArgumentException:指定为非null的参数为null:方法kotlin.jvm.internal.Intrinsics.checkParameterIsNotNull、Caused by: java.lang.IllegalArgumentException: Negative time、Caused by: java.lang.IllegalArgumentException: The servlets the url-pattern which is not permitted、ConsumerAwareMessageListener 抛出 IllegalArgumentException的新知识。
本文目录一览:- IllegalArgumentException:The observer is null的解决方法(observation error)
- android – java.lang.IllegalArgumentException:指定为非null的参数为null:方法kotlin.jvm.internal.Intrinsics.checkParameterIsNotNull
- Caused by: java.lang.IllegalArgumentException: Negative time
- Caused by: java.lang.IllegalArgumentException: The servlets the url-pattern which is not permitted
- ConsumerAwareMessageListener 抛出 IllegalArgumentException
IllegalArgumentException:The observer is null的解决方法(observation error)
ViewPager中包含的页面如果有用到ListView。当从ViewPage页面退出应用时报java.lang.IllegalArgumentException: The observer is null.错误。这是因为
ViewPager在移除View时会调用ListView的unregisterDataSetObserver方法,而ListView本身也会调用该方法,所以在第二次调用时就会报“The observer is null”错误。
解决办法:
复写ListView的Adapter的unregisterDataSetObserver方法,对空指针进行判断即可
@Override
public void unregisterDataSetObserver(DataSetObserver observer) {
if(observer != null){
super.unregisterDataSetObserver(observer);
}
}
android – java.lang.IllegalArgumentException:指定为非null的参数为null:方法kotlin.jvm.internal.Intrinsics.checkParameterIsNotNull
java.lang.IllegalArgumentException:指定为非null的参数为null:方法kotlin.jvm.internal.Intrinsics.checkParameterIsNotNull,参数事件
为线
覆盖fun onEditorAction(v:TextView,actionId:Int,event:KeyEvent)
以下是整个代码.这段代码最初是在java中,我使用Android Studio将其转换为Kotlin,但现在我收到了这个错误.我尝试重建和清理项目,但这没有用.
val action = supportActionBar //get the actionbar action!!.setdisplayShowCustomEnabled(true) //enable it to display a custom view in the action bar. action.setCustomView(R.layout.search_bar)//add the custom view action.setdisplayShowTitleEnabled(false) //hide the title edtSearch = action.customView.findViewById(R.id.edtSearch) as EditText //the text editor //this is a listener to do a search when the user clicks on search button edtSearch?.setonEditorActionListener(object : TextView.OnEditorActionListener { override fun onEditorAction(v: TextView,actionId: Int,event: KeyEvent): Boolean { if (actionId == EditorInfo.IME_ACTION_SEARCH) { Log.e("TAG","search button pressed") //doSearch() return true } return false } })
解决方法
KeyEvent
: If triggered by an enter key,this is the event; otherwise,this is null.
所以你需要做的就是让Kotlin类型为空可以解释这个问题,否则注入的null检查会在你的应用程序获得一个带有null值的调用时崩溃,就像你已经看到它一样:
edtSearch?.setonEditorActionListener(object : TextView.OnEditorActionListener { override fun onEditorAction(v: TextView,event: KeyEvent?): Boolean { ... } })
有关this answer平台类型的更多说明.
Caused by: java.lang.IllegalArgumentException: Negative time
问题
最近在部署war应用的时候,出现如下错误:
Caused by: java.lang.IllegalArgumentException: Negative time
原因
windows server 2003 在复制war文件的时候,把要被复制的文件的修改时间变成1940年。
解决
先将war在本地压缩成zip文件,然后,上传这个zip文件到服务器,然后,在服务器上面解压zip文件,这样在win上面得到war文件修改时间就没有被修改。
参考
- 如何复制文件夹而不改变修改时间?
Caused by: java.lang.IllegalArgumentException: The servlets the url-pattern which is not permitted
Caused by: java.lang.IllegalArgumentException: The servlets named [ServletDemo] and [day05.ServletDemo] are both mapped to the url-pattern [/ServletDemo] which is not permitted
应该是 /ServletDemo 一个请求映射了 [ServletDemo] and [day05.ServletDemo] 两个servlet
找到原因了
是因为在类定义上面:
@WebServlet("/ServletDemo")//这里
public class ServletDemo extends HttpServlet {
不需要再在web.xml中定义servlet属性了。
ConsumerAwareMessageListener 抛出 IllegalArgumentException
如何解决ConsumerAwareMessageListener 抛出 IllegalArgumentException?
我有一个用例,我想使用 Consumer 对象,因此,我正在使用这个
@Slf4j
@Service
@Scope(value = Configurablebeanfactory.ScopE_PROTOTYPE)
public class MyMessageListener extends AbstractConsumerSeekAware implements ConsumerAwareMessageListener<String,String> {
@Override
public void onMessage(ConsumerRecord<String,String> consumerRecord,Consumer<?,?> consumer) {
consumer.pause(Collections.singleton(new TopicPartition(consumerRecord.topic(),consumerRecord.partition())));
}
}
但是每次我向主题发送消息时,我都会收到一个 IllegalArgumentException,我认为这是因为 Consumer 对象而发生的。
这是我的监听器容器 -
@Autowired
private MyMessageListener myMessageListener;
public KafkaMessageListenerContainer<String,String> createContainer(String topic) {
ContainerProperties containerProperties = new ContainerProperties(topic);
ConsumerFactory<String,String> consumerFactory = new DefaultKafkaConsumerFactory<>(consumerProperties());
KafkaMessageListenerContainer<String,String> listenerContainer = new KafkaMessageListenerContainer<>(consumerFactory,containerProperties);
listenerContainer.getContainerProperties().setMessageListener(myMessageListener);
listenerContainer.getContainerProperties().setGroupId(UUID.randomUUID().toString());
listenerContainer.setAutoStartup(false);
return listenerContainer;
}
private Map<String,Object> consumerProperties(){
Map<String,Object> props = new HashMap<>();
props.put(ConsumerConfig.BOOTSTRAP_SERVERS_CONfig,this.constants.getKafkaBootstrapAddress());
props.put(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONfig,StringDeserializer.class);
props.put(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONfig,StringDeserializer.class);
props.put(ConsumerConfig.MAX_POLL_RECORDS_CONfig,"1");
props.put(ConsumerConfig.AUTO_OFFSET_RESET_CONfig,"latest");
return props;
}
为什么会这样?
编辑 1
org.springframework.kafka.listener.ListenerExecutionFailedException: Listener Failed; nested exception is java.lang.IllegalArgumentException: Unrecognized Type: [null]
at org.springframework.kafka.listener.KafkaMessageListenerContainer$ListenerConsumer.decorateException(KafkaMessageListenerContainer.java:2361) ~[spring-kafka-2.7.0.jar:2.7.0]
at org.springframework.kafka.listener.KafkaMessageListenerContainer$ListenerConsumer.invokeErrorHandler(KafkaMessageListenerContainer.java:2346) ~[spring-kafka-2.7.0.jar:2.7.0]
at org.springframework.kafka.listener.KafkaMessageListenerContainer$ListenerConsumer.doInvokeRecordListener(KafkaMessageListenerContainer.java:2220) ~[spring-kafka-2.7.0.jar:2.7.0]
at org.springframework.kafka.listener.KafkaMessageListenerContainer$ListenerConsumer.doInvokeWithRecords(KafkaMessageListenerContainer.java:2134) ~[spring-kafka-2.7.0.jar:2.7.0]
at org.springframework.kafka.listener.KafkaMessageListenerContainer$ListenerConsumer.invokeRecordListener(KafkaMessageListenerContainer.java:2016) ~[spring-kafka-2.7.0.jar:2.7.0]
at org.springframework.kafka.listener.KafkaMessageListenerContainer$ListenerConsumer.invokeListener(KafkaMessageListenerContainer.java:1702) ~[spring-kafka-2.7.0.jar:2.7.0]
at org.springframework.kafka.listener.KafkaMessageListenerContainer$ListenerConsumer.invokeIfHaveRecords(KafkaMessageListenerContainer.java:1272) ~[spring-kafka-2.7.0.jar:2.7.0]
at org.springframework.kafka.listener.KafkaMessageListenerContainer$ListenerConsumer.pollAndInvoke(KafkaMessageListenerContainer.java:1264) ~[spring-kafka-2.7.0.jar:2.7.0]
at org.springframework.kafka.listener.KafkaMessageListenerContainer$ListenerConsumer.run(KafkaMessageListenerContainer.java:1161) ~[spring-kafka-2.7.0.jar:2.7.0]
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) ~[na:na]
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[na:na]
at java.base/java.lang.Thread.run(Thread.java:832) ~[na:na]
解决方法
你用的是什么版本?你能提供一个复制它的小应用程序吗?我刚刚测试了它,首先使用 Boot 的自动配置容器工厂,然后使用您的代码,两者都适合我(最新的 Boot 2.4.5)。
@SpringBootApplication
public class So67301285Application {
public static void main(String[] args) {
SpringApplication.run(So67301285Application.class,args);
}
@Bean
ConcurrentMessageListenerContainer<String,String> container(
ConcurrentKafkaListenerContainerFactory<String,String> factory,ConsumerAwareMessageListener<String,String> listener) {
ConcurrentMessageListenerContainer<String,String> container = factory.createContainer("so67301285");
container.getContainerProperties().setMessageListener(listener);
container.getContainerProperties().setGroupId("so67301285");
return container;
}
@Bean
public NewTopic topic() {
return TopicBuilder.name("so67301285").partitions(1).replicas(1).build();
}
@Bean
public KafkaMessageListenerContainer<String,String> createContainer(Listener listener) {
ContainerProperties containerProperties = new ContainerProperties("so67301285");
ConsumerFactory<String,String> consumerFactory = new DefaultKafkaConsumerFactory<>(consumerProperties());
KafkaMessageListenerContainer<String,String> listenerContainer = new KafkaMessageListenerContainer<>(
consumerFactory,containerProperties);
listenerContainer.getContainerProperties().setMessageListener(listener);
listenerContainer.getContainerProperties().setGroupId("so67301285-1");
listenerContainer.setAutoStartup(true);
return listenerContainer;
}
private Map<String,Object> consumerProperties() {
Map<String,Object> props = new HashMap<>();
props.put(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG,"localhost:9092");
props.put(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG,StringDeserializer.class);
props.put(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG,StringDeserializer.class);
props.put(ConsumerConfig.MAX_POLL_RECORDS_CONFIG,"1");
props.put(ConsumerConfig.ENABLE_AUTO_COMMIT_CONFIG,false);
props.put(ConsumerConfig.AUTO_OFFSET_RESET_CONFIG,"earliest");
return props;
}
}
@Component
class Listener extends AbstractConsumerSeekAware
implements ConsumerAwareMessageListener<String,String> {
@Override
public void onMessage(ConsumerRecord<String,String> data,Consumer<?,?> consumer) {
System.out.println(data.value() + "@" + data.offset() + "from group: " + KafkaUtils.getConsumerGroupId());
}
}
结果:
foo@10from group: so67301285
foo@10from group: so67301285-1
我们今天的关于IllegalArgumentException:The observer is null的解决方法和observation error的分享就到这里,谢谢您的阅读,如果想了解更多关于android – java.lang.IllegalArgumentException:指定为非null的参数为null:方法kotlin.jvm.internal.Intrinsics.checkParameterIsNotNull、Caused by: java.lang.IllegalArgumentException: Negative time、Caused by: java.lang.IllegalArgumentException: The servlets the url-pattern which is not permitted、ConsumerAwareMessageListener 抛出 IllegalArgumentException的相关信息,可以在本站进行搜索。
本文标签: