When my application is in the same WIFI network. I am able to print tickets on epson printer TM-m30III. As well health check is printing ticked. I configured VPN Server on second router and make port forwarding on first router with internet access. I have possibility to make VPN connection with help of OpenVPN. I am able to ping printer. From health check there is possibility to print ticket. So looks like everything working properly, but when I am runing my spring application, am not able to print message, looks like I have option to connect to that printer but when execute print function there is following stack trace:
Exception in thread "main" java.lang.reflect.InvocationTargetException at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:568) at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:49) at org.springframework.boot.loader.Launcher.launch(Launcher.java:108) at org.springframework.boot.loader.Launcher.launch(Launcher.java:58) at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:65) Caused by: java.lang.RuntimeException: jpos.JposException: ASB had not been acquired. at com.gdma.printer.service.PrinterService.printMessage(PrinterService.java:83) at com.gdma.printer.PrinterServiceApplication.main(PrinterServiceApplication.java:31) ... 8 more Caused by: jpos.JposException: ASB had not been acquired. at jp.co.epson.upos.core.v1_14_0001T1.pntr.CommonUPOSExceptionCreator.createJposException(CommonUPOSExceptionCreator.java:138) at jp.co.epson.upos.core.v1_14_0001T1.pntr.CommonUPOSExceptionCreator.createJposException(CommonUPOSExceptionCreator.java:60) at jp.co.epson.upos.core.v1_14_0001T1.pntr.io.CommonOutputToPrinter.checkError(CommonOutputToPrinter.java:771) at jp.co.epson.upos.core.v1_14_0001T1.pntr.io.CommonOutputToPrinter.outputToPrinter(CommonOutputToPrinter.java:284) at jp.co.epson.upos.core.v1_14_0001T1.pntr.io.OutputToPrinterForProcessID.outputToPrinter(OutputToPrinterForProcessID.java:105) at jp.co.epson.upos.core.v1_14_0001T1.pntr.CommonPrinterService.sendOutputData(CommonPrinterService.java:11310) at jp.co.epson.upos.core.v1_14_0001T1.pntr.CommonPrinterService.sendOutputData(CommonPrinterService.java:11198) at jp.co.epson.upos.core.v1_14_0001T1.pntr.CommonPrinterService.executeNormalPrint(CommonPrinterService.java:8423) at jp.co.epson.upos.core.v1_14_0001T1.pntr.CommonPrinterService.printNormal(CommonPrinterService.java:7993) at jp.co.epson.upos.generic.pntr.genericService.printNormal(genericService.java:3354) at jpos.POSPrinter.printNormal(Unknown Source) at com.gdma.printer.service.PrinterService.printMessage(PrinterService.java:47)
I am guessing that there is some missing configuration between java app and printer because SetupPOS is printing propellery health check tickets.