在myeclipse中用ejb项目中的build.xml布署到weblogic的base_domain域中的autodeploy文件夹后,如果想要删除部署的ejb,不能在autodeplay文件夹下直接删除产生的jar包,如果直接删除jar包在myeclipse中启动weblogic的时候会报如下错误,并且在weblogic的管理界面中部署页面也删不掉ejb
<2012-4-7 下午11时07分49秒 CST> <Info> <WebLogicServer> <BEA-000377> <Starting WebLogic Server with Java HotSpot(TM) Client VM Version 19.0-b09 from Sun Microsystems Inc.>
<2012-4-7 下午11时07分49秒 CST> <Info> <Management> <BEA-141107> <Version: WebLogic Server 10.3.3.0 Fri Apr 9 00:05:28 PDT 2010 1321401 >
<2012-4-7 下午11时07分49秒 CST> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to STARTING>
<2012-4-7 下午11时07分49秒 CST> <Info> <WorkManager> <BEA-002900> <Initializing self-tuning thread pool>
<2012-4-7 下午11时07分50秒 CST> <Notice> <LoggingService> <BEA-320400> <The log file D:\Oracle\Middleware\user_projects\domains\base_domain\servers\AdminServer\logs\AdminServer.log will be rotated. Reopen the log file if tailing has stopped. This can happen on some platforms like Windows.>
<2012-4-7 下午11时07分50秒 CST> <Notice> <LoggingService> <BEA-320401> <The log file has been rotated to D:\Oracle\Middleware\user_projects\domains\base_domain\servers\AdminServer\logs\AdminServer.log00033. Log messages will continue to be logged in D:\Oracle\Middleware\user_projects\domains\base_domain\servers\AdminServer\logs\AdminServer.log.>
<2012-4-7 下午11时07分50秒 CST> <Notice> <Log Management> <BEA-170019> <The server log file D:\Oracle\Middleware\user_projects\domains\base_domain\servers\AdminServer\logs\AdminServer.log is opened. All server side log events will be written to this file.>
<2012-4-7 下午11时07分51秒 CST> <Notice> <Security> <BEA-090082> <Security initializing using security realm myrealm.>
<2012-4-7 下午11时07分52秒 CST> <Critical> <WebLogicServer> <BEA-000386> <Server subsystem failed. Reason: java.lang.NullPointerException
java.lang.NullPointerException
at weblogic.deploy.internal.adminserver.DeploymentManager.getPendingDeploymentsForEditLockOwner(DeploymentManager.java:360)
at weblogic.management.provider.internal.EditAccessImpl.removePendingUpdateTasks(EditAccessImpl.java:560)
at weblogic.management.provider.internal.EditAccessImpl.undoUnsavedChanges(EditAccessImpl.java:555)
at weblogic.management.provider.internal.EditAccessImpl.acquireLock(EditAccessImpl.java:264)
at weblogic.management.provider.internal.EditAccessImpl.startEdit(EditAccessImpl.java:289)
Truncated. see log file for complete stacktrace
>
<2012-4-7 下午11时07分52秒 CST> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to FAILED>
<2012-4-7 下午11时07分52秒 CST> <Error> <WebLogicServer> <BEA-000383> <A critical service failed. The server will shut itself down>
<2012-4-7 下午11时07分52秒 CST> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to FORCE_SHUTTING_DOWN>
出现这种情况的处理方法是
1.在myeclipse中ejb项目的build.xml文件中使用deploy重新发布一下,只要程序没问题不会出错,确保布署成功,然后在myeclipse中启动weblogic。
2.登录weblogic管理器,进入布署页面,选中要删除的ejb,在前面打勾,然后选择停止下面的立即强制停止菜单项,使状态由“活动”变成“准备就绪”。
3.然后再在myeclipse中ejb项目的build.xml文件中使用undeploy,看Console中不出错。这时候再在weblogic中刷新部署页面,ejb就删除掉了。
如果上面哪一步有错误,在myeclipse中重启一下weblogic服务,再重新按步骤执行一下就可以。
上面三步才是发布,删除ejb的正确步骤。
--转自