Avatar of Eleven.Xu

by Eleven.Xu

Featured

欢迎关注OracleSeeker公众平台

九月 29, 2013 in 探索者故事

为更好地方便OracleSeeker关注者之间的沟通,以及更好地构建大家和几位博主之间的桥梁,现开通如下公众平台联系方式,欢迎大家加入/关注:

 

腾讯QQ群:41634312

微信公众帐号:oracleseeker-wx(微信号)/OracleSeeker(公众帐号)

新浪微博:OracleSeeker(http://weibo.com/oracleseeker

 

以后新发博文、消息通告、活动通知等信息均会通过上述公众平台及时发布,再次感谢大家一直以来对于OracleSeeker的关注与支持!

ADF 中显示组件文本空格

九月 28, 2016 in Oracle 融合中间件

ADF组件文本前后空格在页面展示的时候会被过滤掉,解决方法就是使用html转义字符 来代替之,但页面design视图也会把 给显示出来,看起来不是很好看

image

最后把 换为 即可

image

切换到design视图也不会看到转义码

image

实现效果:

不加转义的效果

image

 

转义后的效果:

image

Subsystem DatabaseLessLeasing has failed. Setting server state to Failedd的解决方法

九月 20, 2016 in Oracle 融合中间件

 

早上来公司打算部署代码到测试环境,发现测试环境有台服务器状态为fail,看了下日志有报错,主要错误为:

<BEA-310001> <Subsystem DatabaseLessLeasing has failed. Setting server state to Failed.>

Server health failed. Reason: health of critical service ‘DatabaseLessLeasing’ failed

去SR上简单查了下,没查出原因来,直接重启出问题的服务,问题依旧。检查了下之前部署的单例服务也停止执行了,想到单例服务是依赖于节点管理器来保持通讯的,判断为节点管理器出问题,于是重启节点管理器,然后再次重启服务,问题解决。

adf table filter中实现模糊查询

九月 20, 2016 in Oracle 融合中间件

adf table中默认的filter是以startswith方式进行查询的,即查询方式转换为sql 为like ‘XXX%’,现在有个需求是需要在filter中实现类似VC中contains的查询,即转换sql为 like ‘%XXX%’,实现方式有两种,

1、重写query listener,在bean里边获取输入值,然后拼上% ,当执行查询完毕后,在恢复为原来的没有%的值

2、重写getCriteriaItemClause方法。

下面介绍的是方法2的实现:

  adf框架在执行filter查询时,实际会创建一个默认的VC,然后通过这个VC进行查询来返回结果,而getCriteriaItemClause方法是在VC执行时可进行定制化的一个方法

步骤:

在 ViewObjectImpl里重写getCriteriaItemClause方法:

image

当查询字段为STARTSWITH时,返回定制的SQL语句,即在原来值的前面添加%,主要语句如下:

whereCluase = " upper("+aVCI.getName() + ") like upper(‘%" + varVal + "’) ";

此方法对此VO的所有VC查询的startswith都会生效,如果不希望这样,可细化到针对某个字段进行模糊查询处理,

如果要看具体执行的sql语句,可以通过降低log级别来查看。

其他地方无需进行处理,效果如下图所示:

image

oam单点登录失败,页面报用户账户已锁定或禁用

八月 23, 2016 in Oracle 融合中间件

早上还没到公司,就有用户不断反馈说登录不了门户,报账户已锁定或禁用的错误,第一反应就是ldap那边可能有改动,导致用户认证失败,立马打电话给相关负责人,得到的反馈说ldap最近都没有什么改动,挺奇怪的

0B~O1G@I58WX{H{]M(MORKU

到公司立马看了下日志,发现了点有用的信息:

<oracle.oam.user.identity.provider> <OAMSSA-20086> <Locate user via a specific attribute failed for attr sn and value 00028098>

检查了下ldap的sn和oam这边的匹配关系,也没错的,然后查了下诊断日志,发现了如下异常:

Caused by: javax.naming.NamingException: LDAP response read timed out, timeout used:2000ms.; remaining name ‘dc=domain’

大概意思是ldap读取超时是2秒,如果在2秒内ldap服务器未给oam认证信息,则就会抛出异常,并返回认证失败的结果,

去查了下修改默认超时时间的方法,并重启服务,解决

修改默认超时时间步骤如下,

找到并打开< WLS domain>/config/fmwconfig下的oam-config.xml文件

找到配置的用户身份存储库里节点里添加如下参数:

<Setting Name="LdapReadTimeout" Type="xsd:string">5000</Setting>

即把读取超时时间改为5秒。

重启服务用户再次登录,没问题。

通过wlst查看weblogic明文密码

七月 1, 2016 in Oracle 融合中间件

如果weblogic密码忘了,可通过wlst找回,步骤如下:

运行wlst.sh脚本,执行以下语句:

domain = "/Users/HAND/.jdeveloper/system11.1.1.7.40.64.93/DefaultDomain"
service = weblogic.security.internal.SerializedSystemIni.getEncryptionService(domain)
encryption = weblogic.security.internal.encryption.ClearOrEncryptedService(service)
print encryption.decrypt("{AES}CVyERu+08QL1qCXNHaE6LYemWkWIBmBN5l/uA2SZsP8=")

其中domain值为安装的domain目录,"{AES}CVyERu+08QL1qCXNHaE6LYemWkWIBmBN5l/uA2SZsP8="为$domain/servers/DefaultServer/security/boot.properties里的加了密的密码

执行完毕后即会把解密了的密码打印出来,执行截图如下:

image