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

问题描述:在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"/>

.........

........

重启后可正常使用。

解决EBS中JAR包冲突的问题的更多相关文章

  1. 共享库方案解决WAS中JAR包冲突

    实现步骤: 1.        准备共享库JAR包 commons-httpclient-3.1.jar httpclient-4.3.3.jar httpcore-4.3.2.jar httpmim ...

  2. 【Maven】【IDEA】在idea中开发web项目,解决maven的jar包冲突的方法

    在idea中开发web项目,解决maven的jar包冲突的方法 第一步: 先对项目进行 clean ,再进行install 第二步: 出现NoSuchMethodException,ClassNotF ...

  3. Maven中 jar包冲突原理与解决办法

    Maven中jar包冲突是开发过程中比较常见而又令人头疼的问题,我们需要知道 jar包冲突的原理,才能更好的去解决jar包冲突的问题.本文将从jar包冲突的原理和解决两个方面阐述Maven中jar包冲 ...

  4. 解决Maven依赖jar包冲突总结

    maven导入jar包中的一些概念:      直接依赖:项目中直接导入的jar包,就是该项目的直接依赖包.      传递依赖:项目中没有直接导入的jar包,可以通过项目直接依赖jar包传递到项目中 ...

  5. 解决Maven的jar包冲突问题

    1. 问题描述 控制台说:无法将 com.zpx.servlet.MyServlet 识别为 javax.servlet.Servlet 2. 问题原因 Maven的一个核心功能就是一键构建,所以Ma ...

  6. Maven中jar包冲突的解决方式

    现象 创建一个maven工程,引入spring-context包. <dependency> <groupId>org.springframework</groupId& ...

  7. Maven中Jar包冲突,不让某个Jar包打入到工程中

     查看工程目前冲突的Jar包,这里以fastjson.jar为例: 打开工程的pom.xml,进入到Dependency Hierarchy页面搜寻目标Jar. 从这里我们可以看到目前工程中有2处导入 ...

  8. 【BUG】websphere找不到类或jar包冲突

    来自:http://liuwei1578.blog.163.com/blog/static/49580364200991572642653/ Jar包冲突问题是在大型Java软件开发中经常遇到的问题, ...

  9. 【maven】排除maven中jar包依赖的解决过程 例子:spring cloud启动zipkin,报错maven依赖jar包冲突 Class path contains multiple SLF4J bindings.

    一直对于maven中解决jar包依赖问题的解决方法纠结不清: 下面这个例子可以说明一个很简单的解决方法: 项目启动报错: Connected to the target VM, address: '1 ...

随机推荐

  1. O(1)效率的表面模糊算法优化。

    很久没有写文章了,主要是最近一段时间没有以前那么多空暇空间,内存和CPU占用率一致都很高,应前几日群里网友的要求,今天发个表面模糊的小程序来找回之前写博客的热情吧. 国内我认为,破解表面模糊的原理的最 ...

  2. word-break|overflow-wrap|word-wrap——CSS英文断句浅析

    ---恢复内容开始--- word-break|overflow-wrap|word-wrap--CSS英文断句浅析 一 问题引入 今天在再次学习 overflow 属性的时候,查看效果时,看到如下结 ...

  3. Shell命令_smem

    监控各个进程.用户的内存使用情况 基础条件:需要安装yum工具 centos 7.0 1.安装smem [root@VM_31_182_centos src]# yum install smem py ...

  4. jQuery 邮箱下拉列表自动补全

    综述 我想大家一定见到过,在某个网站填写邮箱的时候,还没有填写完,就会出现一系列下拉列表,帮你自动补全邮箱的功能.现在我们就用jQuery来实现一下. 博主原创代码,如有代码写的不完善的地方还望大家多 ...

  5. odoo种种

    [精]Odoo 8.0深入浅出开发教程-模块开发基础 http://blog.csdn.net/sunansheng/article/details/50864527 搭建odoo开发调试环境 htt ...

  6. Java学习笔记(三)

    今天主要学习了ant ant概述 ant是一个将软件编译.测试.部署等步骤联系在一起加以自动化的一个工具,大多用于Java环境中的软件开发.在实际软件开发中,有很多地方可以用到ant 开发环境: Sy ...

  7. 多条件分页查找(SQL拼接方法)

    def startTime=params.startTime+" 00:00:00"  def endTime=params.endTime + " 23:59:59&q ...

  8. Eclipse安装scala

    Scala官方提供了三种插件,分别支持Eclipse.NetBeans和Intellij IDEA开发环境.要在Eclipse IDE下安装Scala插件:选择Eclipse的菜单项Help--> ...

  9. div+css:div中图片垂直居中

    div中图片垂直居中 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> &l ...

  10. 《Just for Fun》读后感

    这本书有一个长长的中文名字:<只是为了好玩:Linux之父林纳斯自传>,所以博客标题我就用英文书名了. 读罢此书,不禁想起一位长者的名言:“一个人的成功当然要靠自我奋斗,但也要考虑历史的进 ...