Announcement

Collapse
No announcement yet.

Mappen von zwei Webapplikationen in der web.xml

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Mappen von zwei Webapplikationen in der web.xml

    Hi Leute,

    Wir haben zwei Webapplikationen, einmal die Onlineapplikation "movieticket" und einmal die Admin-Applikation "movieticketAdmin" -> kann ich die beiden Webapplikationen nicht in der web.xml definieren? Wie geht das? Wir haben es so gemacht, aber so kann ich nur die movieticket ansprechen (..localhost:8080/movieticket/)und nicht die movieticketAdmin/ und wie gebe ich die verschieden Welcome-Seiten an (index.jsp).
    Ich hoffe, Ihr versteht, was ich meine :-)

    <web-app>
    <servlet>
    <servlet-name>movieticket</servlet-name>
    <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
    <init-param>
    <param-name>config</param-name>
    <param-value>/WEB-INF/struts-config.xml</param-value>
    </init-param>
    <init-param>
    <param-name>debug</param-name>
    <param-value>2</param-value>
    </init-param>
    <init-param>
    <param-name>detail</param-name>
    <param-value>2</param-value>
    </init-param>
    <load-on-startup>2</load-on-startup>
    </servlet>

    <!-- Standard Action Servlet Mapping -->
    <servlet-mapping>
    <servlet-name>movieticket</servlet-name>
    <url-pattern>*.do</url-pattern>
    </servlet-mapping>

    <servlet>
    <servlet-name>movieticketAdmin</servlet-name>
    <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
    <init-param>
    <param-name>config</param-name>
    <param-value>/WEB-INF/struts-config.xml</param-value>
    </init-param>
    <init-param>
    <param-name>debug</param-name>
    <param-value>2</param-value>
    </init-param>
    <init-param>
    <param-name>detail</param-name>
    <param-value>2</param-value>
    </init-param>
    <load-on-startup>2</load-on-startup>
    </servlet>

    <!-- Standard Action Servlet Mapping -->
    <servlet-mapping>
    <servlet-name>movieticketAdmin</servlet-name>
    <url-pattern>*.do</url-pattern>
    </servlet-mapping>

    </web-app>

  • #2
    Hallo Nadine,

    Jede Webapplikation hat genau einen context-path. Der context-path ist der Teil der URL nach dem Host und Port, also http://hostort/contextpath

    Außerdem hat jede Webapplikation genau ein WEB-INF Verzeichnis mit einem web.xml. Alle Servlets dieser Applikation werden in diesem web.xml gemappt. Alles in dieser Webapplikation wird über den context-path angesprochen, also z.b. http://hostort/contextpath/servlet1
    Ebenfalls hat eine Webapplikation eine Liste von welcome files, von denen aber nur ein einziges (das erste existierende) angezeigt wird.

    Die Webapplikationen sind vollständig voneinander isoliert und können auch ihre Klassen nicht gegenseitig "sehen". Wenn Du also zwei isolierte Webanwendungen haben willst (mit unterschiedlichem context-path), mußt Du zwei Verzeichnisse und demnach zwei web.xml-Files basteln.

    In Deinem Beispiel hast Du einfach zweimal das Struts-Action-Servlet in derselben web.xml definiert und auf dieselbe URL (*.do) gemappt. Das bringt in dieser Form nichts.

    Also entweder wirklich zwei getrennte Applikationen deployen (mit zwei web.xml) oder verschiedene Einsprungspunkte in der struts-config definieren, also z.b.

    http://localhoast:8080/movieticket/admin.do und http://localhoast:8080/movieticket/app.do

    Oder Du arbeitest mit Struts-Modulen:

    http://struts.apache.org/userGuide/configuration.html#dd_config_modules

    um dann z.b. ein Modul für admin und eins für app zu basteln.

    Gruß,

    Alwi

    Comment

    Working...
    X