Overslaan naar hoofdinhoud

Configureren van webforJ-eigenschappen

Openen in ChatGPT

Om een webforJ-app met succes te implementeren en uit te voeren, zijn een paar belangrijke configuratiebestanden vereist: webforj.conf en web.xml. Elk van deze bestanden regelt verschillende aspecten van het gedrag van de app, van ingangs- en debuginstellingen tot servlet-mappingen.

Configureren van webforj.conf

Het webforj.conf-bestand is een kernconfiguratiebestand in webforJ, dat app-instellingen specificeert zoals ingangen, debugmodus en interactie tussen client en server. Het bestand is in HOCON-formaat en moet zich in de resources-map bevinden.

tip

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

Voorbeeld van een webforj.conf-bestand

# Dit configuratiebestand is in HOCON-formaat:
# 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 routernaam die wordt gebruikt om statische bestanden te serveren, terwijl de werkelijke mapnaam static blijft. Deze configuratie is nuttig als de standaard static-route in conflict komt met een route die in jouw app is gedefinieerd, waardoor je de routernaam kunt wijzigen zonder de map zelf te hernoemen.null
webforj.assetsExtStringStandaard bestandsextensie voor statische bestanden.null
webforj.assetsIndexStringStandaardbestand dat wordt geserveerd voor directoryverzoeken (bijv. index.html).null
webforj.clientHeartbeatRateStringHet interval waarop de client de server pings om te zien of deze nog actief is. Voor ontwikkeling, stel dit in op een kortere interval, bijvoorbeeld 8s, om snel de beschikbaarheid van de server te detecteren. Stel dit in op 50 seconden of hoger in productie om overmatige aanvragen 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, een aangepast basispad instellen maakt het mogelijk om componenten te laden van 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 wanneer een standaard BBj-installatie zonder de engine wordt gebruikt. Voor een standaard BBj-installatie kan de instelling worden beheerd met de !COMPONENTS STBL.null
webforj.debugBooleanSchakelt de debugmodus in. In de debugmodus zal webforJ extra informatie naar de console printen en zullen alle uitzonderingen in de browser worden weergegeven. Debugmodus is standaard uitgeschakeld.null
webforj.devtools.craftforj.enabled 26.02BooleanAlleen voor ontwikkelomgevingen. Schakelt craftforJ in, de ontwikkelomgeving die de draaiende app inspecteert, component eigenschappen bewerkt en wijzigingen terugschrijft naar Java-bron. Vereist dat webforj.debug ook ingeschakeld is. Geen van beide eigenschappen is op zichzelf voldoende.false
webforj.devtools.craftforj.hosts-allowed 26.02LijstClientadressen die toegang hebben tot craftforJ 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.project-root 26.02StringDe map waar craftforJ naar je bronnen kijkt, voor gevallen waarin het dat niet kan bepalen op basis van hoe de app is gestart.gedetecteerd
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 je app-stylesheet 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 zelf Java mag schrijven in plaats van alleen eigenschappen te wijzigen. Elke wijziging moet nog steeds compileren en vereist jouw goedkeuring.true
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, zal webforJ automatisch de classpath scannen naar klassen die webforj.App uitbreiden. Als meerdere klassen worden gevonden, zal er een fout optreden. Wanneer een pakket meer dan één potentieel toegangspunt bevat, is het expliciet instellen hiervan vereist om ambiguïteit te voorkomen, of alternatieven kan de annotatie AppEntry worden gebruikt om het toegangspunt tijdens runtime te specificeren.null
webforj.i18n.supported-locales 25.12LijstLijst van ondersteunde locale's als BCP 47-taallabels (bijv. "en", "en-US", "fr", "de-DE"). Wanneer auto-detectie is ingeschakeld, worden de voorkeurslocale's van de browser vergeleken met deze lijst. De eerste locale in de lijst wordt gebruikt als de standaard fallback. Zie Vertaling.[]
webforj.i18n.auto-detect 25.12BooleanWanneer true, wordt de applicatielocale automatisch ingesteld op basis van de voorkeurstaal van de browser bij het opstarten. De locale wordt bepaald door de voorkeurlocale's van de browser te vergelijken met de supported-locales-lijst. Wanneer false of wanneer supported-locales leeg is, gebruikt de applicatie webforj.locale. Zie Vertaling.false
webforj.fileUpload.acceptLijstDe toegestane bestandstypen voor bestanduploads. Standaard zijn alle bestandstypen toegestaan. Ondersteunde formaten omvatten MIME-types zoals image/*, application/pdf, text/plain, of bestandsextensies zoals *.txt. Wanneer een standaard BBj-installatie wordt gebruikt, wordt deze instelling genegeerd en beheerd via fileupload-accept.txt.[]
webforj.fileUpload.maxSizeLongDe maximale bestandsgrootte die is toegestaan voor bestanduploads, in bytes. Standaard is er geen limiet. Wanneer een standaard BBj-installatie wordt gebruikt, wordt deze instelling genegeerd en beheerd via fileupload-accept.txt.null
webforj.iconsDirStringURL-eindpunt voor de icons-map (standaard serveert vanuit resources/icons/).icons/
webforj.legacyHtmlInText 26.01BooleanWanneer true, wordt een waarde die in <html> is gewikkeld, weergegeven als HTML. Wanneer false, wordt dezelfde waarde letterlijk weergegeven.true
webforj.license.cfgStringDe map voor de licentieconfiguratie. Standaard is dit dezelfde als de configuratiemap van webforJ, maar dit kan indien nodig worden aangepast."."
webforj.license.startupTimeoutIntegerTijdslimiet voor licentie bij opstart in seconden.null
webforj.localeStringDe locale voor de app, die taal, regio-instellingen en formaten voor data, tijden en nummers bepaalt.null
webforj.quietBooleanSchakelt de laadafbeelding uit tijdens de opstart van de applicatie.false
webforj.reloadOnServerErrorBooleanAlleen voor ontwikkelomgevingen. In een ontwikkelomgeving, automatisch de pagina herladen bij fouten die verband houden met warme herimplementatie, maar niet bij andere fouttypen. Wanneer warme herimplementatie wordt gebruikt, kan er een fout optreden als de client een verzoek naar de server stuurt terwijl deze opnieuw opstart. Aangezien de server waarschijnlijk snel weer online zal zijn, stelt deze instelling de client in staat om een pagina automatisch opnieuw te laden.false
webforj.security.maxContentLength 25.10IntegerHet grootste verzoek dat de app accepteert, in bytes, ter bescherming tegen te grote verzoeken die bedoeld zijn om 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, ter bescherming tegen snelle sessiecreatie die bedoeld is om serverbronnen uit te putten. Stel in op 0 om de snelheid te beperken.0
webforj.servlets[n].nameStringServletnaam (maakt gebruik van de klasnaam als deze niet is opgegeven).null
webforj.servlets[n].classNameStringVolledig gekwalificeerde classnaam van de servlet.null
webforj.servlets[n].config.<key>Map<String,String>Servlet-initialisatieparameters.null
webforj.sessionTimeoutIntegerDuur van de sessietijdslimiet in seconden.60
webforj.stringTableMap<String,String>Een kaart van sleutel-waardeparen die worden gebruikt om strings op te slaan voor gebruik in de app. Handig 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 geserveerd. Hiermee kun je standaard MIME-types overschrijven of MIME-types voor aangepaste extensies definiëren. De sleutel van de kaart 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 in webforJ definieert het belangrijke instellingen zoals de servletconfiguratie, URL-patronen en welkomstpagina's. Dit bestand moet zich in de WEB-INF-map van de implementatiestructuur van je project bevinden.

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