一般来说,使用weblogic有时候会因为各种原因强制中断了对应的java进程,最后的结果就是,在工作目录下会抛出lock 文件,下一次启动的时候回提示有错误。其实本地开发的时候根本不会在乎,之前遇到这样的问题找了半圈,其实提示对应的解决方法从关键字来看关系不大,最后Google别人的解决方法。

https://crazyritu.wordpress.com/2014/06/04/configuration-error-while-starting-node-manager-weblogic-10-3-6/

Error shown:WARNING: Configuration error while reading domain directory: C:\Oracle\user_projects\domains\base_domain java.io.IOException: Invalid state file format. State file contents:

at weblogic.nodemanager.server.NMServer.initDomains(NMServer.java:243)

at weblogic.nodemanager.server.NMServer.fetchDomainsMap(NMServer.java:216)

at weblogic.nodemanager.server.NMServer.start(NMServer.java:200)

at weblogic.nodemanager.server.NMServer.main(NMServer.java:392)

Solution:

1. Make sure that you have deleted all the .lok, .state and .lck files from your domain in each managed servers.

2. Check Admin URL in “startup.properties” files of each managed server under $domain/server/$managedServer/data/nodemanager

但是如果启动了很多个实例,那么就会有很多的lock 文件需要删除

其实不用每次手动启动的,可以在启动脚本里面加上删除的命令,这样就省事了。

del /f /s D:\Oracle\Middleware\user_projects\domains\your_domain\servers\*.lck
del /f /s D:\Oracle\Middleware\user_projects\domains\your_domain\servers\*.state
del /f /s D:\Oracle\Middleware\user_projects\domains\your_domain\servers\*.lok

start D:\Oracle\Middleware\user_projects\domains\your_domain\bin\startWebLogic.cmd
start D:\Oracle\Middleware\wlserver_10.3\server\bin\startNodeManager.cmd

把这个文件保存成一个bat,之后就直接启动这个bat就可以了。