Thursday, March 25, 2010

WebLogic error explained: "DescriptorException... Unmarshaller failed... MarshallerFactory... BeanAlreadyExistsException"

If you get the following error when trying to deploy an EAR to WebLogic (11g version 10.3.2):
Unable to load descriptor... The error is weblogic.descriptor.DescriptorException: Unmarshaller failed
at weblogic.descriptor.internal.MarshallerFactory$1.createDescriptor(MarshallerFactory.java:161)
...
Caused by: com.bea.xml.XmlException: weblogic.descriptor.BeanAlreadyExistsException: Bean already exists: "weblogic.j2ee.descriptor.ModuleBeanImpl...
...it indicates that you are trying to deploy multiple WARs (e.g. 2 WARs) with the same context-root. That is not allowed. Either consolidate the WARs or give one a different context-root.

3 comments:

Tim said...

Hi William,

I actually deployed a .war file, not .ear file, still got the same error from weblogic. If you know the cause, can you please help me?

Thanks,
tim

Tim said...

Hi Author, Sorry I thought you were William, Can you help?

Will said...

Hi Tim,

So you have a single WAR file? I have a couple thoughts.

One could be you may have a WAR as well as an exploded WAR and you're somehow attempting (perhaps by accident) to deploy them both at the same time.

Or it's possible this error can arise from two other entities with the same name or context-root. The error is about module beans, so perhaps other entities like EJBs may be described by module beans as well.

I haven't been working with WebLogic recently, but I would suggest checking those two things.

Copyright 2011 by William Cain