IKEA ve Spojeném království hledá zaměstnance do své nové pobočky. Do pobočky v počítačové hře Roblox. Nástupní mzda je 13,15 liber na hodinu.
Alyssa Rosenzweig se v příspěvku na svém blogu Vulkan 1.3 na M1 za 1 měsíc rozepsala o novém Vulkan 1.3 ovladači Honeykrisp pro Apple M1 splňujícím specifikaci Khronosu. Vychází z ovladače NVK pro GPU od Nvidie. V plánu je dále rozchodit DXVK a vkd3d-proton a tím pádem Direct3D, aby na Apple M1 s Asahi Linuxem běžely hry pro Microsoft Windows.
Byla vydána (𝕏) květnová aktualizace aneb nová verze 1.90 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a animovanými gify v poznámkách k vydání. Ve verzi 1.90 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.
Byla vydána (Mastodon, 𝕏) nová verze 2024.2 linuxové distribuce navržené pro digitální forenzní analýzu a penetrační testování Kali Linux (Wikipedie). Přehled novinek se seznamem nových nástrojů v oficiálním oznámení.
Počítačová hra Tetris slaví 40 let. Alexej Pažitnov dokončil první hratelnou verzi 6. června 1984. Mezitím vznikla celá řada variant. Například Peklo nebo Nebe. Loni měl premiéru film Tetris.
MicroPython (Wikipedie), tj. implementace Pythonu 3 optimalizovaná pro jednočipové počítače, byl vydán ve verzi 1.23.0. V přehledu novinek je vypíchnuta podpora dynamických USB zařízení nebo nové moduly openamp, tls a vfs.
Canonical vydal Ubuntu Core 24. Představení na YouTube. Nová verze Ubuntu Core vychází z Ubuntu 24.04 LTS a podporována bude 12 let. Ubuntu Core je určeno pro IoT (internet věcí) a vestavěné systémy.
Databáze DuckDB (Wikipedie) dospěla po 6 letech do verze 1.0.0.
Intel na veletrhu Computex 2024 představil (YouTube) mimo jiné procesory Lunar Lake a Xeon 6.
Na blogu Raspberry Pi byl představen Raspberry Pi AI Kit určený vlastníkům Raspberry Pi 5, kteří na něm chtějí experimentovat se světem neuronových sítí, umělé inteligence a strojového učení. Jedná se o spolupráci se společností Hailo. Cena AI Kitu je 70 dolarů.
Používám Tomcat 7.0.29 (ze ZIPu z webu Apache Tomcat), Oracle Linux 6.4 a rád bych deployoval aplikaci myapp
s ROOT kontextem s využitím virtualhosta.
Nastavení jsem se snažil provést podle následující dokumentace Tomcatu:
http://tomcat.apache.org/tomcat-7.0-doc/config/context.html#Naminghttp://tomcat.apache.org/tomcat-7.0-doc/config/context.html#Defining_a_contextIf you want to deploy a WAR file or a directory using a context path that is not related to the base file name then one of the following options must be used to prevent double-deployment:
a) Disable autoDeploy and deployOnStartup and define all Contexts in server.xml
b) Locate the WAR and/or directory outside of the Host's appBase and use a context.xml file with a docBase attribute to define it.
Individual Context elements may be explicitly defined:
A. In an individual file at/META-INF/context.xml
inside the application files. Optionally (based on the Host'scopyXML
attribute) this may be copied to$CATALINA_BASE/conf/[enginename]/[hostname]/
and renamed to application's base file name plus a ".xml" extension.
B. In individual files (with a ".xml" extension) in the$CATALINA_BASE/conf/[enginename]/[hostname]/
directory. The context path and version will be derived from the base name of the file (the file name less the .xml extension). This file will always take precedence over any context.xml file packaged in the web application'sMETA-INF
directory.
C. Inside a Host element in the mainconf/server.xml
.
Požadavky na deployment myapp
context path=""
myapp.war
(ne ROOT.war
)META-INF/context.xml
Abych toto dosáhl, provedl jsem následující
myapphostname
s appbasedir $CATALINA_HOME/myapp_dst
myapp.war
do složky $CATALINA_HOME/myapp_src
(splnění požadavku b)$CATALINA_HOME/conf/Catalina/myapphost/ROOT.xml
obsahující context path="" docBase=$CATALINA_HOME/myapp_src/myapp.war
(splnění požadavku B)
Předpokládal jsem, že se myapp.war
rozbalí do appBase
virtualhosta,t.j. do $CATALINA_HOME/myapp_dst
nebo do $CATALINA_HOME/myapp_dst/ROOT
, ale nestalo se ani jedno. Aplikace myapp beží z nerozbaleného WARu.
Co bych měl změnit v konfiguraci nebo v souborové struktuře, abych dosáhl požadovaného chování?
Předem díky za rady.
Leoš
=== adresářová struktura - relevantní soubory/složky ===$CATALINA_BASE |-- bin |-- conf | |-- Catalina | | |-- localhost | | `-- myapphost | | `-- ROOT.xml | |-- catalina.policy | |-- catalina.properties | |-- context.xml | |-- logging.properties | |-- server.xml | |-- tomcat-users.xml | `-- web.xml |-- lib |-- LICENSE |-- logs |-- NOTICE |-- myapp_dst | |-- mysecondapp | `-- mysecondapp.war |-- myapp_src | `-- myapp.war |-- RELEASE-NOTES |-- temp |-- webapps `-- work=== server.xml - relevantní část ===
<Engine name="Catalina" defaultHost="myapphost"> <Realm className="org.apache.catalina.realm.LockOutRealm"> <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/> </Realm> <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"> <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log." suffix=".txt" pattern="%h %l %u %t "%r" %s %b" /> </Host> <Host name="myapphost" appBase="myapp_dst" unpackWARs="true" autoDeploy="true"> </Host> </Engine>=== $CATALINA_HOME/conf/Catalina/myapphost/ROOT.xml ===
<Context path="" docBase="/opt/programs/tomcat7b/myapp_src/myapp.war" />
Řešení dotazu:
Děkuji. Ano, je to tak, mimo appBase
Tomcat WARy nerozbaluje. Šlo mi o to nastavit <Context path=""/>
, rozbalit WAR a zároveň se vyhnout vytvoření složky ROOT.war
. Rád bych, aby Tomcat rozbalil WAR pouze do složky myapp
, což však nejspíš koliduje s dokumentací, která vyžaduje pro prázdný stríng v Context path
složku ROOT nebo soubor ROOT.war.
Rozbalení WAR je požadavek zákazníka, pro kterého nastavení provádím. Panuje obava, že aplikace běžící z nerozbaleného WARu bude běžet pomaleji než z rozbaleného.
docBase
, Tomcat WARko nemůže rozbalit, protože vůbec nic neví o cíli – např. jestli je tam povolen zápis. Takže pokud chcete použít automatické rozbalování, musíte WARko nahrát do appBase
. ContextPath
je pak možné určit buď názvem WARka nebo souborem context.xml
ve WARku. Nebo můžete WARko rozbalit předem a docBase nasměrovat na rozbalený adresář. Nebo použít Jetty, které WARka rozbaluje do systémového dočasného adresáře. A nebo se vykašlat na rozbalování, to, že by aplikace běžela pomaleji, je podle mne nesmysl. Týkalo by se to nanejvýš statických souborů, a ty lze stejně nejrychleji odeslat jedině přes NIO, takže je nutné celý mechanismus servletů obejít (Jetty to umí, nevím, zda i Tomcat – ale rozhodně to znamená mnohem víc konfigurace, než jenom někam nahrát WAR).
Děkuji za upřesnění. Díky Vám jsem si ujasnil, že zmíněné požadavky na deploy se nedají splnit současně a to protože se Tomcat chová takto:
<Context path="string">
se jménem WAR nebo rozbalené složky, kdy prázdný string vyžaduje pojmenování ROOT.war
, resp. ROOT/
(složka), což dokumentace Tomcatu popisuje zde.appBase
do nějakého docBase
, kde ovšem ztrácím možnost rozbalení WAR, protože je docBase
pro Tomcat neviditelná.
Ještě jednou díky za Vaše postřehy. Řešením v mém případě bude nejspíše nerozbalovat WAR.
Tiskni Sdílej: