Proč Spring používá embedded Tomcat/Jetty

anonym

Proč Spring používá embedded Tomcat/Jetty
« kdy: 21. 07. 2018, 21:07:20 »
Co bylo špatného na tom, mít Spring deploynutý na externím Tomcatovi, že zabudovali server dovnitř?

Musel jsem si Spring Boot Starter předělat na externí Tomcat, protože potřebuju na vzdálený server deployovat svoji aplikaci. Jenže zabalené Jarko má 40MB a trvá mi to desítky sekund než ho na server překopíruju. Když udělám chybu v kódu, čeká mě celé kolečko znova.

(Ne, nezabiju kvůli tomu týden abych postavil CI kvůli takové prkotině)

Proto jsem se rozhodl pro starou dobrou variantu, že budu deployovat na externí Tomcat a pro vzdálený server budu používat Remote deploy v IDEčku (na externí remote Tomcat). Jako bonus je zde možnost, že budu moct vlastně vyvíjet přímo na tom serveru.

Tak jsem si předělal projekt na externí Tomcat a začaly problémy, se kterýma jsem zabil celou sobotu. Do této chvíle jsem v podstatě nebyl schopný rozchodit "Reload classes and resources" tak, aby si je Spring znova načetl (používám zatím lokálně spuštěný Tomcat). Takže když upravím HTML, tak prostě musím reloadnout celou aplikaci, což trvá dost dlouho.

A tak tady sedím nad zabitou sobotou, kterou jsou promarnil rozbitým/překomplikovaným systémem a říkám si... No raději nic, nebo budu označen za trola. Prostě jsem si jen udělal zářez na futrech po kolikáté mě už ten Spring enviroment v životě zradil.


kraxna

Re:Proč Spring používá embedded Tomcat/Jetty
« Odpověď #1 kdy: 21. 07. 2018, 21:38:31 »
A proc to proste nevyvines lokalne a pak nenasadis jednou?

kraxna

Re:Proč Spring používá embedded Tomcat/Jetty
« Odpověď #2 kdy: 21. 07. 2018, 21:39:38 »
A jinak pokud chces deployovat na remote server, tak je celkem blbost pouzivat Spring Boot, muzes rovnou vyvijet WAR projekt a nahrat jako soubor na Tomcat.

springman

Re:Proč Spring používá embedded Tomcat/Jetty
« Odpověď #3 kdy: 21. 07. 2018, 22:30:59 »
Tohle neni prostředí pro blbce. Pokud nečteš dokumentaci a myslíš, že to funguje podle tvých hloupých představ, tak to máš smůlu. I kdybys tomu dal roky podobného zkoušení, tak ti to nebude fungovat. Zkus Python nebo Javascript, tam podobní blbci uspějí a ještě si to chválí.

gll

  • ****
  • 429
    • Zobrazit profil
    • E-mail


springman

Re:Proč Spring používá embedded Tomcat/Jetty
« Odpověď #5 kdy: 21. 07. 2018, 22:48:12 »
Vidím, že i tam se mu dařilo podobně ;D

Re:Proč Spring používá embedded Tomcat/Jetty
« Odpověď #6 kdy: 21. 07. 2018, 23:25:59 »
Na Springu se vůbec nic nezměnilo, vytvořit WAR a nadeployovat ho na server můžete pořád stejně, jako dříve. Akorát se Spring Bootem máte navíc možnost používat i embedded server, což se hodí hlavně při vývoji, případně pro jednoduchou aplikaci, kde se nechcete starat o aplikační server.

kraxna

Re:Proč Spring používá embedded Tomcat/Jetty
« Odpověď #7 kdy: 21. 07. 2018, 23:47:50 »
Na Springu se vůbec nic nezměnilo, vytvořit WAR a nadeployovat ho na server můžete pořád stejně, jako dříve. Akorát se Spring Bootem máte navíc možnost používat i embedded server, což se hodí hlavně při vývoji, případně pro jednoduchou aplikaci, kde se nechcete starat o aplikační server.

Proc jen na ty male? V Boot relativne nic nechybi, jen clovek musi udelat konfiguraci pro veci, ktere nejsou out of the box (coz by musel i na Springu v WAR)

technomaniak

Re:Proč Spring používá embedded Tomcat/Jetty
« Odpověď #8 kdy: 22. 07. 2018, 07:03:04 »
... A DÍKY TOME JSME TÉ MRDCE MOHL VĚNOVAT CELOU SPIČENOU SOBOTU! Z-K-U-R-V-I-S-I-N-I Z-A-M-R-D-A-N-Í"!!!!

Takže závěr je který ?
1) Informace nebyla v dokumentaci => nekvalitní dokumentace
2) Nebo jsi dokumentaci nečetl => jsi líný

Re:Proč Spring používá embedded Tomcat/Jetty
« Odpověď #9 kdy: 22. 07. 2018, 08:31:43 »
Proc jen na ty male? V Boot relativne nic nechybi, jen clovek musi udelat konfiguraci pro veci, ktere nejsou out of the box (coz by musel i na Springu v WAR)
U větších projektů nejde o ten Spring Boot, ale o aplikační server – pro složitější aplikaci možná budete chtít více služeb aplikačního serveru, než poskytuje Jetty nebo Tomcat, a použijete třeba Wildfly nebo WebLogic, možná v clusteru.

L.

Re:Proč Spring používá embedded Tomcat/Jetty
« Odpověď #10 kdy: 22. 07. 2018, 09:17:18 »
Ty jsi tak strašně chytrý, to jsem fakt nevěděl že můžu lokálně použít Spring Boot s embedded jettym a pak to jako píča zbuildit do WARka a deploynout na remote, fakt díky.

To je přesně, jak jsi to měl dělat.

A když budu vyvíjet více než 1 komponentu lokálně, tak se můžu jít asi oběsit, protože píča Spring Boot zabere vždy 1 port, kdežto na remote serveru se service odlišují nikoliv porty, ale prefixy před url, takže to budu musel nějak napasovat do konfiguráků. Nádhera.


Pokud ti dělá problém i takováhle trivialita, tak bys opravdu měl raději zkusit hledat štěstí v jiném oboru, více přiměřeném tvým mentálním schopnostem.

anonym

Re:Proč Spring používá embedded Tomcat/Jetty
« Odpověď #11 kdy: 22. 07. 2018, 11:07:18 »
Závěr je takový, že

<artifactId>spring-boot-maven-plugin</artifactId>

Excludne Devtools při buildu, pokud se builduje artefakt se všemi závislostmi. To se dá obejít přes

<excludeDevtools>false</excludeDevtools>

Ale tato píčovina nefunguje ve verzi Spring parrentu 2.0.2.RELEASE, protože prostě magic.

Funguje nicméně ve verzi 2.0.3.RELEASE a i do WARka přibalí devtools.

AVŠAK ani potom se devtools v Tomcatovi neaktivují a to ani přes přepínač:

System.setProperty("spring.devtools.restart.enabled", "true");

Takže viděl bych to tak, že pokud na tomhle vymrdaném magic chování které vymyslel nějaký hipsterský čurák nechci zabít další týden, tak si to prostě na lokální tomcat přes devtools nedeploynu.

Navíc při konverzi Spring Boot aplikace pro deploy na Tomcat se posere konfigurace pro Thymeleaf a už to dále nedokáže resolvnout template htmlka. Odhaduju, že bych na téhle chybě mohl zabít dalších několik zamrdaných dní.

Kód: [Vybrat]
Error resolving template "index.html", template might not exist or might not be accessible by any of the configured Template Resolvers

Tahleta Spring sračka je dobrá tak akorát někde do korporací, kde nikoho nesere, že bude týden nebo dva s lupou hledat, kde se co v konfiguraci posralo. Eventuálně je to dobré pro hloupého lopatoida, který nějak polepí dohromady výsledek z toho, co dům dal.

A teď z vašich reakcí nevím, jestli jsem tak blbej nebo jste tak blbí vy, já mám IQ 130, tak asi to prostě na rozuzlení těhletěch píčovin není dost a moje inteligence mi radí, abych z téhle hipsterské žumpy co nejdříve vypadl někam jinak. Spring vznikl pro nýmandské korporáty, protože ty problémy co s ním jsou jsou pořád menší, než ty, které by si nýmandi z těch korporátů udělali sami, kdyby žádný framework neměli.

Aplikační kontext pro IoC si můžu (musím) udělat sám a nepotřebuju na to zasraný a ještě navíc pomalý Spring, který potřebuje zasrané magic Devtools aby tak nějak alespoň trochu rychle nastartoval. Co na tom že je to magic, při kterém hrozí že se nějaká už inicializovaná konfigurace rozbije, protože Mr. hipster na něco zapoměl. Spring MVC patří do minulého století, protože se stejně dneska už templatuje na frontendu. Na Servletový kotejner nepotřebuju zasraný Spring. Na práci s databází nepotřebuju zasrané magic Spring Data JPA ani Hibernate, stejně mě to pak akorát sere.

Naco dpc. potrebuju, aby nejaky polofunkcni framework mi automatizoval v REST metodě konverzi z XMLka na Objekt, když mi stačí udělat:

Kód: [Vybrat]
public Response spicenySoap(String xml) {
  SpicenyObjekt o = ZkonvertujToDpcNaJednomRadkuKurva.ted<SpicenyObjekt>(SpicenyObjekt.class, xml);
}

Na tohle potrebuju kurva hipstersky framework s nejakym spicenym magicem, kvuli ktereho startuje hodinu a jeste navic blbe???????????

iq

Re:Proč Spring používá embedded Tomcat/Jetty
« Odpověď #12 kdy: 22. 07. 2018, 11:38:31 »
A teď z vašich reakcí nevím, jestli jsem tak blbej nebo jste tak blbí vy, já mám IQ 130, tak asi to prostě na rozuzlení těhletěch píčovin není dost a moje inteligence mi radí, abych z téhle hipsterské žumpy co nejdříve vypadl někam jinak.

Tak 130 je docela málo na vývoj. Ale pokud by sis přečetl dokumentaci, tak bys problémy neměl. Chce to nebýt lempl, který chce vše zadarmo.

Re:Proč Spring používá embedded Tomcat/Jetty
« Odpověď #13 kdy: 22. 07. 2018, 12:12:20 »
Tak nevím - je to jenom nějaká móda, nebo je to příklad těch "mileniálů" o kterých se tolik mluví v americké konzervativní propagandě?

Za mých mladých let bývalo zvykem že člověk buď držel hubu, nebo případně někam napsal článek na téma "chybami se člověk učí" (později se tomu začalo říkat "blog"). Tento týden uč čtu třetí tirádu kde ze sebe někdo vehementně dělá pitomce.

Ačkoliv to tu již několikrát padlo, tak zdůrazním: je rozdíl mezi Spring a Spring Boot, to druhé obsahuje navíc spoustu přibalených věcí a HODNĚ magie zajišťující že to jede samo hned bez konfigurace. Samotný Spring nic takového samozřejmě neobsahuje. To že tazatel vůbec o tomto rozdílu neví znamená, že se nenamáhal vůbec číst základní dokumentaci.
Druhá věc pak je, že evidentně plně nechápe všechny implikace celého konceptu Spring Boot (tj. automatická konfigurace plná magie). Jenomže to holt vyžaduje zkušenosti, tady prostě IQ nestačí.

TLDR: Samotné IQ rozhodně nestačí!!! Potřebujete zkušenosti, zkušenosti, znalosti, talent a zkušenosti. A to platí všude!

anonym

Re:Proč Spring používá embedded Tomcat/Jetty
« Odpověď #14 kdy: 22. 07. 2018, 13:29:46 »
Tak nevím - je to jenom nějaká móda, nebo je to příklad těch "mileniálů" o kterých se tolik mluví v americké konzervativní propagandě?

Za mých mladých let bývalo zvykem že člověk buď držel hubu, nebo případně někam napsal článek na téma "chybami se člověk učí" (později se tomu začalo říkat "blog"). Tento týden uč čtu třetí tirádu kde ze sebe někdo vehementně dělá pitomce.

Ačkoliv to tu již několikrát padlo, tak zdůrazním: je rozdíl mezi Spring a Spring Boot, to druhé obsahuje navíc spoustu přibalených věcí a HODNĚ magie zajišťující že to jede samo hned bez konfigurace. Samotný Spring nic takového samozřejmě neobsahuje. To že tazatel vůbec o tomto rozdílu neví znamená, že se nenamáhal vůbec číst základní dokumentaci.
Druhá věc pak je, že evidentně plně nechápe všechny implikace celého konceptu Spring Boot (tj. automatická konfigurace plná magie). Jenomže to holt vyžaduje zkušenosti, tady prostě IQ nestačí.

TLDR: Samotné IQ rozhodně nestačí!!! Potřebujete zkušenosti, zkušenosti, znalosti, talent a zkušenosti. A to platí všude!


A za mých mladých let platilo, že nebyla k dispozici jediná varianta softwaru z JZD Slušovice a když to člověk neuměl, tak pokorně svěsil hlavu s "chybama se člověk učí". Za mě, když byl nějaký software sračka, tak šel prostě do hajzlu a vzal se lepší, protože prostě byl! Protože není jenom svět a Spring. Já jsem teda zažil super fungující magic framework a ten se jmenoval .NET. Ten byl sice taky magic, ale ten MAGIC DPČ byl dotažený do konce! Kdyby tady byl na tom světě jenom Spring a já ho neuměl, tak držím pokorně hubu, učím se a vrtám se v tom. ALE NEBUDETE TOMU VĚŘIT, dneska existují věci které prostě FUNGUJÍ (.NET), protože je nepsala na hromádce o víkendech banda hipsterů!

Další věc je, že nejsem ani náhodou sám:

http://samatkinson.com/why-i-hate-spring/

To je asi taky nějaký mileniál, běž mu to tam napsat.

Co se týče Springu, tak to mi ukaž, kdo bude dpč ručně se Springem konfigurovat ty technologie a nepoužije Spring Boot! To už za času XML konfigurace to byl porod naprosto neskutečný něco vždycky v tom hnoji rozchodit. Pak to celé zaobalí do Boot Starterů a stejně jim to blbečkům nefunguje, protože to jde sice automaticky, ale člověk o to více času stráví na tom rozřešit v te magii nějakou chybu.