Java Web application + SAP 연동시, 오류 관련의 건
error note2015. 6. 8. 19:00
Java Web application + SAP 연동시, 오류 관련의 건
1. 오류발생
Java 기반 Webapplication 과 , SAP 연동시 단순히 Java Webapplication 의 빌드 및 메이븐 package가 성공했다고,
의존성 문제에 대해 검증이 되는것이 아님.
구동중, 아래의 오류 출현
java.lang.UnsatisfiedLinkError: no sapjco3 in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1878)
at java.lang.Runtime.loadLibrary0(Runtime.java:849)
at java.lang.System.loadLibrary(System.java:1087)
at com.sap.conn.jco.rt.DefaultJCoRuntime.loadLibrary(DefaultJCoRuntime.java:444)
at com.sap.conn.jco.rt.DefaultJCoRuntime.registerNativeMethods(DefaultJCoRuntime.java:310)
at com.sap.conn.jco.rt.JCoRuntime.registerNatives(JCoRuntime.java:1030)
at com.sap.conn.rfc.driver.CpicDriver.<clinit>(CpicDriver.java:956)
at com.sap.conn.rfc.engine.DefaultRfcRuntime.getVersion(DefaultRfcRuntime.java:43)
at com.sap.conn.rfc.api.RfcApi.RfcGetVersion(RfcApi.java:261)
at com.sap.conn.jco.rt.MiddlewareJavaRfc.<clinit>(MiddlewareJavaRfc.java:200)
at com.sap.conn.jco.rt.DefaultJCoRuntime.initialize(DefaultJCoRuntime.java:75)
at com.sap.conn.jco.rt.JCoRuntimeFactory.<clinit>(JCoRuntimeFactory.java:23)
at com.sap.conn.jco.rt.RuntimeEnvironment.<init>(RuntimeEnvironment.java:43)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
at java.lang.Class.newInstance(Class.java:374)
at com.sap.conn.jco.ext.Environment.getInstance(Environment.java:155)
at com.sap.conn.jco.ext.Environment.isDestinationDataProviderRegistered(Environment.java:401)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1878)
at java.lang.Runtime.loadLibrary0(Runtime.java:849)
at java.lang.System.loadLibrary(System.java:1087)
at com.sap.conn.jco.rt.DefaultJCoRuntime.loadLibrary(DefaultJCoRuntime.java:444)
at com.sap.conn.jco.rt.DefaultJCoRuntime.registerNativeMethods(DefaultJCoRuntime.java:310)
at com.sap.conn.jco.rt.JCoRuntime.registerNatives(JCoRuntime.java:1030)
at com.sap.conn.rfc.driver.CpicDriver.<clinit>(CpicDriver.java:956)
at com.sap.conn.rfc.engine.DefaultRfcRuntime.getVersion(DefaultRfcRuntime.java:43)
at com.sap.conn.rfc.api.RfcApi.RfcGetVersion(RfcApi.java:261)
at com.sap.conn.jco.rt.MiddlewareJavaRfc.<clinit>(MiddlewareJavaRfc.java:200)
at com.sap.conn.jco.rt.DefaultJCoRuntime.initialize(DefaultJCoRuntime.java:75)
at com.sap.conn.jco.rt.JCoRuntimeFactory.<clinit>(JCoRuntimeFactory.java:23)
at com.sap.conn.jco.rt.RuntimeEnvironment.<init>(RuntimeEnvironment.java:43)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
at java.lang.Class.newInstance(Class.java:374)
at com.sap.conn.jco.ext.Environment.getInstance(Environment.java:155)
at com.sap.conn.jco.ext.Environment.isDestinationDataProviderRegistered(Environment.java:401)
Enviorment.java 역컴파일 하여, Factory 패턴으로 참조하고 있는,
com.sap.vmc.core.SystemInfo 클래스를 찾지 못해 발생함을 확인
2. 오류조치
java path, 환경변수 다 확인하였으나, 설정된 곳에서는 해당 Package 참조하는 곳이 없음을 확인
최종적으로는 함께 첨부된 sapjco3.dll 에서 캡슐화하여, 포함하고 있을 것으로 예상.
해당 dll을 C:\Windows\System32 로 복사하여, WAS 재기동하니 정상 구동함. (OS bit 에 따라 참조 dll이 틀림)
3. 덧붙이는 글
개인적으로 NT 쪽 프로그래밍 경험이 없어, dll 의 등록, 역활, 호출, 실행절차에 대해 알지 못함.
NT 설치 솔루션 연동시에는 위의 사항 고려하여, 연관 dll 의 등록 여부, 검증여부를 확인할수 있어야 할것으로 예상.
첨부한 프로그램은 dll 이상유무를 확인할 수 있는 프로그램.
'error note' 카테고리의 다른 글
[error note] weblogic request json mapper error (0) | 2013.07.30 |
---|