Closed hongwazi closed 6 months ago
打包是在 windows 上打包的吧,然后在 linux 上运行。
目前在windows上打包的话,只会带上windows的dll,没有linux的so。
建议手动在 pom.xml 加一个依赖
rapidocr-onnx-linux-x86_64
目前在windows上打包的话,只会带上windows的dll,没有linux的so。 建议手动在 pom.xml 加一个依赖
rapidocr-onnx-linux-x86_64
我把服务器的jar解压看了下,是有so的,我尝试手动新增依赖试试。
目前在windows上打包的话,只会带上windows的dll,没有linux的so。 建议手动在 pom.xml 加一个依赖
rapidocr-onnx-linux-x86_64
我把服务器的jar解压看了下,是有so的,我尝试手动新增依赖试试。
试了下,不太行。。。。so文件是存在的。
你是在 console 里找日志的而,还是 sl4j 的日志文件里面。 我刚刚在 RapidOcr-Java 的源码里面发现了 e.printStackTrace() 。。。 建议在 console 的日志里面看看,还有没有其他报错。
如果还是不行的话。建议写一个demo代码,还有jar包,可以复现这个问题的
如果还是不行的话。建议写一个demo代码,还有jar包,可以复现这个问题的
[DEBUG] - 当前模型加载器: OnnxModelsLoader [DEBUG] - 将文件models/ch_PP-OCRv3_det_infer.onnx复制到/onnx,加载此文件:false,JVM退出时删除此文件:false [DEBUG] - 将文件models/ch_ppocr_mobile_v2.0_cls_infer.onnx复制到/onnx,加载此文件:false,JVM退出时删除此文件:false [DEBUG] - 将文件models/ch_PP-OCRv3_rec_infer.onnx复制到/onnx,加载此文件:false,JVM退出时删除此文件:false [DEBUG] - 将文件models/ppocr_keys_v1.txt复制到/onnx,加载此文件:false,JVM退出时删除此文件:false [DEBUG] - Failed to complete request: org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.UnsatisfiedLinkError: com.benjaminwan.ocrlibrary.OcrEngine.initLogger(ZZZ)V [ERROR] - Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Handler dispatch failed; nested exception is java.lang.UnsatisfiedLinkError: com.benjaminwan.ocrlibrary.OcrEngine.initLogger(ZZZ)V] with root cause
目前在windows上打包的话,只会带上windows的dll,没有linux的so。 建议手动在 pom.xml 加一个依赖
rapidocr-onnx-linux-x86_64
关于Linux上运行请参考:如何打包 jar 在Linux系统上运行
如果还是不行的话。建议写一个demo代码,还有jar包,可以复现这个问题的
今天在阿里云用docker,跑也是一样的错误,不用debug有加载不到so这个错误。
[DEBUG] - 当前库加载器: OnnxLinuxX8664LibraryLoader OpenJDK 64-Bit Server VM warning: You have loaded library /tmp/ocrJava/onnx/libRapidOcr.so which might have disabled stack guard. The VM will try to fix the stack guard now. It's highly recommended that you fix the library with 'execstack -c ', or link it with '-z noexecstack'. [DEBUG] - Failed to complete request: org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.UnsatisfiedLinkError: /tmp/ocrJava/onnx/libRapidOcr.so: Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /tmp/ocrJava/onnx/libRapidOcr.so) [ERROR] - Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Handler dispatch failed; nested exception is java.lang.UnsatisfiedLinkError: /tmp/ocrJava/onnx/libRapidOcr.so: Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /tmp/ocrJava/onnx/libRapidOcr.so)] with root cause java.lang.UnsatisfiedLinkError: /tmp/ocrJava/onnx/libRapidOcr.so: Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /tmp/ocrJava/onnx/libRapidOcr.so [DEBUG] - 当前模型加载器: OnnxModelsLoader [DEBUG] - 将文件models/ch_PP-OCRv3_det_infer.onnx复制到/onnx,加载此文件:false,JVM退出时删除此文件:false [DEBUG] - 将文件models/ch_ppocr_mobile_v2.0_cls_infer.onnx复制到/onnx,加载此文件:false,JVM退出时删除此文件:false [DEBUG] - 将文件models/ch_PP-OCRv3_rec_infer.onnx复制到/onnx,加载此文件:false,JVM退出时删除此文件:false [DEBUG] - 将文件models/ppocr_keys_v1.txt复制到/onnx,加载此文件:false,JVM退出时删除此文件:false [DEBUG] - Failed to complete request: org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.UnsatisfiedLinkError: com.benjaminwan.ocrlibrary.OcrEngine.initLogger(ZZZ)V [ERROR] - Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Handler dispatch failed; nested exception is java.lang.UnsatisfiedLinkError: com.benjaminwan.ocrlibrary.OcrEngine.initLogger(ZZZ)V] with root cause
请问这个问题解决了吗?能否提供一个demo。
没呢,目前发现的一个问题 rapidOcr 不能在 alpine 上运行,alpine 是一个微型的 linux,里面缺了一些so文件,正好就有 rapidOcr 需要的
没呢,目前发现的一个问题 rapidOcr 不能在 alpine 上运行,alpine 是一个微型的 linux,里面缺了一些so文件,正好就有 rapidOcr 需要的
可以看下这个如何在CentOS7或其他低版本Linux系统上运行。不过微型的 linux估计很难编译,内存不大,可以试试使用SCL安装和配置,就不用自己编译了。