当使用nexus私服管理sapjco3.jar的时候,因为maven必须要指定版本的原因,必须要加上版本号,但是
当sapjco初始化环境的时候在代码里硬编码了要验证jar包的全名就出现了"java.lang.ExceptionInInitializerError: JCo initialization failed with java.lang.ExceptionInInitializerError: Illegal JCo archive "sapjco-3.0.11.jar". It is not allowed to rename or repackage the original archive "sapjco3.jar"
的错误。
解决办法参考:https://sourceforge.net/p/hibersap/discussion/813164/thread/52913577/
说明如下:
The check in JCo allows the jar to either be named "sapjco3.jar", to start with "com.sap.conn.jco", or to be named "sapjco3_IDE.jar". So for now I deploy the JCo jar to the Maven repository with a Maven artifactId of "com.sap.conn.jco.sapjco3" and it works.
maven的依赖使用如下写法
<dependency>
<groupId>com.sap</groupId>
<artifactId>com.sap.conn.jco.sapjco3</artifactId>
<version>IDE</version>
</dependency>
同样的,nexus私服也要按照这种方式去管理sapjco的jar包
PS:
no sapjco3 in java.library.path异常处理办法
已经把sapjcp3.jar导入到项目中;把sapjco.dll放到system32下了; 本地的写的测试程序能够成功连上SAP,一放到WEB环境下就不行了,抛出这个异常。 no sapjco3 in java.library.path,经排查
sapjco.dll必须放到TOMCAT当前使用的JRE的BIN目录中,我TOMCAT配置的JRE目录是 C:\Genuitec\Common\binary\com.sun.java.jdk.win32.x86_