博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Oracle BIEE11G --- ADF_IFRAME
阅读量:7218 次
发布时间:2019-06-29

本文共 2944 字,大约阅读时间需要 9 分钟。

   最近项目上有些变化,部门工作人员开始着手于BIEE11G界面的定制,首先开始的是报表和图形的显示部分,目前由于此部分内容已经加入了IPAD等职能终端实现,当时使用的JDEVELOPER 开发的ADF 效果不错,延迟也没有多少。现在大家都炒作响应式设计,也想把ADF 的application用在WEB站点上。

   遇到了点问题,在FLEX或者HTML中调用IFRAME控件时,

得到的HTTP请求报错如下,很值得研究:

1:  77:07:27.035    0.041    623    174
2:  GET
3:  (Aborted)    text/html (NS_BINDING_ABORTED)
4:  http://10.14.1.158:7101/Application7-ViewController-context-root/faces/jdczs.jspx?_adf.ctrl-state=1bb3lb5c3y_3&_afrRedirect=74571037281509

报的错是NS_BINDING_ABORTED,服务器主动拒绝。

        再分析HTTP头,

1:  (Status-Line)    HTTP/1.1 200 OK
2:  Date    Thu, 25 Apr 2013 07:05:41 GMT
3:  Transfer-Encoding    chunked
4:  Content-Type    text/html;charset=UTF-8
5:  X-ORACLE-DMS-ECID    f7a7cc060a4c8848:-6d134d01:13e3ffff60e:-8000-0000000000001c65
6:  X-Powered-By    Servlet/2.5 JSP/2.1, JSF/2.0
7:  X-Frame-Options    sameorigin

 

        值得注意的X-Frame-Option ,很显然由于I-Frame嵌入的问题

这是我定位问题的思路:

1. 部署ADF的WEBLOG进行了域控制,必须在同一站点进行IFRAME的嵌套。

沿着这个思路下去的解决方案必然是:

在同域的WEBLOGIC中再起个站点,进行桥接中转。 ---测试,失败

使用非IFRAME空间调用ADF  --- 这个肯定能解决问题,但是实施起来难度较大。

 

2.是否 OBIEE中进行HTTP请求的控制?

翻阅文档

找到解决问题的办法

默认情况下,出于安全的考虑(clickjacking),BIEE 11g是不能直接嵌入iframe中的,

会提示“OBIEE content can not be displayed in the IFrame”

如果有这方面的需要,我们需要进行如下配置:

修改MV_HOME/instances/instance1/config/OracleBIPresentationServicesComponent/coreapplication_obips1目录下的instanceconfig.xml

在Security标签内加入<InIFrameRenderingMode>allow</InIFrameRenderingMode>

如下图所示:

1:  
2:  
allow
3:  
4:  
30
5:  
6:   
7:  
allow
8:  
9:  
30
10:  

注:InIFrameRenderingMode有三种取值,分别是prohibit、sameDomainOnly、allow  大家可以根据自己的实际需要选择对应的值

 

修改MV_HOME/Oracle_BI1/bifoundation/web/app/WEB-INF 目录下的web.xml

添加如下内容:

1:  
2:    
oracle.adf.view.rich.security.FRAME_BUSTING
3:    
never
4:  

最终如下图所示:

1:  
2:   
3:  
RelatedContent
4:  
/RelatedContent
5:  
6:   
7:  
8:  
oracle.adf.view.rich.security.FRAME_BUSTING
9:  
never
10:  
11:   
12:  
13:  
CLIENT-CERT
14:  
15:     
16:        
RelatedContent
17:        
/RelatedContent
18:     
19:   
20:  
21:    
oracle.adf.view.rich.security.FRAME_BUSTING
22:    
never
23:  
24:   
25:     
26:      
CLIENT-CERT
27:     

修改完之后重启BI服务即可,如果还不行,请清除浏览器缓存。还是不行。

做了一个小测试,运行了一个站点

View Code
1  2  3   4    New Document  5     
6 7 8

Hello Iframe

9 10 11

 ok 页面可以正常显示,说明BIEE的界面是可以嵌入进去的。现在把问题的重点定位在ADF Project中。

其中有个配置的值:

View Code
1   
2
Add by Jerry
3
oracle.adf.view.rich.security.FRAME_BUSTING
4
samorgin
5

这个配置项同BIEE中的意义基本相同,按照文档修改为

View Code
1   
2
Add by Jerry
3
oracle.adf.view.rich.security.FRAME_BUSTING
4
samorgin
5

 

再进行测试,OK ,大功告成。

 

 

 

 

 

 

 

 

转载地址:http://zptym.baihongyu.com/

你可能感兴趣的文章
从零开始学习PYTHON3讲义(十一)计算器升级啦
查看>>
从零开始学习PYTHON3讲义(三)写第一个程序
查看>>
WebGis设计模式
查看>>
cocos2dx ScrollView 测试一 触摸事件优先级和自动调整
查看>>
django 使用mysql数据库的流程
查看>>
Android系统移植与调试之------->如何修改Android设备的默认休眠时间
查看>>
我的Android进阶之旅------>Java文件大小转换工具类 (B,KB,MB,GB,TB,PB之间的大小转换)...
查看>>
uboot 传递的参数 mtdparts
查看>>
六种排序算法C语言版(上)
查看>>
292. Nim Game(easy)
查看>>
ERROR 1786 (HY000)
查看>>
Kubernetes 学习7 Pod控制器应用进阶2
查看>>
Python字符串相加以及字符串格式化
查看>>
11.08 轮换行值
查看>>
AIX lsof 命令
查看>>
微信小程序个人项目(node.js+koa2+koa-router+middleware+mysql+node-mysql-promise+axios)
查看>>
C#温故而知新学习系列之面向对象编程—类的数据成员(三)
查看>>
列表字典推导式
查看>>
HDOJ 1228 A+B(map水题)
查看>>
intellij IDEA 导入包的方法·
查看>>