Avatar billede dn666 Nybegynder
21. juni 2004 - 13:04 Der er 5 kommentarer og
1 løsning

web.xml og forskellige applikationer

Hej.

Jeg har 2 web aplikationer der bygger på webwork 1.3 og velocity
Jeg har i begge aplikationer en action som hedder login og de mapper begge til *.jhtml i web.xml

problemet er at servlet container'en ikke kan kende forskel på de 2 actions, dvs.
uanset hvilken app jeg prøver at ramme bliver app1 login vist:

når jeg prøver at ramme webapp1/login.jhtml bliver webapp2/login.jhtml vist.

hvordan kan jeg sætte mine aplikationer op så container'en kan se forskel på de 2 apps ?
Avatar billede fsconsult.dk Nybegynder
21. juni 2004 - 13:10 #1
umiddelbart lyder det underligt. det er 2 forskellige web.xml filer, ikke?

hvad container bruger du?
Avatar billede dn666 Nybegynder
21. juni 2004 - 13:14 #2
Jo 2 web.xml
Jeg bruger jboss-tomcat.

begge web.xml er ens:

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
    <servlet>
        <servlet-name>webwork</servlet-name>
        <servlet-class>webwork.dispatcher.ServletDispatcher</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet>
        <servlet-name>velocity</servlet-name>
        <servlet-class>webwork.view.velocity.WebWorkVelocityServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>webwork</servlet-name>
        <url-pattern>*.jhtml</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>velocity</servlet-name>
        <url-pattern>*.vm</url-pattern>
    </servlet-mapping>

    <welcome-file-list>
        <welcome-file>index.html</welcome-file>
    </welcome-file-list>
</web-app>
Avatar billede dn666 Nybegynder
28. juli 2004 - 16:30 #3
er der ingen andre der har haft lign problemer.
det ligner et classloader prob. men jeg kan bare ikke lige se hvor jeg skulle starte med at lede.

jeg har prøvet at lave 2 meget simple apps
app1 & app2 de har en webwork action hver app1Action og app2Action, hver har de, de jar filer de nu skal bruge liggende i WEB-INF/lib

hvis jeg deployer dem en ad gangen virker de fint, men i det øjeblik, begge apps er deployet er det kun den første jeg kan få adgang til, hvis jeg prøver at accesse den anden app får jeg en:
com.opensymphony.xwork.config.ConfigurationException: There is no Action mapped for action name app2

mine apps er sat op så jeg kan ramme:
http://localhost/app1/app1.jhtml
og
http://localhost/app2/app2.jhtml

de virker fint så længe de er deployet alene,
deployer jeg dem begge får jeg ConfigurationException There is no Action mapped for...

jeg kan dog gå inde på:
http://localhost/app2/app1.jhtml
og få fat i app1Action, selvom jeg går ind på app2's url ??


er der nogen der kan pege mig i den rigtige retning ??

jeg har prøvet at deploy'e på resin, her er der ingen problemer, kan det være måden jboss har integreret tomcat på ?
Avatar billede arne_v Ekspert
28. juli 2004 - 16:57 #4
JBoss bruger kun en classloader så vidt jeg husker.

Da xwork.xml loades via classloader, så kan det være et problem.

Forslag:

omdøb filerne til xwork-app1.xml og xwork-app2.xml

lave en startup servlet i de to apps som udfører

ConfigManager.addConfigurationProvider(new XmlConfigurationProvider("xwork-appn.xml"))

Jge ved ikke om det virker. Men værd at prøve.
Avatar billede arne_v Ekspert
28. juli 2004 - 17:03 #5
Alternativt kan du pakke din war i en ear og i jboss-app.xml angive at der
skal bruges seperat classloader for ear'en.
Avatar billede dn666 Nybegynder
03. august 2004 - 14:00 #6
Jeg har kigget boss efter i sømmene og fundet ud af at web containeren default har sat UseJBossWebLoader til true i deploy/jbossweb-tomcat41.sar/META-INF/jboss-service.xml, og dette gør åbenbart at alle web apps gør brug af en fælles classloader, så ved at sætte den til false, bruges standart metoden fra servlet 3.2 class loading modelen, og alle problemer er løst.. :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester