Wednesday, March 17, 2010

ADF App Internal Server Error 500

Applies to ADF 11.1.1.2 and WLS 10.3.2

Problem description

1. stop datasource

2. stop app (all requests)

3. start datasource

4. start app (servicing all requests)

Call :/http://<host>:<port>/<context>

Expected

Functional ADF Application

Instead got

0000@1938_error_500

Analyzing

a)Take a look into <domain_home>/servers/<servername>/logs/<servername>.log

Caused By: java.lang.ClassCastException: oracle.adf.controller.internal.binding.DCTaskFlowBinding cannot be cast to oracle.adf.controller.internal.binding.DCTaskFlowBinding

       at oracle.adf.controller.internal.binding.DCTaskFlowBindingDef.initializeExecutableBinding(DCTaskFlowBindingDef.java:301)

       at oracle.adf.model.binding.DCBindingContainerDef.createExecutables(DCBindingContainerDef.java:590)

       at oracle.adf.model.binding.DCBindingContainerDef.initializeBindingContainer(DCBindingContainerDef.java:728)

       at oracle.adf.model.binding.DCBindingContainerDef.createBindingContainer(DCBindingContainerDef.java:944)

       at oracle.adf.model.binding.DCBindingContainerReference.createBindingContainer(DCBindingContainerReference.java:152)

       at oracle.adf.model.binding.DCBindingContainerReference.getBindingContainer(DCBindingContainerReference.java:92)

       at oracle.adf.model.BindingContext.get(BindingContext.java:908)

b)

image

Never seen that before! Where does all those .appmergegen hidden folders coming from?

Action

a) Googling. => not much information on this:(

b) rm -rf .appmergegen*

Test again

1. stop datasource

2. stop app

3. start datasource

4. start app

Call http://<host>:<port>/<context>

=> Application works as expected! But after a few more  redeployments the internal error (500) occurs again.

Further research

a) Find out where all those .appmergegen hidden folders coming from? It seems that this leads in the end to a class loading problem.

b) How to make sure, the application will not fall into this situation again?

Any comments are greatly appreciated....

5 comments:

  1. Hello Andreas,

    In the meantime do you have any additional information on these hidden folders?
    I notice it also on my environment.

    Regards,
    Wing

    ReplyDelete
  2. Hi Andreas,

    We're experiencing the same problem. Because its not reproducable I'm just curious if you ever ran into the problem again after removing all the .appmergegen* and restarting?

    regards,
    Gerben

    ReplyDelete
  3. Hi Andreas,

    This seems to be a classloading issue. Were you able to resolve your problem?

    Thanks,
    Praveen.

    ReplyDelete
  4. Hi,

    last week we had this case (.appmergegen folders, wls 10.3.2) on a customers production system, but with no side effects. We advised to delete these folders to prevent any problems...

    I have still no idea under which circumstances these folders are generated. Maybe during a failed deployment or so?

    Andreas.

    ReplyDelete
  5. as far as i can tell these folders get created when deploying the application (when the JVM starts). In my case i deploy an .ear file that contains 3 .wars files. You'll see a directory spawn for each .war under an .ear file or 1 for each .war. They're supposed to be temporary and can be deleted without consequence. They'll be recreated each time. You'd think WL would clear them out each time you restart but nope :)

    ReplyDelete