事情缘由:由于对weblogic不熟悉,在部署项目war包到weblogic域domain后,在新上传war后没有在weblogic控制台,也就是weblogic的AdminServer的console网页在部署栏目点击更新war,而是直接在控制标签下面选择项目war然后点击的停止-启动。实际上weblogic缓存的war文件并没有更新。重新启动项目还是使用的原来的war包。得知可能是由于缓存的原因后,在网上搜索如何删除缓存。搜到的其中一个结果没有标注weblogic的版本,里面在停止weblogic后,删除domain下的servers/AdminServer里面的tmp,cache,data 下所有的文件。在我删除之后问题发生了。
当我在domain的bin目录下使用脚本 nohup ./startWeblogic.sh >> nohup.out & 启动weblogic的时候,报了一串错误,其中第一个错误就是Authentication denied ,,....等等,意思就是权限验证失败了,说白了就是用户密码的问题,然后我使用sh startWeblogic.sh 脚本启动的时候要求填入用户名和密码,即使是填入正确的用户名和密码后还是报错。错误类型差不多。一串错误,报了6行。
然后对于新手的我找了半天终于找到合适的适合weblogic 12c 用户授权错误的解决办法。以下是抄写的对的操作记录
切到weblogic的域domain目录,在这里以domian作为该目录
切换到为weblogic创建的用户
cd ...........domain/
1. source bin/setDomainEnv.sh
2.cd domain/security
3.备份或者直接删除 DefaultAuthenticatorInit.ldift 反正就是要让这个文件消失
mv DefaultAuthenticatorInit.ldift DefaultAuthenticatorInit.ldift.old
4.执行java 在这里参数weblogic和weblogic123是用户和密码,以实际为准,注意后面有个空格和点
java weblogic.security.utils.AdminAccount weblogic weblogic123 .
5.进入管理AdminServer,删除存在的data目录(在我的出问题后启动过几次startWeblogic.sh脚本所以又生成了data目录)
cd /domain/servers/AdminServer
rm -rf data
6. 进入AdminServer下的security,创建一个boot.properties文件(存在的情况下要进行编辑保存),里面有两行数据,分别是用户名和密码 username和passowrd ,这里的用户名和密码要和第4操作步骤的一致。
cd domain/servers/AdminServer/security
vi boot.properties
username=weblogic
password=weblogic123
7.启动weblogic
cd domain/bin
nohup ./startWeblogic.sh >> nohup &