我正在尝试使用Windows中的jPOS进行打印,并获得以下异常:
jpos.JposException: Could not connect to service with logicalName = Printer: Exception.message=jp.co.epson.uposcommon.util.EpsonJposServiceInstanceFactory
at jpos.loader.simple.SimpleServiceConnection.connect(Unknown Source)
at jpos.BaseJposControl.open(Unknown Source)
...
更多信息:
我正在尝试将我们的Java打印软件从Linux(它运行良好)移植到Windows。我们使用的是Epson TM-T70收据打印机。我安装了常规打印机驱动程序,并立即使用记事本打印东西。
现在我安装了Epson JavaPoS ADK。我使用ADK附带的SetupPOS应用程序配置了打印机。我使用逻辑设备名称“Printer”为我的打印机创建了一个新配置。我保存了所有内容,并创建了jpos.xml文件。
当我尝试运行我们的应用程序并执行printer.open(“Printer”),其中“Printer”是逻辑设备名称而printer是POSPrinter实例时,我得到上面的例外。
我知道我正在使用生成的jpos.xml文件,因为如果我提供一个随机的逻辑设备名称,我会得到一个不同的例外。
我猜问题是在SetupPOS的端口配置中。打印机通过USB连接。我尝试了Windows打印机属性(ESDPRT001)中出现的端口名称,我甚至尝试了COM1到COM10的所有组合,但没有任何效果。
有人有什么建议吗?谢谢!
答案 0 :(得分:2)
Epson JavaPOS ADK的安装例程......啊......让我说:“非常特别”。因此,安装会在JRE的ext / lib目录( !!! )中复制一些jar文件(如epsonupos.jar,jposXXX.jar等)(必须在安装JavaPOS时选择)驱动程序)。如果我们安装另一个JavaPOS版本,切换到另一个JRE / JDK,使用其他不是来自Epson或其他的打印机,我们也有一些非常奇怪的效果。
可能是你的问题是不同的jar版本或JDK或其他东西之间的任何冲突......
修改强>
由于ADK版本1.11.anywhat(不确定,但我的意思是1.11.9),您可以指定存储其他jar文件的路径。但是:某些DLL也将存储在当前最新的ADK版本(1.13.17)中,存储在所选JRE的bin目录中。可能这也是使用过的jar和使用过的DLL或其他东西的不同版本之间的冲突......
答案 1 :(得分:0)
我解决了这个问题,将以下库路径添加到java项目中:
C:\ Program Files \ EPSON \ JavaPOS \ lib
C:\ Program Files \ EPSON \ JavaPOS \ SetupPOS
答案 2 :(得分:0)
在Debian 9 Linux上,使用javaPOS 1.14.6解决了LD_LIBRARY_PATH:
$ export LD_LIBRARY_PATH = /opt/EpsonJavaPOS/bin && javapos_application_to_run
在Windows 10副本上:
BluetoothIO.DLL
epsonjpos.dll
EthernetIO31.DLL
SerialIO31.dll
USBIO31.DLL
来自C:\Program Files\EPSON\JavaPOS\bin\
到C:\Program Files\Java\jre1.8.0.171\bin\
运行javaPOS应用程序。
答案 3 :(得分:0)
我知道回复的时间有点晚,但可能会帮助遇到类似问题的其他人。 就我而言,我正在使用javapos与数据逻辑扫描仪进行交互,并且收到以下消息: 错误:无法打开DL-Magellan-9400i-USB-OEM-Scanner-Scale的配置文件jpos.JposException:无法使用逻辑名称= DL-Magellan-9400i-USB-OEM-Scanner-Scale连接到服务: Exception.message = com.dls.jpos.service.DLSScannerInstanceFactory
我开始查看从datalogic下载的javapos软件,发现有一个jar文件未包含在我的类路径(JavaPOS.jar)中,这就是为什么我遇到此错误,请看一下netx图像:
如果有人遇到相同的问题,我想分享一下。 (花了我将近2天的时间才能完成!!)