Ошибка при внедрении конструктора, com.datastax.driver.core.exceptions.NoHostAvailableException - PullRequest
0 голосов
/ 27 декабря 2018

Я использую Docker для Windows 10. Я пытался подключиться к своему локальному хосту, но выдает ошибку.Я использовал команду> docker start cassandra-ce ..., которая успешна, но когда я запускаю команду 'sbt run' и ввел свой localhost: 9000 в браузере, это выдает ошибку:

Uncaught error from thread [application-akka.actor.default-dispatcher-4]: null, s
hutting down JVM since 'akka.jvm-exit-on-fatal-error' is enabled for ActorSystem[
application]
java.lang.ExceptionInInitializerError
        at com.consultengine.services.InviteService.getAllInviteReceived(InviteSe
rvice.scala:54)
        at com.consultengine.controllers.v1.InviteController.$anonfun$getAllInvit
eReceived$2(InviteController.scala:130)
        at scala.concurrent.Future$.$anonfun$apply$1(Future.scala:655)
        at scala.util.Success.$anonfun$map$1(Try.scala:251)
        at scala.util.Success.map(Try.scala:209)
        at scala.concurrent.Future.$anonfun$map$1(Future.scala:289)
        at scala.concurrent.impl.Promise.liftedTree1$1(Promise.scala:29)
        at scala.concurrent.impl.Promise.$anonfun$transform$1(Promise.scala:29)
        at scala.concurrent.impl.CallbackRunnable.run(Promise.scala:60)
        at akka.dispatch.BatchingExecutor$AbstractBatch.processBatch(BatchingExec
utor.scala:55)
        at akka.dispatch.BatchingExecutor$BlockableBatch.$anonfun$run$1(BatchingE
xecutor.scala:91)
        at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:12)

        at scala.concurrent.BlockContext$.withBlockContext(BlockContext.scala:81)

        at akka.dispatch.BatchingExecutor$BlockableBatch.run(BatchingExecutor.sca
la:91)
        at akka.dispatch.TaskInvocation.run(AbstractDispatcher.scala:40)
        at akka.dispatch.ForkJoinExecutorConfigurator$AkkaForkJoinTask.exec(ForkJ
oinExecutorConfigurator.scala:43)
        at akka.dispatch.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)
        at akka.dispatch.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.jav
a:1339)
        at akka.dispatch.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)
        at akka.dispatch.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.j
ava:107)
Caused by: com.impetus.kundera.configure.schema.SchemaGenerationException: Error
while opening socket, Caused by: .
        at com.impetus.client.cassandra.schemamanager.CassandraSchemaManager.init
iateClient(CassandraSchemaManager.java:718)
        at com.impetus.kundera.configure.schema.api.AbstractSchemaManager.exportS
chema(AbstractSchemaManager.java:112)
        at com.impetus.client.cassandra.schemamanager.CassandraSchemaManager.expo
rtSchema(CassandraSchemaManager.java:166)
        at com.impetus.kundera.configure.SchemaConfiguration.configure(SchemaConf
iguration.java:191)
        at com.impetus.kundera.configure.ClientMetadataBuilder.buildClientFactory
Metadata(ClientMetadataBuilder.java:48)
        at com.impetus.kundera.persistence.EntityManagerFactoryImpl.configureClie
ntFactories(EntityManagerFactoryImpl.java:408)
        at com.impetus.kundera.persistence.EntityManagerFactoryImpl.configure(Ent
ityManagerFactoryImpl.java:161)
        at com.impetus.kundera.persistence.EntityManagerFactoryImpl.<init>(Entity
ManagerFactoryImpl.java:135)
        at com.impetus.kundera.KunderaPersistence.createEntityManagerFactory(Kund
eraPersistence.java:85)
        at javax.persistence.Persistence.createEntityManagerFactory(Persistence.j
ava:79)
        at com.consultengine.daos.InviteDAOImpl$.<init>(InviteDAO.scala:29)
        at com.consultengine.daos.InviteDAOImpl$.<clinit>(InviteDAO.scala)
        ... 20 more
Caused by: org.apache.thrift.transport.TTransportException: java.net.ConnectExcep
tion: Connection refused: connect
        at org.apache.thrift.transport.TSocket.open(TSocket.java:187)
        at com.impetus.client.cassandra.schemamanager.CassandraSchemaManager.init
iateClient(CassandraSchemaManager.java:695)
        ... 31 more
Caused by: java.net.ConnectException: Connection refused: connect
        at java.net.DualStackPlainSocketImpl.connect0(Native Method)
        at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketIm
pl.java:79)
        at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.jav
a:350)
        at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketI
mpl.java:206)
        at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:
188)
        at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
        at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
        at java.net.Socket.connect(Socket.java:589)
        at org.apache.thrift.transport.TSocket.open(TSocket.java:182)
        ... 32 more
[error] a.a.ActorSystemImpl - Uncaught error from thread [application-akka.actor.
default-dispatcher-4]: null, shutting down JVM since 'akka.jvm-exit-on-fatal-erro
r' is enabled for ActorSystem[application]
java.lang.ExceptionInInitializerError: null
        at com.consultengine.services.InviteService.getAllInviteReceived(InviteSe
rvice.scala:54)
        at com.consultengine.controllers.v1.InviteController.$anonfun$getAllInvit
eReceived$2(InviteController.scala:130)
        at scala.concurrent.Future$.$anonfun$apply$1(Future.scala:655)
        at scala.util.Success.$anonfun$map$1(Try.scala:251)
        at scala.util.Success.map(Try.scala:209)
        at scala.concurrent.Future.$anonfun$map$1(Future.scala:289)
        at scala.concurrent.impl.Promise.liftedTree1$1(Promise.scala:29)
        at scala.concurrent.impl.Promise.$anonfun$transform$1(Promise.scala:29)
        at scala.concurrent.impl.CallbackRunnable.run(Promise.scala:60)
        at akka.dispatch.BatchingExecutor$AbstractBatch.processBatch(BatchingExec
utor.scala:55)
Caused by: com.impetus.kundera.configure.schema.SchemaGenerationException: Error
while opening socket, Caused by: .
        at com.impetus.client.cassandra.schemamanager.CassandraSchemaManager.init
iateClient(CassandraSchemaManager.java:718)
        at com.impetus.kundera.configure.schema.api.AbstractSchemaManager.exportS
chema(AbstractSchemaManager.java:112)
        at com.impetus.client.cassandra.schemamanager.CassandraSchemaManager.expo
rtSchema(CassandraSchemaManager.java:166)
        at com.impetus.kundera.configure.SchemaConfiguration.configure(SchemaConf
iguration.java:191)
        at com.impetus.kundera.configure.ClientMetadataBuilder.buildClientFactory
Metadata(ClientMetadataBuilder.java:48)
        at com.impetus.kundera.persistence.EntityManagerFactoryImpl.configureClie
ntFactories(EntityManagerFactoryImpl.java:408)
        at com.impetus.kundera.persistence.EntityManagerFactoryImpl.configure(Ent
ityManagerFactoryImpl.java:161)
        at com.impetus.kundera.persistence.EntityManagerFactoryImpl.<init>(Entity
ManagerFactoryImpl.java:135)
        at com.impetus.kundera.KunderaPersistence.createEntityManagerFactory(Kund
eraPersistence.java:85)
        at javax.persistence.Persistence.createEntityManagerFactory(Persistence.j
ava:79)
Caused by: org.apache.thrift.transport.TTransportException: java.net.ConnectExcep
tion: Connection refused: connect
        at org.apache.thrift.transport.TSocket.open(TSocket.java:187)
        at com.impetus.client.cassandra.schemamanager.CassandraSchemaManager.init
iateClient(CassandraSchemaManager.java:695)
        at com.impetus.kundera.configure.schema.api.AbstractSchemaManager.exportS
chema(AbstractSchemaManager.java:112)
        at com.impetus.client.cassandra.schemamanager.CassandraSchemaManager.expo
rtSchema(CassandraSchemaManager.java:166)
        at com.impetus.kundera.configure.SchemaConfiguration.configure(SchemaConf
iguration.java:191)
        at com.impetus.kundera.configure.ClientMetadataBuilder.buildClientFactory
Metadata(ClientMetadataBuilder.java:48)
        at com.impetus.kundera.persistence.EntityManagerFactoryImpl.configureClie
ntFactories(EntityManagerFactoryImpl.java:408)
        at com.impetus.kundera.persistence.EntityManagerFactoryImpl.configure(Ent
ityManagerFactoryImpl.java:161)
        at com.impetus.kundera.persistence.EntityManagerFactoryImpl.<init>(Entity
ManagerFactoryImpl.java:135)
        at com.impetus.kundera.KunderaPersistence.createEntityManagerFactory(Kund
eraPersistence.java:85)
Caused by: java.net.ConnectException: Connection refused: connect
        at java.net.DualStackPlainSocketImpl.connect0(Native Method)
        at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketIm
pl.java:79)
        at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.jav
a:350)
        at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketI
mpl.java:206)
        at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:
188)
        at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
        at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
        at java.net.Socket.connect(Socket.java:589)
        at org.apache.thrift.transport.TSocket.open(TSocket.java:182)
        at com.impetus.client.cassandra.schemamanager.CassandraSchemaManager.init
iateClient(CassandraSchemaManager.java:695)

Я также изменил свойapplication.conf

application.baseUrl="http://localhost:9000"
ce.webserver.url="http://localhost:8100"
ce.cassandra.host="localhost"
version=33

и мой файл persistance.xml для localhost и порта 9160:

<properties>
            <property name="kundera.nodes" value="localhost" />
            <property name="kundera.port" value="9160" />
            <property name="kundera.keyspace" value="cedb" />
            <property name="kundera.dialect" value="cassandra" />
            <property name="kundera.ddl.auto.prepare" value="update" />
            <property name="kundera.client.lookup.class" value="com.impetus.client.cassandra.thrift.ThriftClientFactory" />
        </properties>

1 Ответ

0 голосов
/ 27 декабря 2018

Это потому, что вы не сделали отображение портов при запуске Cassandra в Docker.Ваш Cassandra виден только в этой конкретной сети докеров.Используйте следующую команду, чтобы запустить Cassandra с сопоставлением портов.

docker run -p 9042:9042 cassandra

Тогда вы увидите 0.0.0.0:9042->9042/tcp in docker ps

Для второй ошибки, если вы не хотите автоматически управлять схемой, измените порт <property name="kundera.port" value="9160" /> на 9042 и удалите<property name="kundera.ddl.auto.prepare" value="update" />

Если вы хотите автоматически управлять схемой, измените порт <property name="kundera.port" value="9160" /> на 9042 и используйте следующую команду, чтобы запустить Cassandra в докере, запускающем сервер управления Cassandra и сопоставление портов с портом управления.

docker run -p 9042:9042 -p 9160:9160 -e CASSANDRA_START_RPC=true cassandra
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...