2017-07-12 2 views
4

Von meinem Clojure-Projekt Ich erschaffe Glas mit Lein Uberjar, das Glas funktioniert gut lokal.Keine Implementierung von Methodenfehler beim Ausführen von lein-rpm-Task

Dann erstelle ich eine rpm über lein-rpm Aufgabe und dann bin ich die Bereitstellung der rpm auf dem Server.

Nach der Bereitstellung von rpm, versuche ich es mit java -jar ausführen, aber der Dienst beginnt folgende Ausnahme zu geben.

java.lang.IllegalArgumentException: No implementation of method: :route-matches of protocol: #'clout.core/Route found for class: clout.core.CompiledRoute 
     at clojure.core$_cache_protocol_fn.invokeStatic(core_deftype.clj:566) ~[na:na] 
     at clojure.core$_cache_protocol_fn.invoke(core_deftype.clj:560) ~[na:na] 
     at clout.core$eval5959$fn__5960$G__5950__5967.invoke(core.clj:39) ~[na:na] 
     at compojure.core$route_matches.invokeStatic(core.clj:46) ~[na:na] 
     at compojure.core$route_matches.invoke(core.clj:44) ~[na:na] 
     at compojure.core$route_request.invokeStatic(core.clj:49) ~[na:na] 
     at compojure.core$route_request.invoke(core.clj:48) ~[na:na] 
     at compojure.core$wrap_route_matches$fn__6362.invoke(core.clj:145) ~[na:na] 
     at compojure.core$wrap_routes$fn__6478.invoke(core.clj:348) ~[na:na] 
     at compojure.api.routes.Route.invoke(routes.clj:74) [na:na] 
     at compojure.api.core$handle$fn__17370.invoke(core.clj:8) ~[na:na] 
     at clojure.core$some.invokeStatic(core.clj:2592) [na:na] 
     at clojure.core$some.invoke(core.clj:2583) [na:na] 
     at compojure.api.core$handle.invokeStatic(core.clj:8) ~[na:na] 
     at compojure.api.core$handle.invoke(core.clj:7) ~[na:na] 
     at clojure.core$partial$fn__533.invoke(core.clj:2515) ~[na:na] 
     at compojure.api.routes.Route.invoke(routes.clj:74) [na:na] 
     at ring.swagger.middleware$wrap_swagger_data$fn__14534.invoke(middleware.clj:33) ~[na:na] 
     at ring.middleware.http_response$wrap_http_response$fn__11869.invoke(http_response.clj:19) ~[na:na] 
     at ring.swagger.middleware$wrap_swagger_data$fn__14534.invoke(middleware.clj:33) ~[na:na] 
     at compojure.api.middleware$wrap_options$fn__15814.invoke(middleware.clj:74) [na:na] 
     at ring.middleware.format_params$wrap_format_params$fn__10747.invoke(format_params.clj:119) ~[na:na] 
     at ring.middleware.format_params$wrap_format_params$fn__10747.invoke(format_params.clj:119) ~[na:na] 
     at ring.middleware.format_params$wrap_format_params$fn__10747.invoke(format_params.clj:119) ~[na:na] 
     at ring.middleware.format_params$wrap_format_params$fn__10747.invoke(format_params.clj:119) ~[na:na] 
     at ring.middleware.format_params$wrap_format_params$fn__10747.invoke(format_params.clj:119) ~[na:na] 
     at compojure.api.middleware$wrap_exceptions$fn__15804.invoke(middleware.clj:43) ~[na:na] 
     at ring.middleware.format_response$wrap_format_response$fn__11767.invoke(format_response.clj:183) [na:na] 
     at ring.middleware.keyword_params$wrap_keyword_params$fn__11907.invoke(keyword_params.clj:36) [na:na] 
     at ring.middleware.nested_params$wrap_nested_params$fn__11955.invoke(nested_params.clj:89) [na:na] 
     at ring.middleware.params$wrap_params$fn__12029.invoke(params.clj:67) [na:na] 
     at compojure.api.middleware$wrap_options$fn__15814.invoke(middleware.clj:74) [na:na] 
     at compojure.api.routes.Route.invoke(routes.clj:74) [na:na] 
     at clojure.lang.Var.invoke(Var.java:379) [supply-planning-api-service-standalone.jar:na] 
     at compojure.core$routing$fn__6377.invoke(core.clj:185) [na:na] 
     at clojure.core$some.invokeStatic(core.clj:2592) [na:na] 
     at clojure.core$some.invoke(core.clj:2583) [na:na] 
     at compojure.core$routing.invokeStatic(core.clj:185) [na:na] 
     at compojure.core$routing.doInvoke(core.clj:182) [na:na] 

Lib und Umwelt Details

lein-rpm - 0.0.5

OS - CentOS Linux 7

Was bin ich?

Edit:

Per @ Mrinal Kommentar ich die Glasgröße bauen vor und nach der Umdrehungen pro Minute geprüft. Wenn wir das Glas von der Umdrehungszahl extrahieren, war die Größe wenig kleiner als das Original.

Antwort

4

Ich hatte genau dasselbe Problem. Dauerte zwei Tage zu lösen.

Wenn Sie also die von lein uberjar und der lein rpm-Aufgabe generierte Glasgröße sehen, werden sie anders aussehen. Der Schuldige ist brp-java-repack-jars, der das Glas während der RPM-Builds packt und neu verpackt.

/usr/lib/rpm/redhat/brp-compress 
/usr/lib/rpm/redhat/brp-strip /usr/bin/strip 
/usr/lib/rpm/redhat/brp-strip-comment-note /usr/bin/strip /usr/bin/objdump 
/usr/lib/rpm/redhat/brp-strip-static-archive /usr/bin/strip 
/usr/lib/rpm/brp-python-bytecompile /usr/bin/python 1 
/usr/lib/rpm/redhat/brp-python-hardlink 
/usr/lib/rpm/redhat/brp-java-repack-jars 

Der letzte ist das Problem, wie es mit dem Glas durch lein uberjar erstellt vermasselt: Um die Option zu sehen Sie müssen rpm -E '%{__os_install_post}' auf dem Terminal starten, werden Sie so etwas wie sehen. Um das Problem zu beheben, müssen wir die Option __os_install_post während der RPM-Erstellung deaktivieren. Diese blog erklärt es sehr schön.

Was wir getan haben, war, entfernt den RPM-Schritt und kopieren Sie das .jar-Paket erstellt von Lein Uberjar Schritt direkt auf den Server und führen Sie es aus. Aber wir haben diese andere Option ausprobiert und es funktioniert auch.

Hoffe, das hilft. Ping in Kommentare für irgendwelche Zweifel.

+1

Danke für die sofortige Antwort. Sie sind richtig, brp-java-repack-jars verursacht nur das Problem, also haben wir die RPM-Option für das Paket entfernt. – SANN3

+0

Ich bin froh, dass ich helfen konnte. –

Verwandte Themen