2014-05-17 3 views
0

Clojure에서 웹 응용 프로그램을 작성하는 데 필요한 여러 자습서를 따르려고했지만 동일한 문제가 계속 발생합니다. 가장 간단한 경우를 이용하려면,이 튜토리얼 다음 시도 : http://drtom.ch/posts/2012-12-10/An_Introduction_to_Webprogramming_in_Clojure_-_Ring_and_Middleware/Clojure 링 서버가 slf4j에 의존하지 않는 것 같습니다.

내가 서버를 시작하는 단계에 도착하면 (실행 - 부두 핸들러 {: 포트 8383}), 나는 다음과 같은 오류 얻을 :

NoSuchMethodError를 org.slf4j.helpers.MessageFormatter.arrayFormat (Ljava/lang/String; [Ljava/lang/Object]) Lorg/slf4j/helpers/FormattingTuple; org.eclipse.jetty.util.log.JettyAwareLogger.log (JettyAwareLogger.java:613)

lien에게 클래스 경로를 보여줄 것을 요청했는데, 물론 org.slf4j.helpers.MessageFormatter가 그곳에 없습니다. .

저는 거의 모든 링 기반 웹 튜토리얼에서 이걸 시험해 보았습니다. 그래서 나는 이상한 구성을 가지고있었습니다. (나는 업데이트하고 다시 설치했는데, ~/.m2를 다시 불었습니다. 등), 또는 무언가가 클래스 패스를 만들기 위해 함께 사용되는 수많은 의존성에서 변경되었습니다.

여기에 어떤 아이디어가 있습니까?

편집

I 추가 정보가있어 - 내가, 버추얼 박스에서 VM을 생성 오픈 JDK 및 lein를 설치하고,이 프로젝트를 만들었습니다. 괜찮 았어. 호스트와 공유하는 디렉토리에이 디렉토리를 만들었으므로 호스트에서 동일한 디렉토리에 "lein 링 서버"를 설치하려고 시도했지만 위의 오류로 인해 실패했습니다.

그래서 저는 VM과 호스트 모두에서 "클래스 패스"를 수행하고 결과를 비교했습니다. 그것들은 동일합니다. 또한 같은 JVM (OpenJDK 64 비트 빌드 24.51-b03)의 동일한 빌드를 실행하고 있는지 확인했습니다.

그렇다면 동일한 클래스 경로를 사용하여 동일한 JVM을 실행중인 경우 남은 것은 무엇입니까?

+0

를 튜토리얼은 매우 오래된 것이다. Clojure의 최신 버전 (예 : 1.5.1 이상)과 현재 버전의 링 (예 : 1.2.2)에서이 기능을 사용해 보셨습니까? –

+0

나는 ring, luminus, compojure, noir를 위해 6 가지 다른 튜토리얼을 시도했다 ... 나는 계속 같은 문제에 부딪쳤다. – scottb

+0

project.clj 파일을 포함하여 작업중인 종속성을 표시 할 수 있습니까? – GregA100k

답변

0

다음과 같은 종속성을 업데이트 해 볼 수 있습니까? 위 구성으로 lein 링 플러그인을 사용하는 경우

(defproject .......... 
:dependencies [[org.clojure/clojure "1.5.1"] 
     [ring/ring-core "1.1.8"] 
     [ring/ring-jetty-adapter "1.1.8"] 
     [compojure "1.1.3"]] 
:main quickstart.core 
:min-lein-version "2.0.0" 
:plugins [[lein-ring "0.8.10"]] 
:ring {:handler quickstart.core/handler}) 

, 당신은 같은 응용 프로그램을 시작할 수 있습니다

lein ring server 
+0

아니요. 같은 에러 - org.slf4j.helpers.MessageFormatter.arrayFormat의 NoSuchMethodError. – scottb

+0

deps를 변경 한 후에 "lein clean"을 시도 했습니까? 또한 "lein new"로 작성된 빈 템플릿에서 시작하는 것이 좋습니다. "lein deps : tree"를 사용하여 프로젝트의 종속성을 확인하고 클래스 경로에있는 slf4j 버전을 확인하십시오. – lorthos

+0

깨끗한 공간을 사용해 보았습니다. 빈 템플릿에서도 시도했습니다. 같은 결과. – scottb