2013-02-28 15 views
11

Próbowałem znaleźć sposób na wdrożenie aplikacji Dropwizard w Google App Engine, ale nie znalazłem dotąd żadnych informacji.Wdrażanie Dropwizard w Google AppEngine

Sądząc po tym question (i answer) Myślę, że to może nie być możliwe. Chciałbym być tego pewien, a jeśli to działa, chciałbym się dowiedzieć, jak to zrobić.

Istnieje widżet dropwizard o nazwie warwizard, który najwyraźniej pozwala tworzyć pliki wojny z kodu Dropwizarda, ale nie został dotknięty przez ponad 6 miesięcy, co prawdopodobnie utrudni pracę z użyciem dokumentów Dropwizard.

+0

myślę, że to jest możliwe, pod warunkiem, że tylko ci GAE przyjazne zajęcia są zaangażowane. – xybrek

+0

Nadal próbuję budować warwizard, i muszę to zweryfikować, ale znowu nie widzę niczego, co by to nie uniemożliwiło, patrząc na kod, który większość zmian będzie na "molo" na rdzeniu, i także db, który należy zmodyfikować dla datastore GAE – xybrek

Odpowiedz

11

Dropwizard to po prostu Jersey + Jackson + Jetty pięknie połączone. Jetty i App Engine nie będą się ze sobą dogadać (to jest App Engine is already running Jetty, więc nie chce, aby aplikacja dostarczała własne).

Jesteś prawdopodobnie najlepiej wyłączyć za pomocą Jersey i Jackson bez Dropwizard wiążąc je ze sobą: http://blog.iparissa.com/googles-app-engine-java/google-app-engine-jax-rs-jersey/ & http://www.cowtowncoder.com/blog/archives/2009/11/entry_338.html

7

Można jednak uruchomić Dropwizard Google Compute Engine. Zasadniczo są to tylko maszyny wirtualne firmy linux dostarczane przez Google, w razie potrzeby dostęp do ich interfejsów API.

ja spędziłem aby moje Dropwizard instancja działa w następujący sposób na GCE:

Instalacja Java

sudo apt-get install java7-runtime-headless 

Otwarte porty zapory:

gcutil addfirewall rest --description="http" --allowed="tcp:8080 
gcutil addfirewall admin --description="admin" --allowed="tcp:8081" 

skopiować plik do GCE

gcutil --project={project-id} push {instance-name} {local-file} {remote-target-path} 

uruchomić aplikację

java -jar your-app.jar server your-config.yml 

EDIT: istnieje również inna alternatywa nazywa wiztowar https://github.com/twilio/wiztowar który obsługuje tylko DW 0.6.2.

0

Próbuję rozwiązać ten problem przez ostatnie dwa miesiące. Oto moje odkrycia:

1- Tak, możesz wdrożyć Dropwizard jako plik WAR. Trzeba użyć kilka hacki jak Wizard in a box lub WizToWar

2- Nie! Nie można wdrożyć tego pliku WAR w standardowym środowisku AppEngine.

Dlaczego? Głównym problemem jest to, że AppEngine używa servlet-api v2.5 (który ma więcej niż 10 lat!) I nie ma planu na uaktualnienie do servlet-api v3 lub wyższej. Z drugiej strony Dropwizard wymaga apletu-api v3 lub wyższego.

ALE czekaj!Nie ma innej opcji

można wdrożyć Dropwizard na App Engine Flexible Environment

App Engine Flex jest jeszcze w fazie beta, ale słyszałem to będzie dostępne do użytku publicznego w Q1 2017. Jeśli chcesz go używać teraz , musisz poprosić o włączenie dla ciebie.

Jak wdrożyć w App Engine Flex?

-> Mam umieścić wszystkie kroki robić, że w blogu tutaj: Deploying Dropwizard on App Engine Flex

+0

Nie musisz pytać o korzystanie z flex env już dziś, jest on dostępny dla publiczności (jako wersja beta, prawda). AFAIK wystarczy wypełnić formularz, jeśli chcesz go użyć w domenie niestandardowej (https://cloud.google.com/appengine/docs/flexible/python/upgrading) –

+0

To świetnie! Dziękujemy za aktualizację: +1: –

Powiązane problemy