SORU
1 NİSAN 2011, Cuma


Nasıl Apache Clojure Web Uygulamaları Entegre etmek İçin

Not

Verilen bu OPERASYON yazılmış yaklaşık iki yıl önce, sormak yerine aynı soruyu tekrar, ben merak ediyorum eğer adım adım talimatlar var, bu yüzden ben entegre Noir ya da diğer Clojure web uygulamasına Apaçi olup olmadığı Jetty, Tomcat, ya da başka bir şey. Benzer talimatları Django için var, ve Python halka bir çerçeve yerine bir motor olarak Django bu durumda çalıştırılan anladım, bir şeyler Clojure web uygulamaları ile daha karmaşıktır.

Not End

Derin Clojure aşığım, ve Compojure düzgün bir web çerçevesi gibi görünüyor.

Ama normal bir uygulama bir SAVAŞ olarak Tomcat gibi bir sunucu üzerinde uygulama dağıtmak istediğim zaman ayrı düştü. Aslında statik dosyalar ve hem yerel hem de İskele üzerinde çalışmak ve stok işleyicileri bağlam kök önüne her yerde el vardı ve yoktu çünkü Tomcat olacağını kaynakları için özel Zil işleyicileri yazmak zorundaydı.

Bu kod yazmak için iki İskele ve Tomcat üzerinde çalışır basit, web uygulama akla oluşturmak zorunda olduğum olumsuz şaşırıyorum. Bunun için sadece üç olası açıklama var:

  1. Kimse bir şey için Clojure/Compojure İskele ile yerel kalkınma dışında kullanır, yani üretim
  2. Herkes bağlam kök kişiler node.js uygulamalar ile olduğu Gibi) olmadan özel bir İskele üzerinde Clojure/Compojure uygulamalar dağıtır
  3. Farkında değildim karşılaştığım sorunları aşmak için çok basit bir yolu var

Bunlardan hangisi sizce de öyle mi? Yoksa başka bir şey mi?

Düzenleme:

Lütfen savaş dosyası oluşturma ne demek istediğimi düşünmeye gerek yok Maven ile/Leiningen bir Ve olduğunu unutmayın. Tomcat, temel malzeme ile Compojure çalışma dosyası hizmet ve bağlam kök farkındalık statik böyle yapmak için çok fazla kod yazmak zorunda olduğumu merak ediyorumgerekirkutunun dışında çalışır.

CEVAP
1 NİSAN 2011, Cuma


Aşağıdaki birleşimi bu oldukça ağrısız yapmak için kullanıyorum:

Cake (dahil. komut dağıtmak)

Pasta webprojects Lau Jensen tarafından geliştirilen şablon.

Vagrant Şef, Kukla dayanan ((İsmen) Ruby VM yönetim aracı)

VPS'İN (Slicehost)

Anahtar parçası haline Lau webdev şablondur. Webdev klasörü ~/.cake/templates yerleştirilmelidir. Yeni bir proje oluşturmak için kullanın:

cake new webdev *projectname*

Pls şablon olarak log4j ve Java mail değilse dışlanan gerek içerdiğini unutmayın. Daha Enlive ve Bıyık kullanarak ama/Hiccup Compojure için de zehir ise önemsiz olduğunu değiştirdiğiniz varsayar.

Şablonu geliştirme (sadece server eval.iskeleden uygulama servis halleder clj) ve Tomcat altında çalışan bir savaş olarak çalışıyor. Yolları eğer ROOT olarak sunucuya dağıtılmış ise aynı kalır.Tomcat altında savaş. Tüm statik dosyalar kaynaklar dizin bulunmalıdır. İskelesi var, onları (Halka dosya katman sayesinde) hizmet verecek. Üretimde bu web uygulaması kök dizinine taşındı ve oradan hizmet Tomcat(web.xml ilgilenir).

Devbox, folde Vagrantfile ve yemek kitapları gerekli bir Tomcat yüklü Sanal bir VM oluşturmak için içerir. Kek dağıtmak için kullanıyorum .savaş /home/vagrant dir (bu dev proje kapsamında tanımından kontrol edilir.dosya clj). .war dosyasını ROOT olarak Tomcat ... ... web uygulamalarını dir (/var/lib/tomcat6/webapps) symlinked.savaş. Daha fazla Serseri lütfen kullanma hakkında bilgi için Serseri site bkz.

gist Bu proje uyarlamak için nasıl bir örnek gösterir.clj pasta dağıtmak komutu kullanın. Örneğin, iki bağlamlarda dev @@kullanarak dağıtabilirsiniz: prod oluşturur

cake deploy @dev / cake delpoy @prod

Webdev Pasta şablonu ve zip Bu Serseri dosyaları topladım.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Carlos Delgado

    Carlos Delga

    21 HAZİRAN 2011
  • FD2097

    FD2097

    21 HAZİRAN 2009
  • kylelandry

    kylelandry

    9 AĞUSTOS 2007