Setup and Configuration
Webswingin integrointi webforJ:llä sisältää kaksi komponenttia: Webswing-palvelimen, joka isännöi Swing-sovellustasi, ja WebswingConnector-komponentin webforJ-sovelluksessasi, joka upottaa sen.
Esivaatimukset
Ennen kuin aloitat, varmista, että sinulla on seuraavat esivaatimukset:
- Java-desktop-sovellus: Swing-, JavaFX- tai SWT-sovellus, joka on pakattu JAR-tiedostoksi
- Webswing-palvelin: lataa webswing.org -sivustolta
- webforJ versio
25.10tai uudempi: vaaditaanWebswingConnector-tuennan vuoksi
Arkkitehtuurin yleiskatsaus
Integrointiarkkitehtuuri koostuu seuraavista osista:
- Webswing-palvelin: ajaa Swing-sovellustasi, kaappaa GUI:n renderöinnin ja käsittelee käyttäjän syötteen
- webforJ-sovellus: isännöi verkkosovellustasi upotetun
WebswingConnector:in kanssa - Selaimen asiakas: näyttää sekä webforJ-käyttöliittymän että upotetun Swing-sovelluksen
Webswingin ja webforJ:n on toimittava eri porteilla ristiriitojen välttämiseksi. Sekä webforJ että Webswing toimivat tyypillisesti portissa 8080. Sinun tulisi vaihtaa joko Webswingin portti tai webforJ:n portti.
Webswing-palvelimen asennus
Asennus ja käynnistys
- Lataa Webswing viralliselta verkkosivustolta
- Pura arkisto haluamaasi sijaintiin (esim.
/opt/webswingtaiC:\webswing) - Käynnistä palvelin käyttämällä alustan spesifisiä skriptejä:
- Linux
- macOS
- Windows
webswing.sh
webswing.command
webswing.bat
- Varmista, että palvelin on käynnissä siirtymällä osoitteeseen
http://localhost:8080
Sovelluksen konfigurointi
Kun palvelin on käynnissä, pääset hallintakonsoliin osoitteessa http://localhost:8080/admin lisätäksesi ja konfiguroidaksesi Swing-sovelluksesi.
Hallintakonsolissa konfiguroi:
- Sovelluksen nimi: tulee osaksi URL-polku (esim.
myapp→http://localhost:8080/myapp/) - Pääluokka: Swing-sovelluksesi sisäänkäyntipiste
- Classpath: polku sovelluksen JAR:lle ja riippuvuuksille
- JVM-argumentit: muistin asetukset, järjestelmän ominaisuudet ja muut JVM-vaihtoehdot
- Kotihakemisto: sovelluksen työskentelyhakemisto
Konfiguroinnin jälkeen Swing-sovelluksesi on käytettävissä osoitteessa http://localhost:8080/[app-name]/
webforJ-integrointi
Kun Webswing-palvelin on käynnissä Swing-sovelluksesi konfiguroimisen kanssa, voit integroida sen webforJ-sovellukseesi. Tämä sisältää riippuvuuden lisäämisen, Cross-Origin Resource Sharing (CORS) -konfiguroinnin ja näkymän luomisen WebswingConnector-komponentilla.
Lisää riippuvuus
Lisää Webswing-integraatiomodule webforJ-projektiisi. Tämä tarjoaa WebswingConnector-komponentin ja siihen liittyvät luokat.
<dependency>
<groupId>com.webforj</groupId>
<artifactId>webforj-webswing</artifactId>
</dependency>
CORS-konfigurointi
Cross-Origin Resource Sharing (CORS) -konfigurointi on tarpeen, kun Webswing ja webforJ toimivat eri porteilla tai domaineilla. Selaimen oman alkuperän politiikka estää pyyntöjä eri alkuperien välillä ilman asianmukaisia CORS-otsikoita.
Luo servlet-suodatin lisätäksesi CORS-otsikot webforJ-sovellukseesi:
package com.example.config;
import java.io.IOException;
import jakarta.servlet.Filter;
import jakarta.servlet.FilterChain;
import jakarta.servlet.FilterConfig;
import jakarta.servlet.ServletException;
import jakarta.servlet.ServletRequest;
import jakarta.servlet.ServletResponse;
import jakarta.servlet.http.HttpServletResponse;
public class CorsFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
// pass
}
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
if (response instanceof HttpServletResponse) {
HttpServletResponse httpResponse = (HttpServletResponse) response;
httpResponse.setHeader("Access-Control-Allow-Origin", "*");
httpResponse.setHeader("Access-Control-Allow-Methods",
"GET, POST, PUT, DELETE, OPTIONS, HEAD");
httpResponse.setHeader("Access-Control-Allow-Headers",
"Content-Type, Authorization, X-Requested-With");
httpResponse.setHeader("Access-Control-Allow-Credentials", "true");
}
chain.doFilter(request, response);
}
@Override
public void destroy() {
// pass
}
}
Rekisteröi suodatin web.xml-tiedostossasi:
<filter>
<filter-name>CorsFilter</filter-name>
<filter-class>com.example.config.CorsFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>CorsFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
Tuotantoympäristöjä varten vaihda jokerimerkki (*) Access-Control-Allow-Origin -otsikossa erityiseen Webswing-palvelimesi URL-osoitteeseen turvallisuuden vuoksi.
Perusimplementaatio
Luo näkymä, joka upottaa Swing-sovelluksesi käyttäen WebswingConnector:ia:
package com.example.views;
import com.webforj.annotation.Route;
import com.webforj.component.Composite;
import com.webforj.component.html.elements.Div;
import com.webforj.component.webswing.WebswingConnector;
@Route
public class SwingAppView extends Composite<Div> {
private WebswingConnector connector;
public SwingAppView() {
// Alusta liitin Webswing-sovelluksesi URL-osoitteella
connector = new WebswingConnector("http://localhost:8080/myapp/");
// Aseta näyttömitat
connector.setSize("100%", "600px");
// Lisää näkymän konttiin
getBoundComponent().add(connector);
}
}
Liitin luo automaattisesti yhteyden Webswing-palvelimeen, kun se lisätään DOM:iin. Swing-sovelluksen käyttöliittymä renderöidään sitten liitin-komponentissa.
Konfigurointivaihtoehdot
WebswingOptions-luokka antaa sinun mukauttaa liittimen käyttäytymistä. Oletuksena liitin käynnistyy automaattisesti luotuna ja käyttää vakioa yhteysasetuksia. Voit muuttaa tätä käyttäytymistä luomalla WebswingOptions-instanssin ja soveltamalla sitä liittimeen.
Esimerkiksi, jos haluat piilottaa kirjautumispainikkeen tuotantoympäristössä, jossa hallitset todennusta webforJ-sovelluksesi kautta:
WebswingConnector connector = new WebswingConnector("http://localhost:8080/myapp/");
WebswingOptions options = new WebswingOptions()
.setDisableLogout(true); // Piilota kirjautumispainike
connector.setOptions(options);
Tai jos tarvitset manuaalista hallintaa siitä, milloin yhteys käynnistyy:
// Luo liitin ilman automaattista käynnistystä
WebswingConnector connector = new WebswingConnector(url, false);
// Määrittele ja käynnistä kun olet valmis
WebswingOptions options = new WebswingOptions();
connector.setOptions(options);
connector.start();
Vaihtoehdot kattavat yhteyden hallinnan, todennuksen, vianetsinnän ja seurannan.