Compare commits

...

8 Commits

Author SHA1 Message Date
JianGuo 38ee383033 1111 2024-07-16 16:19:41 +08:00
jianguo afea000336 webSocket版本升级
1. webSocket 版本升级
2. 端口bind error错误捕获
2024-06-11 14:13:05 +08:00
jianguo 84fe5afc62 Merge remote-tracking branch 'origin/master' 2024-06-04 16:31:47 +08:00
jianguo 23063b0d9c 1. 0.3.3 bug fix 2024-06-04 16:31:39 +08:00
jianguo b29961b0bf 1. 0.3.3 bug fix 2024-06-04 16:09:07 +08:00
jianguo b0701543b1 1. 0.3.3 bug fix 2024-06-04 15:51:16 +08:00
jianguo c192fcf954 Merge pull request '1. 0.3.2 启动锁' (#2) from dev into master
Reviewed-on: http://150.158.108.156:32012/jianguo/sane-service/pulls/2
2024-06-04 15:14:02 +08:00
jianguo bd95bbb11b 1. 0.3.2 启动锁 2024-06-04 14:58:49 +08:00
7 changed files with 41 additions and 13 deletions

12
pom.xml
View File

@ -6,7 +6,7 @@
<groupId>org.aohe</groupId>
<artifactId>sane-service</artifactId>
<version>0.3.1</version>
<version>0.3.4</version>
<name>aohe-sane-service</name>
@ -63,7 +63,7 @@
<dependency>
<groupId>org.java-websocket</groupId>
<artifactId>Java-WebSocket</artifactId>
<version>1.5.3</version>
<version>1.5.6</version>
</dependency>
<dependency>
<groupId>com.formdev</groupId>
@ -71,6 +71,12 @@
<version>3.4.1</version>
<classifier>no-natives</classifier>
</dependency>
<dependency>
<groupId>io.github.sanyarnd</groupId>
<artifactId>app-locker</artifactId>
<version>1.2.0</version>
</dependency>
<!-- <dependency>-->
<!-- <groupId>com.formdev</groupId>-->
<!-- <artifactId>flatlaf</artifactId>-->
@ -148,7 +154,7 @@
<displayName>奥诃影像扫描控件</displayName>
<description>奥诃公司为影像 WEB 应用开发的 USB 扫描仪连接驱动,请搭配 WEB 产品使用。</description>
<linuxConfig>
<generateAppImage>true</generateAppImage>
<!-- <generateAppImage>true</generateAppImage>-->
<generateDeb>true</generateDeb>
<generateRpm>true</generateRpm>
<wrapJar>true</wrapJar>

View File

@ -1,6 +1,7 @@
package org.aohe;
import com.formdev.flatlaf.FlatDarculaLaf;
import io.github.sanyarnd.applocker.AppLocker;
import lombok.extern.slf4j.Slf4j;
import org.aohe.core.sane.utils.SaneSessionUtils;
import org.aohe.core.swing.NewWindow;
@ -9,18 +10,30 @@ import org.aohe.core.utils.SystemUtils;
import org.aohe.core.web.SocketFactory;
import javax.swing.*;
import java.nio.file.Path;
@Slf4j
public class Main {
private static final String JAVA_IO_TMPDIR = System.getProperty("java.io.tmpdir");
public static void main(String[] args) {
log.info(" 当前系统类型: {}", SystemUtils.getOsName());
AppLocker locker = AppLocker.create("aoheSaneServiceLock").setPath( Path.of(JAVA_IO_TMPDIR) ).build();
try {
//启动锁只允许启动一个
locker.lock();
//设置窗口主题
//FlatLightLaf.setup();
UIManager.setLookAndFeel(new FlatDarculaLaf());
} catch (UnsupportedLookAndFeelException e) {
throw new RuntimeException(e);
} catch (Exception ex) {
log.error("应用已经启动,当前进程退出。",ex);
System.exit(0);
}
//初始化其他资源
init();

View File

@ -142,13 +142,13 @@ public class SaneSessionUtils {
try {
saneDevice.open();
BufferedImage bufferedImage = saneDevice.acquireImage();
File file = FileUtil.createTempFile("sane","png",true);
File file = FileUtil.createTempFile("sane-",".png",true);
ImageIO.write(bufferedImage, "png", file);
return file;
} catch (IOException | SaneException e) {
throw new RuntimeException(e);
}finally {
if(saneDevice != null){
if(saneDevice != null && saneDevice.isOpen()){
saneDevice.close();
}
}

View File

@ -66,6 +66,12 @@ public class NewWindow extends JFrame {
getLogTextArea().append(view + "\n");
}
public static void setStaticView(String view){
if(logTextArea != null){
logTextArea.append(view + "\n");
}
}
public void initSocket() {
if(SocketFactory.start()){
setView("socket 服务启动成功");

View File

@ -3,7 +3,6 @@ package org.aohe.core.web;
import lombok.Getter;
import lombok.extern.slf4j.Slf4j;
import java.net.BindException;
import java.net.UnknownHostException;
/**
@ -12,12 +11,6 @@ import java.net.UnknownHostException;
@Slf4j
public class SocketFactory {
/**
* -- GETTER --
* get 方法
*
* @return
*/
@Getter
private static SocketServer socketServer;
@ -45,6 +38,7 @@ public class SocketFactory {
} catch (Exception e){
return false;
}
log.info("socket ReuseAddr status {}", socketServer.isReuseAddr());
log.info("socket 已启动");
return true;
}

View File

@ -8,6 +8,7 @@ import org.aohe.core.result.R;
import org.aohe.core.sane.SaneOperational;
import org.aohe.core.sane.utils.SaneSessionUtils;
import org.aohe.core.swing.NewWindow;
import org.aohe.core.utils.SystemUtils;
import org.java_websocket.WebSocket;
import org.java_websocket.handshake.ClientHandshake;
@ -65,6 +66,14 @@ public class SocketServer extends WebSocketServer {
// websocket
log.error( "System error ", ex );
}
if(ex instanceof java.net.BindException){
//无法绑定接口
NewWindow.setStaticView("端口绑定失败,请检查端口占用,程序退出中...");
new Thread( ()->{
NewWindow.sleep(3000);
System.exit(0);
}).start();
}
}

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!-- 日志存放路径 -->
<property name="log.path" value="${HOME}/Logs/ScanService"/>
<property name="log.path" value="${HOME}/logs/ScanService"/>
<!-- 日志输出格式 -->
<property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n"/>