Overslaan naar hoofdinhoud

Configureren van webforJ-eigenschappen

Openen in ChatGPT

Om een webforJ-app succesvol te implementeren en uit te voeren, zijn enkele belangrijke configuratiebestanden vereist: webforj.conf en web.xml. Elk van deze bestanden controleert verschillende aspecten van de gedrag van de app, van toegangspunten en debug-instellingen tot servlet-mappingen.

Configureren van webforj.conf​

Het webforj.conf-bestand is een kernconfiguratiebestand in webforJ, waarin app-instellingen worden gespecificeerd, zoals toegangspunten, debug-modus en interactie tussen client en server. Het bestand is in HOCON-indeling en moet zich bevinden in de map resources.

tip

Als je integreert met Spring, kun je deze webforj.conf-eigenschappen instellen in het application.properties-bestand.

Voorbeeld webforj.conf-bestand​

# Dit configuratiebestand is in HOCON-indeling:
# https://github.com/lightbend/config/blob/master/HOCON.md

webforj.entry = com.webforj.samples.Application
webforj.debug = true
webforj.reloadOnServerError = on
webforj.clientHeartbeatRate = 1s

Configuratieopties​

EigenschapTypeUitlegStandaard
webforj.assetsCacheControlStringCache-Control header voor statische bronnen.null
webforj.assetsDirStringDe route naam die wordt gebruikt om statische bestanden te serveren, terwijl de werkelijke mapnaam static blijft. Deze configuratie is nuttig als de standaardroute static in conflict komt met een route die in je app is gedefinieerd, waardoor je de routenaam kunt wijzigen zonder de map zelf te hernoemen.null
webforj.assetsExtStringStandaard bestandsextensie voor statische bestanden.null
webforj.assetsIndexStringStandaard bestand dat wordt geserveerd voor directoryverzoeken (bijv. index.html).null
webforj.clientHeartbeatRateStringHet interval waarop de client de server pingt om te zien of deze nog actief is. Voor ontwikkeling, stel dit in op een korter interval, bijvoorbeeld 8s, om snel de serverbeschikbaarheid te detecteren. Stel dit in op 50 seconden of langer in productie om overmatige verzoeken te vermijden.50s
webforj.componentsStringWanneer gespecificeerd, bepaalt het basispad waar DWC-componenten worden geladen. Standaard worden componenten geladen vanaf de server die de app host. Echter, het instellen van een aangepast basispad maakt het mogelijk componenten te laden vanaf een alternatieve server of CDN. Bijvoorbeeld, om componenten van jsdelivr.com te laden, stel je het basispad in op: https://cdn.jsdelivr.net/gh/webforj/dwc-dist@1.0.0-${webforj.version}. Het is belangrijk dat de geladen componenten compatibel zijn met de versie van het webforJ-framework dat in gebruik is; anders werkt de app mogelijk niet zoals verwacht. Deze instelling wordt genegeerd bij het gebruik van een standaard BBj-installatie zonder de engine. Voor een standaard BBj-installatie kan de instelling worden beheerd met de !COMPONENTS STBL.null
webforj.debugBooleanZet de debug-modus aan. In debug-modus zal webforJ extra informatie naar de console printen en alle uitzonderingen in de browser tonen. De debug-modus is standaard uitgeschakeld.null
webforj.devtools.craftforj.enabled 26.02BooleanAlleen ontwikkeling omgevingen. Zet craftforJ aan, de ontwikkelomgeving die de actieve app inspecteert, component-eigenschappen bewerkt en wijzigingen weer terugschrijft naar de Java-bron. Vereist ook dat webforj.debug is ingeschakeld. Geen van beide eigenschappen is op zichzelf voldoende.false
webforj.devtools.craftforj.hosts-allowed 26.02LijstClientadressen die zijn toegestaan om craftforJ te bereiken buiten de machine waarop de app draait. Standaard kan alleen een browser op die machine het bereiken. Een invoer die eindigt op * komt overeen met een prefix, en een enkele * verwijdert de beperking. Zie craftforJ-beveiliging.alleen loopback
webforj.devtools.craftforj.source-changes 26.02BooleanOf craftforJ wijzigingen in eigenschappen en route-toegangsregels in je Java-bron mag schrijven.true
webforj.devtools.craftforj.stylesheet-changes 26.02BooleanOf craftforJ thema's en stijlen in de stylesheet van je app mag opslaan.true
webforj.devtools.craftforj.ai.enabled 26.02BooleanOf de craftforJ AI-assistent beschikbaar is.true
webforj.devtools.craftforj.ai.freeform-changes 26.02BooleanOf de assistent Java van zijn eigen mag schrijven in plaats van alleen eigenschappen te wijzigen. Elke wijziging moet nog steeds compileren en moet nog goedgekeurd worden.true
webforj.devtools.project-root 26.03StringDe directory waar craftforJ naar kijkt voor jouw bronnen, voor gevallen waarin het dat niet kan bepalen op basis van hoe de app is gestart. Vervangt webforj.devtools.craftforj.project-root, dat verouderd is maar nog steeds gelezen wordt wanneer de sleutel niet is ingesteld.gedetecteerd
webforj.entryStringDefinieert het toegangspunt van de app door de volledig gekwalificeerde naam van de klasse op te geven die webforj.App uitbreidt. Als er geen toegangspunt is gedefinieerd, scant webforJ automatisch het classpath naar klassen die webforj.App uitbreiden. Als er meerdere klassen worden gevonden, zal er een fout optreden. Wanneer een pakket meer dan één potentieel toegangspunt bevat, is het noodzakelijk om dit expliciet in te stellen om ambiguïteit te voorkomen, of alternately kan de annotatie AppEntry worden gebruikt om op runtime het toegangspunt op te geven.null
webforj.i18n.supported-locales 25.12LijstLijst van ondersteunde locaties als BCP 47-taagtags (bijv. "en", "en-US", "fr", "de-DE"). Wanneer auto-detectie is ingeschakeld, worden de voorkeurlocaties van de browser vergeleken met deze lijst. De eerste locatie in de lijst wordt gebruikt als standaardfallback. Zie Vertaling.[]
webforj.i18n.auto-detect 25.12BooleanWanneer true, wordt de applicatielocatie automatisch ingesteld vanuit de voorkeurstaal van de browser bij het opstarten. De locatie wordt opgelost door de voorkeurlocaties van de browser te vergelijken met de lijst supported-locales. Wanneer false of wanneer supported-locales leeg is, gebruikt de applicatie webforj.locale. Zie Vertaling.false
webforj.fileUpload.acceptLijstDe toegestane bestandstypen voor bestandsuploads. Standaard zijn alle bestandstypen toegestaan. Ondersteunde formaten zijn onder andere MIME-typen zoals image/*, application/pdf, text/plain, of bestandsextensies zoals *.txt. Bij het gebruik van een standaard BBj-installatie, wordt deze instelling genegeerd en beheerd via fileupload-accept.txt.[]
webforj.fileUpload.maxSizeLongDe maximale bestandsgrootte die is toegestaan voor bestandsuploads, in bytes. Standaard is er geen limiet. Bij het gebruik van een standaard BBj-installatie, wordt deze instelling genegeerd en beheerd via fileupload-accept.txt.null
webforj.iconsDirStringURL-eindpunt voor de iconenmap (standaard dient vanuit resources/icons/).icons/
webforj.legacyHtmlInText 26.01BooleanWanneer true, een waarde omgeven door <html> rendert zijn inhoud als HTML. Wanneer false, wordt dezelfde waarde letterlijk getoond.true
webforj.license.cfgStringDe map voor de licentieconfiguratie. Standaard is het dezelfde als de webforJ-configuratiemap, maar dit kan indien nodig worden aangepast."."
webforj.license.startupTimeoutIntegerLicentie opstarttimeout in seconden.null
webforj.localeStringDe locatie voor de app, die taal, regio-instellingen en formaten voor data, tijden en nummers bepaalt.null
webforj.quietBooleanSchakelt de laadbalk uit tijdens het opstarten van de applicatie.false
webforj.reloadOnServerErrorBooleanAlleen ontwikkeling omgevingen. In een ontwikkeling omgeving, auto-herladen van de pagina bij fouten gerelateerd aan hot redeployment, maar niet bij andere fouttypes. Bij het gebruik van hot redeploy, als de client een verzoek naar de server verzendt terwijl deze opnieuw opstart, kan er een fout optreden terwijl het WAR-bestand wordt gewisseld. Omdat de server waarschijnlijk snel weer online is, maakt deze instelling het voor de client mogelijk om automatisch te proberen de pagina opnieuw te laden.false
webforj.security.maxContentLength 25.10IntegerGrootste verzoek dat de app accepteert, in bytes, als beveiliging tegen te grote verzoeken die bedoeld zijn om het servergeheugen uit te putten. Stel in op 0 om de limiet uit te schakelen.0
webforj.security.maxInitPerMinute 25.10IntegerHoeveel nieuwe applicatiesessies de app elke minuut zal starten, als beveiliging tegen snelle sessiecreatie die bedoeld is om serverresources uit te putten. Stel in op 0 om snelheidslimiting uit te schakelen.0
webforj.servlets[n].nameStringServletnaam (maakt gebruik van de classennaam als deze niet is gespecificeerd).null
webforj.servlets[n].classNameStringVolledig gekwalificeerde naam van de servlet.null
webforj.servlets[n].config.<key>Map<String,String>Servlet-initialisatieparameters.null
webforj.sessionTimeoutIntegerDuur van de sessietimeout in seconden.60
webforj.stringTableMap<String,String>Een map van sleutelwaardeparen die worden gebruikt om strings op te slaan voor gebruik in de app. Nuttig voor het opslaan van app-berichten of labels. Meer informatie over StringTable is te vinden hier.{}
webforj.mime.extensionsMap<String,String>Aangepaste MIME-type mappings voor bestandsextensies wanneer statische bestanden worden aangeboden. Hiermee kun je standaard MIME-typen overschrijven of MIME-typen definiëren voor aangepaste extensies. De map sleutel is de bestandsextensie (zonder de punt), en de waarde is het MIME-type.{}

Configureren van web.xml​

Het web.xml-bestand is een essentieel configuratiebestand voor Java-webapps, en definieert in webforJ belangrijke instellingen zoals de servletconfiguratie, URL-patronen en welkomstpagina's. Dit bestand moet zich bevinden in de map WEB-INF van de implementatiestructuur van je project.

InstellingUitlegStandaardwaarde
<display-name>Stelt de weergavenaam voor de webapp in, meestal afgeleid van de projectnaam. Deze naam verschijnt in de beheertools van app-servers.${project.name}
<servlet> en <servlet-mapping>Definieert de WebforjServlet, de kernservlet voor het afhandelen van webforJ-verzoeken. Deze servlet is gemapped naar alle URL's (/*), en is daarmee het belangrijkste toegangspunt voor webverzoeken.WebforjServlet
<load-on-startup>Geeft aan dat WebforjServlet moet worden geladen wanneer de app start. Dit op 1 instellen zorgt ervoor dat de servlet onmiddellijk wordt geladen, wat de afhandeling van initiële verzoeken verbetert.1

Blijf leren

webforJ-team

Hulp nodig?

Bespreek je project met de engineers van webforJ.

Plan een gesprek

We spreken EN · DE · FR · ES