gchris
gchris

Reputation: 41

Glassfish v3 Cluster config classpath lib

I have a Glassfish 3.1.2 cluster. I have 2 ssh nodes that each have 1 instance. I added my lib jars in the DAS domains/mydomain/config/mycluster-config/lib/ directory. When I restart my instances, I see that the jars are copied to each node in the: nodes/node1/instance1/config/mycluster-config/lib/ directory and nodes/node2/instance2/config/mycluster-config/lib/ directory.

My application is a JSF 2.2 app with Richfaces 4.3

The problem is that when I deploy my application, the application can't find any of the jars from my libs. One question would be: How do I set the classpath for the nodes? I have tried: export LD_LIBRARY_PATH="/path/to/node1/instance1/config/prodc-config/lib" and the same on command on the other node. This did not enable my app to find the libs.

If I deploy my EAR to the standalone domain NOT the cluster then it will deploy without any errors.

When I deploy my app from the web admin console I check availability enabled and make sure the target is pointing to mycluster.

These are some of the errors I am getting:

WELD-000119 Not generating any bean definitions from com.my.domain.Validate because of underlying class loading error

Application was not properly initialized at startup, could not find Factory: javax.faces.context.FacesContextFactory. Attempting to find backup.

The cluster is always able to start. The instances start and stop just fine.

The full message while deploying my EAR is:

Warning Command succeeded with Warning
"domain/applications/application/my_EAR" created successfully.
WARNING: Command _deploy did not complete successfully on server instance instance1: remote failure:
Failed to load the application on instance instance1.
The application will not run properly. Please fix your application and redeploy.
Exception while shutting down application container : java.lang.NullPointerException. Please see server.log for more details.
WARNING: Command _deploy did not complete successfully on server instance instance2: remote failure:
Failed to load the application on instance instance2. The application will not run properly. Please fix your application and redeploy.
Exception while shutting down application container : java.lang.NullPointerException. Please see server.log for more details.
WARNING: Command _deploy did not complete successfully on server instance instance1: remote failure:
Failed to load the application on instance instance1. The .... msg.seeServerLog

Thank you for any help with my problem.

Upvotes: 3

Views: 1132

Answers (1)

gchris
gchris

Reputation: 41

For GlassFish v3.1.2 I have been using this link: http://docs.oracle.com/cd/E18930_01/html/821-2426/gkrdd.html#gksav

When an app is deployed I have to specify the libraries during deployment. The libraries are relative to the applibs directory. So for a cluster the path would be:

../../config/clustername-config/lib/util.jar

My problem must have been that I did not get the path correct when specifying this directory. That is what I get for not looking close enough the path I was using.

So, short answer: use --libraries when deploying app to a cluster and make sure the path is correct.

Upvotes: 1

Related Questions