将JavaSwing程序转换为Web应用部署到Tomcat

webswing配置和部署


前言

Webswing是专用的Web服务器,用于在浏览器中运行基于Swing的Java应用程序。
多年来,Swing一直是许多公司和个人创建丰富应用程序的首选框架。他们全都投入了大量的金钱和精力来开发这些应用程序。但是如今,Swing框架已成为它们的限制因素,因为它们无法在现代Web浏览器中使用这些应用程序。随着Applet技术支持的停止,这些公司几乎没有选择余地,这是Webswing进行救援的地方。几乎不需要额外的工作,就可以像本地应用程序一样在浏览器中立即使用Swing应用程序或Applet。只需使用内置的管理Web界面进行简单配置即可


使用webSwing

在官网(https://www.webswing.org/)下载最新版本压缩包,解压后进入webswing目录运行webswing.bat启动项目,访问localhost:8080/admin 进入控制台,默认账号密码是admin,pwd,运行webSwing需要安装Java环境,至少Java 8+(此教程基于20.1.6版本,新版本可能会有变化,如果操作不成功可参考官方文档)

在这里插入图片描述

将Swing程序部署到webSwing

我用swing写了一个简单的记事本功能效果如下
在这里插入图片描述
将程序打成jar包,在webswing目录的apps下新建一个目录,把jar包放进去。
在这里插入图片描述

创建应用

在管理控制台中,点击右上角的“Create New App”,输入应用程序访问路径,点击Create。

配置应用

找到刚才创建的应用,单击右侧的Confing按钮,进入配置页面。
在这里插入图片描述
修改以下配置

//配置项目路径
Home Folder :${webswing.rootDir}/apps/myapp
//设置jar包地址
Class Path :${webswing.rootDir}/apps/myapp/Notepad.jar
//设置main方法入口
Main Class:swing.demo.NoteBook
//匿名访问
Security Module Name :NONE

修改完成后点击Apply
点击上方/myapp蓝色链接或者地址栏输入localhost:8080/myapp访问应用
在这里插入图片描述

部署到tomcat

把Webswing文件夹复制到tomcat的bin目录下

复制webswing-server.war到Tomcat的webapps文件夹中

在tomcatconf/catalina.properties文件中添加以下属性。(或使用-DJVM选项指定这些属性)

webswing.warLocation=webapps/webswing-server.war
webswing.configFile=webswing/webswing.config
webswing.tempDirBase=webswing/tmp
webswing.rootDir=webswing

如果使用https增加以下属性

Dwebswing.httpsOnly=true 
Dwebswing.cookieSameSite=NONE

如果tomcat启动乱码

修改tomcat的conf下的logging.properties中的参数

java.util.logging.ConsoleHandler.encoding = GBK

解决webSwing跨域问题

如果要将Webswing嵌入到其他域上的页面,则必须在应用程序配置的allowedCorsOrigins选项中启用跨域资源共享,设置*为允许所有域,或使用允许域列表。

修改文件 tomcat/bin下catalina.bat文件,添加以下配置。

set "JAVA_OPTS= -Dwebswing.httpsOnly=true -Dwebswing.cookieSameSite=NONE"

进入谷歌浏览器配置页面 chrome://flags

搜索下面两个属性设置为 disable

#same-site-by-default-cookies

#cookies-without-same-site-must-be-secure
创建tomcat证书

这里使用JDK自带的keytool工具来生成证书

在jdk的安装目录\bin\keytool.exe下打开keytool.exe

命令行中输入以下命令:

keytool -genkeypair -alias "tomcat" -keyalg "RSA" -keystore "D:\tomcat.keystore"

配置tomcat服务器

定位到tomcat服务器的安装目录, 找到conf下的server.xml文件,添加配置。

<Connector port="8443"
    protocol="org.apache.coyote.http11.Http11NioProtocol"
    SSLEnabled="true"
    scheme="https"
    secure="true"
    keystoreFile="D:\tomcat.keystore"
    keystorePass="123456"
    clientAuth="false"
    SSLProtocol="TLSv1+TLSv1.1+TLSv1.2"
    />  

配置说明

Enabled : 服务器启动是否自动启动应用程序
Web Folder : 静态资源路径
Restricted Resources : 通过身份验证才能访问的目录
Localization Folder :国际化语言目录
Icon:图标路径
CORS Origins : 允许跨域请求url列表,设置 * 允许所有
Main Arguments : 接收Url参数(如有特殊字符需要URL转码)

会话方式

ALWAYS_NEW_SESSION,每个会话都会启用一个新的应用程序

CONTINUE_FOR_TAB 终止连接或用户刷新页面后,可以在同一个浏览器选项卡中恢复Webswing会话

CONTINUE_FOR_BROWSER 终止连接后,可以在同一浏览器中恢复Webswing会话

CONTINUE_FOR_USER 连接终止后,同一用户可以从任何计算机恢复应用程序会话

文件隔离系统

打开文件隔离系统 Isolated Filesystem:ON

设置上传路径 Upload Folder :${user}/upload

设置完成后每个用户上传和下载都会生成单独的目录文件

解决打开文件乱码问题

修改JVM启动参数 -Dfile.encoding=UTF-8

  • 4
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 11
    评论
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值