私はを受け取りました。メソッドがあり、HSM
をpingすることができます。HealthIndicatorにサービスをインジェクトするときのエラー
HealthIndicator
を実装するクラスでこの
HSMService
を注入したい
package com.app.ddd.services;
import com.app.ddd.messages.EchoRequest;
public class HSMService implements HSMServiceI {
private SynchronousEstablishedConnection connection;
private String genericGroupName;
public HSMService(EstablishedConnection connection, String genericGroupName) {
this.connection = new SynchronousEstablishedConnection(connection);
this.genericGroupName = genericGroupName;
}
@Override
public void ping() {
connection.submit(new EchoRequest());
}
}
:
HSMHealthIndicator.java:
@Component
public class HSMHealthIndicator implements HealthIndicator {
@Autowired
private HSMService hsmService;
private String host;
private int port;
private int checkHSMStatus() {
//just to test
if (hsmService == null)
System.out.println("hsmService null");
return 0;
}
@Override
public Health health() {
if (checkHSMStatus() != 0) {
return Health.down().withDetail("Error Code", checkRKMSStatus()).build();
}
return Health.up().build();
}
public String getHost() {
return host;
}
public void setHost(String host) {
this.host = host;
}
public int getPort() {
return port;
}
public void setPort(int port) {
this.port = port;
}
public HSMService getHSMService() {
return hsmService;
}
public void setHSMService(HSMService hsmService) {
this.hsmService= hsmService;
}
}
このクラスはorg.springframework.boot.actuate.endpoint.Endpoint
HSMEndpoint.java
クラスによって使用されています
HSMEndpoint.javaの抜粋:
@Override
public String invoke() {
HSMHealthIndicator h = new HSMHealthIndicator();
h.setHost(this.getHost());
h.setPort(this.getPort());
Status s = h.health().getStatus();
return "Status of the HSM : " + s.getCode();
}
は最後HSMEndpoint.javaクラスHSMEndpointConfiguration.javaによって構成されている:
@Configuration
public class HSMEndpointConfiguration{
@Bean
//The value of hsm.host and the value of hsm.port are in application.properties
public Endpoint getHSMEndpoint(@Value("${hsm.host}")String host, @Value("${hsm.port}")int port) {
return new HSMEndpoint(host, port);
}
}
ルートエラーがある:org.springframework.beans.factory.NoSuchBeanDefinitionException:によって引き起こさ
。依存関係のある適格なBeanは見つかりません[com.app.ddd.services.HSMService]:autowire候補と見なされる少なくとも1つのbeanが必要です。依存注釈:
ここで、タイプHSMServiceのBeanはありますか。 – Jobin
HSMServiceのコードをパッケージ名 – developer
と共にパッケージcom.app.ddd.services – Denis