我应该如何尝试修复JBoss中的java.lang.IllegalStateException“已经注册”?

时间:2011-09-26 09:11:19

标签: jboss ejb ear illegalstateexception

我有一个网络应用程序。当我尝试通过Netbeans部署它时,JBoss服务器抛出以下错误:

DEPLOYMENTS IN ERROR:
  Deployment "vfs:///path/to/my/Application.ear" is in error due to the following reason(s): java.lang.IllegalStateException: Container jboss.j2ee:ear=Application.ear,jar=Application-ejb.jar,name=Another,service=EJB3,VMID=583c10bfdbd326ba:71d035f1:132a4c6a8ba:-7ffd + is already registered

    at org.jboss.deployers.plugins.deployers.DeployersImpl.checkComplete(DeployersImpl.java:1370) [:2.2.0.GA]
    at org.jboss.deployers.plugins.deployers.DeployersImpl.checkComplete(DeployersImpl.java:1316) [:2.2.0.GA]
    at org.jboss.deployers.plugins.main.MainDeployerImpl.checkComplete(MainDeployerImpl.java:968) [:2.2.0.GA]
    at org.jboss.system.server.profileservice.deployers.MainDeployerPlugin.checkComplete(MainDeployerPlugin.java:82) [:6.0.0.Final]
    at org.jboss.profileservice.dependency.ProfileControllerContext$DelegateDeployer.checkComplete(ProfileControllerContext.java:138) [:0.2.2]
    at org.jboss.profileservice.plugins.deploy.actions.DeploymentStartAction.doPrepare(DeploymentStartAction.java:104) [:0.2.2]
    at org.jboss.profileservice.management.actions.AbstractTwoPhaseModificationAction.prepare(AbstractTwoPhaseModificationAction.java:101) [:0.2.2]
    at org.jboss.profileservice.management.ModificationSession.prepare(ModificationSession.java:87) [:0.2.2]
    at org.jboss.profileservice.management.AbstractActionController.internalPerfom(AbstractActionController.java:234) [:0.2.2]
    at org.jboss.profileservice.management.AbstractActionController.performWrite(AbstractActionController.java:213) [:0.2.2]
    at org.jboss.profileservice.management.AbstractActionController.perform(AbstractActionController.java:150) [:0.2.2]
    at org.jboss.profileservice.plugins.deploy.AbstractDeployHandler.startDeployments(AbstractDeployHandler.java:168) [:0.2.2]
    at org.jboss.profileservice.management.upload.remoting.DeployHandlerDelegate.startDeployments(DeployHandlerDelegate.java:74) [:6.0.0.Final]
    at org.jboss.profileservice.management.upload.remoting.DeployHandler.invoke(DeployHandler.java:156) [:6.0.0.Final]
    at org.jboss.remoting.ServerInvoker.invoke(ServerInvoker.java:898) [:6.0.0.Final]
    at org.jboss.remoting.transport.socket.ServerThread.completeInvocation(ServerThread.java:791) [:6.0.0.Final]
    at org.jboss.remoting.transport.socket.ServerThread.processInvocation(ServerThread.java:744) [:6.0.0.Final]
    at org.jboss.remoting.transport.socket.ServerThread.dorun(ServerThread.java:548) [:6.0.0.Final]
    at org.jboss.remoting.transport.socket.ServerThread.run(ServerThread.java:234) [:6.0.0.Final]

当我谷歌这个时,我发现了很多结果,所以这种错误似乎经常出现。但是我看到的所有结果都是论坛中的帖子,这些帖子没有显示如何以一般方式修复它。

问题似乎是应用程序已在JBoss中注册。我在哪里可以获得已注册的JBoss应用程序列表?如何取消注册申请(如果这可能有帮助)。

尝试解决此类问题的好方法是什么?

2 个答案:

答案 0 :(得分:2)

您可能在.jar目录/存档中部署了多个类文件,其中一个是错误的地方。如果您已经在unix上展开了爆炸,则可以通过以下命令搜索类文件,以获取上述问题:

find . -name Another -print

删除不需要的文件后重新启动服务器,上述问题应该已经解决/修复/解决。

答案 1 :(得分:0)

从以下路径中

删除 Application.ear:/path/to/my/Application.ear,然后 Delete 由于“ jboss-5.1.0.GA \ server \ default \ deploy”中的EAR,因此JBOSS中可能包含EAR。 删除,位于jboss-5.1.0.GA \ server \ default中的日志,数据,临时文件夹,工作文件夹。

如果您使用的是eclipse,请从JBOSS服务器上卸下EAR并清洁服务器。 在没有EAR的情况下启动服务器,并在服务器启动后直接添加EAR,而无需停止服务器并自行发布。