小编Har*_*ani的帖子

java.lang.NoSuchFieldError:INSTANCE

当我尝试通过StormSubmitter提交我的拓扑时,我得到了 -

Caused by: java.lang.NoSuchFieldError: INSTANCE  
at org.apache.http.impl.io.DefaultHttpRequestWriterFactory.<init>(DefaultHttpRequestWriterFactory.java:52)
Run Code Online (Sandbox Code Playgroud)

我正在使用Spring.

我没有在Spout/Bolt构造函数中初始化HttpClient.相反,它是在一个类的构造函数中初始化的,该类是从Spring的上下文中获取prepare()

代码结构如下 -

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);
    }
}
Run Code Online (Sandbox Code Playgroud)

SomeClient.java

@Component
public class SomeClient {
    private final CloseableHttpClient httpClient;

    public SomeClient() {
        this.httpClient = (httpClient == null ? HttpClients.createDefault() : httpClient);
    }
}
Run Code Online (Sandbox Code Playgroud)

AppContext.java

@Component
public class AppContext implements ApplicationContextAware {

    private static …
Run Code Online (Sandbox Code Playgroud)

java spring httpclient apache-storm

26
推荐指数
2
解决办法
8万
查看次数

喷嘴没有得到回应

在我们的一个包含1个喷口和1个螺栓的拓扑结构中 - 我有一种预感,即螺栓正在完成(并且正在进行),但喷嘴仍然失效.

我尝试通过如下的TaskHook来确认这一点 -

public class BaseHook extends BaseTaskHook {

    private Logger logger;
    private String topology;
    private String component;

    public BaseHook(String component) {
        this.component = component;
    }

    @Override
    public void prepare(Map conf, TopologyContext context) {
        logger = LoggerFactory.getLogger(this.getClass());
        this.topology = (String) conf.get("topology.name");
    }

    @Override
    public void emit(EmitInfo info) {
        log("EMITTED >> Value = " + info.values);
    }

    @Override
    public void spoutAck(SpoutAckInfo info) {
        log("ACKED >> Tuple = " + info.messageId + ", Latency = " + info.completeLatencyMs);
    }

    @Override …
Run Code Online (Sandbox Code Playgroud)

apache-storm

6
推荐指数
1
解决办法
1809
查看次数

标签 统计

apache-storm ×2

httpclient ×1

java ×1

spring ×1