背景

某项目中间件环境部署应用时出现错误,错误日志如下:

<2020-12-7 下午04时04分48秒 CST> <Error> <Management> <BEA-141244> <Schema validation errors while parsing config/config.xml - Expected elements 'staging-mode@http://xmlns.oracle.com/weblogic/domain alt-descriptor-path@http://xmlns.oracle.com/weblogic/domain alt-wls-descriptor-path@http://xmlns.oracle.com/weblogic/domain application-identifier@http://xmlns.oracle.com/weblogic/domain application-name@http://xmlns.oracle.com/weblogic/domain' instead of 'cache-in-app-directory@http://xmlns.oracle.com/weblogic/domain' here in element app-deployment@http://xmlns.oracle.com/weblogic/domain> 
Caused By: java.io.IOException: [Management:141245]Schema Validation Error in config/config.xml see log for details. Schema validation can be disabled by starting the server with the command line option: -Dweblogic.configuration.schemaValidationEnabled=false
	at weblogic.management.provider.internal.EditAccessImpl.checkErrors(EditAccessImpl.java:2340)
	at weblogic.management.provider.internal.RuntimeAccessDeploymentReceiverService.handleConfigTreeLoad(RuntimeAccessDeploymentReceiverService.java:968)
	at weblogic.management.provider.internal.RuntimeAccessDeploymentReceiverService.updateDeploymentContext(RuntimeAccessDeploymentReceiverService.java:599)
	at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.doUpdateDeploymentContextCallback(DeploymentReceiverCallbackDeliverer.java:147)
	at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.updateDeploymentContext(DeploymentReceiverCallbackDeliverer.java:28)
	Truncated. see log file for complete stacktrace

Read the rest of this entry

背景

某项目在weblogic升级失败后进行回滚,回滚后环境接口无法访问,报500异常,接口为BPM Service客户端程序,错误如下:

SEVERE: <.> getTokenType: invalid token: e0FFU31EbGdrK0IxSlV1WkFMM0doc2dlMUJxdWpjQmEza0tzZGNncnlOSUlLdnFaT0QrY1pyanBBa0d0MTdURHhqbmx4SWJ1d3hvMGsxNmZyaUJFcDIvbGd3MkFWUjRCUXVZdFhvemcxZmprQm83akFoS3pMSWVxeG1DT213VkJpUW5rUWhzQ3lVSmRUT204dXdUUmI2bnlsdEg4bTducTFBWVd0eDVKWjdVSHRiRndsRkRxcjQrZnBVKzBoV0lkc1lRZXQ2VlZkSDRtNUp0V05LYW1SdGNMNWZOUE0rVTVtaEhYYWU5czg4c1VLNHIvenFDN05GTXFieGl6YXJubkd6ZHhTSEZRcUxiRTlmK3ZaNzlLMVlCNExmbkJhL0pSY2hvanlHZ0ZyQWJLdVhJbz0=
SEVERE: <.> Invalid Token Error in Verification Service.
Invalid Token Error in Verification Service. Received invalid token in getTokenType.
Verify that correct token is passed.
ORABPEL-30503
Invalid Token Error in Verification Service.
Invalid Token Error in Verification Service. Received invalid token in getTokenType.
Verify that correct token is passed.
	at oracle.bpel.services.workflow.verification.impl.Token.getTokenType(Token.java:545)
	at oracle.bpel.services.workflow.verification.impl.Token.isSameValue(Token.java:314)
	at oracle.bpel.services.workflow.verification.impl.VerificationService.isInternalWorkflowContext(VerificationService.java:689)

Read the rest of this entry

,

背景

我的强项是后端开发,很少涉及前端开发,一个很重要的原因是前端布局太妖,要实现一个居中需要各种奇技淫巧,而且每个浏览器实现还不一样,前端的布局就像谜一样,你都不知道为啥就可以了,也不知道为啥就不行。直到Flex布局的出现前端的布局终于有点章法了,第一次接触Flex布局是从阮一峰的博客Flex 布局教程,阮一峰写博客的能力确实厉害,通俗易懂又直击要害,建议想要入门Flex都去拜读一下。那么写这篇文章的目的是从一个后端的角度去看Flex布局,如果你看完阮一峰的博客后仍然有一些疑问,那么可以读一读这篇文章。

Flex基本概念

  • 容器和项目

Flex布局包括容器(flex container)和项目(flex item),比如下面这段代码

<div class="content">
    <div class="block"></div>
    <div class="block"></div>
</div>

content这个div就是容器,block的div就是项目

  • 两轴两个方向

Flex核心就是靠两根轴进行布局的调整,其实就是水平和垂直两个方向,只不过在Flex中水平方向称为主轴,垂直方向称为交叉轴,每个方向各有start center end三个方位,其实就是左边中间和右边三个方位。

Read the rest of this entry

介绍

grapesjs是一个开源的网页设计器,你可以理解为在线低配版Dreamweaver,和Dreamweaver不同的是,grapesjs可以灵活的进行二次开发,实际上grapesjs只是构建了设计器最基础的部分,没有二次开发grapesjs也没有意义,如果你恰好有以下需求,那么grapesjs将非常适合你
  • 页面在线设计编辑,并且能自定义组件
  • 可以导出源码
  • 提供属性配置
  • 灵活的二次开发机制

使用

grapesjs使用方法很简单,如果是html页面,可以直接通过导入js和css即可

Read the rest of this entry

背景

某项目接口采用jersey开发,部署在weblogic上,升级JDK至jdk1.7.0_191后所有接口无法访问,返回404 Not Found。

测试

首先怀疑是JDK升级后部分java类初始化失败导致404,但重启服务器,重启应用,重新部署应用都未报错,说明应用启动是成功的,一开始也没怀疑到jersey框架上,因此走了很多弯路,这里就不赘述。到后面所有的猜测都验证后,还是没有解决,于是决定本地用jersey写一个最简单的接口部署上去看下结果。

  • 接口部署到线上weblogic访问404
  • 接口部署到本地tomcat,访问正常
  • 接口部署到其他weblogic环境,访问正常,jdk版本为jdk1.7.0_80
  • 正常的环境将jdk切换至jdk1.8.0_171,访问404

基于以上实验可以看出,**jersey在weblogic环境下,高版本的jdk会报404,tomcat没有这问题**,确定了问题后排查方向就比较清楚,就是搞清楚为什么高版本的jdk会报错。

Read the rest of this entry

背景

相信做过oracle中间件的同学肯定都会遇到这样的情况

  • 忘记weblogic管理员密码
  • 忘记数据库schema密码

项目就像流水一样永不停息,每个项目又有多套环境,每个环境又有超级多的服务器,就产生了超级多的密码,程序员又懒又自负,自以为能记住所有密码,结果往往是悲剧的,幸运的是weblogic帮我们记住了所有的密码,虽然是加密的,但由于weblogic本身也要使用密码进行验证,因此加密必然是可逆的,这篇文档介绍如何进行解密。

在weblogic后台配置文件中,有很多是包含密码的,比如boot.properties,config.xml等,这些密码都被加密过,你看到的形式为{AES}xxxxxx都是密码。

Read the rest of this entry

背景

客户内网环境需要通过vpn连接,vpn只有windows版本,我工作用的都是mac,导致每次要连个vpn都得开虚拟机,而且很多开发软件在windows中没有替代品,导致开发效率很低,总之就是各种不方便,后面才知道windows自带端口转发工具,试用了下效果还不错。

实现

比如对方系统地址http://192.168.25.1:7001,你在虚拟机里设置端口转发到该系统后,就可以使用虚拟机地址进行访问。用管理员打开命令行窗口,输入以下命令

Read the rest of this entry

补丁下载

oracle每个季度都会更新一次补丁,可以从这里下载oracle产品每个季度的补丁,点击去后,在左边找到你的产品,点击右边进入补丁下载

补丁下载需要登录oracle support,你必须先注册一个support账号,进入后在产品列表找到产品

Read the rest of this entry

介绍

Oracle Identity Manager简称OIM是Oracle公司开发企业身份管理应用,主要是负责企业用户信息,组织信息的同步,依靠强大的连接器,OIM几乎可以从任何系统中同步用户,并且同步至任何系统,并且这些工作都是通过配置完成,要在异构系统间中做到配置式的同步,需要对整个系统进行高度抽象,也正因此,OIM有众多新概念,如果不理解这些概念的作用,很难灵活的使用OIM。本篇文章将OIM中常用的概念进行整理,包括以下内容
  • 连接器(Connector)
  • 适配器(Adapter)
  • IT资源(IT Resource)
  • 表单(Form)
  • 流程(Process)
  • 资源对象(Resource Object)
  • 预配(Prepopulate)

Read the rest of this entry

背景

今年至少已经有3个人问了我同样的问题osb很无聊,不能写代码,没有写代码的快感,他们的疑惑我也是能理解,作为一个程序员,做开发不写代码就像厨师炒菜不用锅铲一样,很容易产生来自灵魂的拷问,“我是谁,我在哪,我在干嘛”。先说结论,osb是我从业以来最喜欢的产品,也是我觉得做的最牛逼的产品,这个想法至今没有改变过。我疑惑的是,为什么我们当初学osb的时候没有人有这疑问?

国庆期间陪老婆去散步,看到一排竹子,我跟老婆说,小时候我们很喜欢用竹做枪,野果做子弹,现在已经没人玩了,老婆说,现在小孩有手机,有平板,有电脑,谁还会去玩这个。这个有点像我们当年做开发,没有容器,没有微服务,没有spring boot,所有的开发都得从最基础的做起,很多接口都是直接用servlet开发,要是有人跟我们说有个东西能够不用写代码就可以写接口,肯定是不信的,但osb就是这么个东西,所以当年对osb格外的喜欢。现在程序员,不管前端还是后端都有各种各样的框架支持,一句话,都是给惯的。

那么osb过时了吗?并没有。

Read the rest of this entry