In general it isn't a good idea to put those custom libs (like struts.jar, spring.jar) etc. in classloaders of the main appserver. They should be in the applications-classloader so you can avoid classloader-issues like leaks.

If you've got the first error it sounds to me that you've got the xwork libs on ear level. If it's in web-inf/lib it shouldn't "see" each other. The classloaders _should_ be seperated. I'm not sure if glassfish handles it correctly but I would think so. May be you've got another xwork.jar somewhere else, which is loaded at first (such thing can happen if you build using maven and forgets to run a clean before final build.)

If you've got two identically xwork.jars (or struts.jars) in the classpath or in parent classpaths they will be considered as two different types/versions. So I would think that you'll have a xwork.jar somewhere in your parent classpath.

The second error occures if the loaded classes from lib/ext didn't find the dependent classes within the current and in one of the parent classloaders (up to the bootclassloader). If the javax.servlet.Filter is loaded by a seperate classloader (which might be a child of the classloader (which loads the classes from lib/ext) it wouldn't be found by the lib/ext classes.


Hugo de Paix de Coeur schrieb:
In fact, this was my second question, so I ask it now :)

I have had problems with deploying *struts*.jar in this special
configuration (2 war in an ear).
- I tries to put them in each .war WEB-INF/lib
  => "Error : xwork...ObjectFactory already loaded in bean projectA" at 
projectB deployment.
- I tries to put them in glassfish domain lib/ext
  => "Error : ClassLoader : Can't find javax.servlet.Filter"

So, they are for now in the glassfish "main" lib.. but there are
problems too .. at runtime.

What is the correct installation scheme for struts.jar with this
configuration ?

Thx...

On Wed, Jun 11, 2008 at 02:31:13PM +0200, Marc Ende wrote:
Hello,

do you deploy the struts.jar in the ear or in the WEB-INF/lib folders of the war-files?
if they're in the WEB-INF/lib folders they should be seperate.

Marc


Hugo de Paix de Coeur schrieb:
Hello,

I'm currently trying to deploy two Struts2 enabled .war in a single
.ear on Glassfish.

My problem is : I've no isolation between the 2 projects at the action
dispatcher level.

----------------------------
Project A WAR struts.xml :
<struts>
<package name="projectA-support" namespace="/" extends="struts2-default">

        <action name="Index" class="com.web.projectA.Index">
                <result>/jsp/index.jsp</result>
        </action>
                                                                
</package>

Project B WAR struts.xml :
<struts>
<package name="projectB-support" namespace="/" extends="struts2-default">

        <action name="Index" class="com.web.projectB.Index">
                <result>/jsp/index.jsp</result>
        </action>
                                                                
        <action name="Login" class="com.web.projectB.Login">
                <result>/jsp/login.jsp</result>
        </action>
                                                                
</package>

----------------------------

1- I can call 'http://localhost:8080/ProjectA/Login.action' and this is the 'com.web.projectB.Login' class that is executed (even if no Login action is specified in Project A) because they share the namespace '/'.

2- If I call 'http://localhost:8080/ProjectA/Index.action', this is the 'com.web.projectB.Index' class that is executed (last struts.xml to be parsed ?)

I've no clues to resolve this problem (the use of different namespaces doesn't resolve the problem either)
Any idea ?

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to