私は次の問題があります。セッションリストから始まるCassandraテンプレートのリストを作成したいと思います。しかし、問題は、実行時にセッションojectがnullであることがわかります。 私が使用するコードは以下の通りです:Cassandraセッションが実行時にnullになる
import java.util.ArrayList;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.data.cassandra.config.CassandraClusterFactoryBean;
import org.springframework.data.cassandra.config.CassandraSessionFactoryBean;
import org.springframework.data.cassandra.config.SchemaAction;
import org.springframework.data.cassandra.convert.CassandraConverter;
import org.springframework.data.cassandra.core.CassandraOperations;
import org.springframework.data.cassandra.core.CassandraTemplate;
import org.springframework.stereotype.Component;
@Component
public class KeyspaceSession {
@Autowired
@Qualifier("cluster")
CassandraClusterFactoryBean cluster;
@Autowired
@Qualifier("converter")
CassandraConverter converter;
public List<CassandraOperations> getTemplates(){
List<CassandraOperations> listOfTemplates = new ArrayList<>();
for(CassandraKeyspaces keyspace : CassandraKeyspaces.values()){
CassandraSessionFactoryBean session = new CassandraSessionFactoryBean();
session.setCluster(cluster.getObject());
session.setKeyspaceName(keyspace.getKeyspace());
session.setConverter(converter);
session.setSchemaAction(SchemaAction.CREATE_IF_NOT_EXISTS);
CassandraOperations op = new CassandraTemplate(session.getObject());
listOfTemplates.add(op);
}
return listOfTemplates;
}
}
私は、サーバーから次のような答えを得る:
{
"timestamp": 1505204641753,
"status": 500,
"error": "Internal Server Error",
"exception": "java.lang.IllegalArgumentException",
"message": "Session must not be null",
"path": "/getUser/10/pl"
}
私は、クラスタおよびコンバータを注入しています、なぜこれがある、ということない設定クラスを持っている: – Carolik
アイデアは私がしたいということですテンプレートとセッションをdinamically生成し、それらを循環させ、必要条件に応じて適切なものを使用します。これまでは、Configurationクラスで複数のテンプレートを作成してセッションを増やすことしかできませんでしたが、プロパティファイルからキースペースを読み込んで、セッションと対応するテンプレートをdinamically生成します。 – Carolik
これで分かりました。しかし、これは私の知識を超えて、誰かがあなたを助けることを願っています。 –