java.lang.NoSuchFieldError:INSTANCE [英] java.lang.NoSuchFieldError: INSTANCE
问题描述
当尝试通过StormSubmitter提交我的拓扑时,我得到了 -
When trying to submit my topology through StormSubmitter, I am getting -
Caused by: java.lang.NoSuchFieldError: INSTANCE
at org.apache.http.impl.io.DefaultHttpRequestWriterFactory.<init>(DefaultHttpRequestWriterFactory.java:52)
我正在使用Spring。
I am using Spring.
我没有在Spout / Bolt构造函数中初始化HttpClient。相反,它是在一个类的构造函数中初始化的,该类是从中的Spring上传中获取的()
bolt的方法
I am not initializing HttpClient in Spout/Bolt Constructor. Instead its initialized in constructor of a class that is being fetched from Spring Context in prepare()
method of bolt
代码的结构如下 -
Code is structured as follows -
SomeBolt.java
@Component
public class SomeBolt extends BaseRichBolt {
private OutputCollector _collector;
private SomeClient someClient;
@Override
public void prepare(Map conf, TopologyContext context, OutputCollector collector) {
_collector = collector;
someClient = AppContext.getBean(SomeClient.class);
}
}
SomeClient.java
@Component
public class SomeClient {
private final CloseableHttpClient httpClient;
public SomeClient() {
this.httpClient = (httpClient == null ? HttpClients.createDefault() : httpClient);
}
}
AppContext.java
@Component
public class AppContext implements ApplicationContextAware {
private static ApplicationContext applicationContext;
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
AppContext.applicationContext = applicationContext;
}
public static <T> T getBean(Class<T> c) {
return applicationContext.getBean(c);
}
}
推荐答案
这可能是依赖问题。
这是一个非常不清楚的错误消息,但我发现类似的东西:
Hibernate NoSuchFieldError INSTANCE但仅限Struts 1?
It's a very unclear error message but I found something similar here: Hibernate NoSuchFieldError INSTANCE but only with Struts 1?
这篇关于java.lang.NoSuchFieldError:INSTANCE的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!