2017-02-03 4 views
3

Я начал новый проект реагента с lein new reagent sample-proj (вы можете использовать последнее, чтобы воспроизвести проблему). Через некоторое время я добавил клиентскую зависимость для datomic (мне пришлось исключить jetty-http, так как он противоречил ring-server).Шаблон Reagent с Datomic зависимостью приводит к неправильному поведению в leiningen REPL

[com.datomic/clj-client "0.8.606" 
    :exclusions [org.eclipse.jetty/jetty-http] 
] 

Тогда я понял, что в lein repl вы не можете запустить сервер больше с (start-server). На localhost:3000 вы просто получите ERR_SOCKET_NOT_CONNECTED. В консоли нет сообщений.

Даже странно, что если я начинаю nREPL из Cursive, все работает отлично.

Кто-нибудь знает, что здесь происходит. Я потерялся с этим, так как в курсивном REPL figwhweel's app.js не найден. Мой project.clj: https://gist.github.com/frickm/4cfdba9ae812a909dfe8d5719c94718e.

заранее спасибо
Фрике

+0

Нашел из сдвига удачи: получаю сокет отказался соединение при попытке подключения к nREPL начал внутри ботинка-CLJ стручка, но работал, когда выполнял «boot repl» и запускал вещи вручную. –

ответ

2

Возможно, это еще один конфликт зависимость? Я могу воспроизвести проблему с описанными вами шагами.

Вы можете попробовать дополнительные исключения (как показано на Maven repo):

[com.datomic/clj-client "0.8.606" :exclusions 
    [org.eclipse.jetty/jetty-http org.eclipse.jetty/jetty-util 
    org.eclipse.jetty/jetty-client]] 
+0

Я думаю, это странно, что это сработало. Когда вы исключаете зависимость от клиента, он еще не загружен. Но, не исключая его, вы получаете ошибку класса-загрузки для org.eclipse.jetty.util.thread.ExecutionStrategy $ Producer. Во всяком случае, большое спасибо, хотя я сейчас использую библиотеку peer-ов и поменяю позже. – fricke

+0

Может кто-нибудь объяснить, как возможно, чтобы библиотека, подобная Datomic Client LIbrary, незаметно переопределяла работу сокетов/nREPL без предупреждения? –