同事解决的,摘抄上来备用。

问题描述:在OAF里调用ESB的服务报错如下:

Error Page  
Exception Details.  
 oracle.apps.fnd.framework.OAException: oracle.jbo.JboException: JBO-29000: Unexpected exception caught: java.lang.IllegalAccessError, msg=tried to access class org.apache.commons.logging.LogFactory$1 from class org.apache.commons.logging.LogFactory
at oracle.apps.fnd.framework.OAException.wrapperException(OAException.java:912)
at oracle.apps.fnd.framework.OAException.wrapperException(OAException.java:888)
at _OAErrorPage._jspService(_OAErrorPage.java:221)
at com.orionserver.http.OrionHttpJspPage.service(OrionHttpJspPage.java:59)
 
分析:由于ESB API里需要引入很多jar包,其中包括:commons-logging.jar,事实上EBS之前在其它地方就存在了这个jar包。
 
在运行程序时追踪它到底使用的是哪个目录下的jar包:
方法1:
String  myclassPath =  URLDecoder.decode(org.apache.commons.logging.LogFactory.class.getProtectionDomain().getCodeSource().getLocation().getFile(),  "UTF-8");
方法2:
 
String className =  org.apache.commons.logging.LogFactory.class.getName().replace('.', '/');
String resource = "/" + className + ".class";
URL url = org.apache.commons.logging.LogFactory.class.getResource(resource);
System.out.println("路径:" + url.getFile());
 
通过查看发现系统调用的$IAS_ORACLE_HOME/ webservices/lib/commons-logging.jar。没有调用我们上传的$JAVA_TOP下的commons-logging.jar.
 
解决办法:
将$IAS_ORACLE_HOME/ webservices/lib/commons-logging.jar改名commons-logging.jar.old(如果目录下没有这个jar包,系统会去加载$JAVA_TOP下的)
将commons-logging.jar复制到$JAVA_TOP(用系统原来的这个包替换我们自己的)
 
这时运行可能会报以下错误:
oracle.apps.fnd.framework.OAException: oracle.jbo.JboException: JBO-29000: Unexpected exception caught: oracle.classloader.util.AnnotatedNoClassDefFoundError, msg=

Missing class: org.apache.commons.logging.Log

Dependent class: oracle.webdb.wsrp.server.CommonsLogAdapter
        Loader: oracle.wsrp:1.0
   .....
   .....
为了防止以上错误需要将本次ESB相关的其它JAR配置到$ORA_CONFIG_HOME/10.1.3/j2ee/oacore/config/server.xml
如:

删除:

<code-source path="/oracle/ebsapp/appldev3/DEV3/apps/tech_st/10.1.3/webservices/lib/commons-logging.jar"/>

添加:

code-source path="/oracle/ebsapp/appldev3/DEV3/apps/apps_st/comn/java/classes/commons-logging.jar"/>

<code-source path="/oracle/ebsapp/appldev3/DEV3/apps/apps_st/comn/java/classes/com.ibm.mq.headers.jar"/>

<code-source path="/oracle/ebsapp/appldev3/DEV3/apps/apps_st/comn/java/classes/com.ibm.mq.jar"/>

即把esb相关jar包都加上。

注意:为了防止AutoConfig后所添加的会丢失,需在模板中将之信息添加到 FND_TOP/admin/template/ FND_TOP/admin/template/ server_xml_1013.tmp

如:

删除行:

<code-source path="%s_weboh_oh%/webservices/lib/commons-logging.jar"/>

添加行:

<code-source path="%s_javatop%/commons-logging.jar"/>

<code-source path="%s_javatop%/com.ibm.mq.commonservices.jar"/>

<code-source path="%s_javatop%/com.ibm.mq.headers.jar"/>

<code-source path="%s_javatop%/com.ibm.mq.jar"/>

.........

........

重启后可正常使用。

最新文章

  1. KVO __ 浅谈
  2. PHP保留2位小数 格式化小数、浮点数
  3. SQL--Having
  4. Windows Server 2012及以上安装IIS的步骤
  5. 【POJ各种模板汇总】(写在逆风省选前)(不断更新中)
  6. 策略模式c++【转】
  7. web_custom_request函数详解
  8. mybatis的增删改查
  9. 数据类型 swift
  10. MySQL CAST与CONVERT 函数的用法
  11. 部署SharePoint解决方式包时遇到的问题
  12. 修改centos环境变量
  13. python初准备:安装easy_install和pip
  14. 常用数据字典---bai
  15. extjs_02_grid(显示本地数据,显示跨域数据)
  16. 安装sysbench遇到找不到库文件的问题
  17. 原来JS是这样的 - 提升, 作用域 与 闭包
  18. cocos 水果机,老Tiger虎机流水灯,博彩大转盘效果
  19. 9ci
  20. linux c 语言之--fseek(),fseeko(),fseeko64()讲解 (转载)

热门文章

  1. POJ 2255. Tree Recovery
  2. 一枚招聘信息——微信支付web前端开发工程师【已招到】
  3. 基于pcDuino-V2的无线视频智能小车 - pcduino上的网络编程
  4. 【51Nod 1244】莫比乌斯函数之和
  5. [LeetCode] Subsets II 子集合之二
  6. Android Studio插件之快速findViewById(butterknife和Android CodeGenerator的使用)
  7. CentOS安装Maven
  8. string常用函数
  9. SQL基础语法(五)
  10. [转]ExtJs入门之filefield:文件上传的配置+结合Ajax完美实现文件上传的asp.net示例