WebLogic的JCom是基于jintegra
2.3制作的,但是进行了修改。开打Weblogic中Server的JCom协议,就可以使用jintegra了。(如果关闭
报告没有jintegra license)。似乎由于WebLogic修改了jintegra了,Java
Engine利用jintegra生成的Java Com类不能正确的实例化。
(1)使用WebLogic的weblogic.jar,把license文件复制到jintegra/intrinsyc/license中
EngineInitializer.initializeEngine()可以正确执行,接下来 AoInitialize
lAoInitialize = new AoInitialize()就异常
java.lang.RuntimeException: Failed to initialize native code
invocation: null at
com.linar.jintegra.NativeObjRef.init(NativeObjRef.java:373)
at com.linar.jintegra.Dispatch.isNativeMode(Dispatch.java:133)
at com.linar.jintegra.Dispatch.isNativeMode(Dispatch.java:111)
at com.linar.jintegra.Dispatch.createDispatch(Dispatch.java:273)
at com.linar.jintegra.Dispatch.(Dispatch.java:256)
at com.esri.arcgis.system.IAoInitializeProxy.(Unknown Source) at
com.esri.arcgis.system.AoInitialize.(Unknown Source) at
com.esri.arcgis.system.AoInitialize.(Unknown Source)
(2)用arcengine中的jintegra/linar替换weblogic.jar中的jintegra/linar(或者使用arcengi
ne提供的jintegra),运行java正常
一旦在weblogic服务环境中调用
AutomationException: 0x80040154 -
at
com.linar.jintegra.RemoteActivation.readResponse(RemoteActivation.java)
at com.linar.jintegra.Rpc.invoke(Rpc.java:301)
at
com.linar.jintegra.RemOXIDResolver.activate(RemOXIDResolver.java:160)
at com.linar.jintegra.Dispatch.createDispatch(Dispatch.java:293)
at com.linar.jintegra.Dispatch.(Dispatch.java:256)
at com.esri.arcgis.system.IAoInitializeProxy.(Unknown Source) at
com.esri.arcgis.system.AoInitialize.(Unknown Source) at
com.esri.arcgis.system.AoInitialize.(Unknown Source)
如何才能让Java Engine在WebLogic上正确运行呢
关于这个问题,确实存在于Weblogic上,有两种解决方法:
(1) 比较粗鲁的方法是用WinRar把jintegra.xml强行放到weblogic.jar的com/intrinsyc/license/这个package中
(2) 比较文明的方法是:
编辑weblogic的commeEnv.cmd文件(\bea\weblogic81\common\bin\commEnv.cmd),用记事本打开此文件,把下面的语句加到此文件的开头:set AGS_HOME=\ArcGIS
例如:set AGS_HOME=C:\Program Files\ArcGIS
同时,修改文件里面的WEBLOGIC_CLASSPATH变量,修改为:
set WEBLOGIC_CLASSPATH=%AGS_HOME%\java\jintegra.jar;
%JAVA_HOME%\lib\tools.jar;%WL_HOME%\server\lib\weblogic_sp.jar;
%WL_HOME%\server\lib\weblogic.jar;%WL_HOME%\server\lib\ojdbc14.jar
重启Weblogic
简单地讲就是让Jintegra.jar在CLASSPATH中位于weblogic.jar前面,BEA真恶心,都打到weblogic.jar中的东西也不带个试用版的License,把事情弄得这么麻烦。
要面子的人可以使用第二种方法,比较粗鲁的人可以使用第一种方法,呵呵。

浙公网安备 33010602011771号