Struts2 nenajde JSP soubory

hlasů
2

Byl jsem se snaží bezvýsledně zřídit jednoduchou aplikaci Struts2, takže můžu dostat se na učení rámec. V podstatě to, co jsem očekával, že se stalo, je, že když je spuštěna akce, která není definována, pak se zobrazí výchozí stránka.

Tato aplikace je vyvíjen v Eclipse.

Mám velmi jednoduchý struts.xml soubor nastavit v adresáři WEB-INF / classes:

<struts>
<!-- Include webwork default (from the Struts JAR). -->
<include file=struts-default.xml />

<!-- Configuration for the default package. -->

<package name=default extends=struts-default>
    <action name=*>
        <result>/test.jsp</result>
    </action>
</package>
</struts>

Mám soubor test.jsp (jen výchozí JSP šablonu, který se vytvořil v Eclipse, tedy „Vložit titulek zde“) na úrovni Webcontent a úvodní stránku (která spouští akci) je index.jsp je také na tentýž hladina a dostane zobrazí při spuštění programu. Je definován takto:

 <%@page contentType=text/html pageEncoding=UTF-8%>
 <%@ taglib prefix=s uri=/struts-tags %>

<html>
  <head>
    <title>GlassFish JSP Page</title>
  </head>
<body>
<h1>Hello World!</h1>
<s:form action=other>
   <s:submit value=Submit />
</s:form>
</body>
</html> 

Také jsem se snažil to s jinými názvy akcí, a bez ohledu na to, co jsem se vrátit na stránku 404 nebyl nalezen. Snažil jsem se to na obou GlassFish a WebSphere 6.1.1 se stejnými výsledky, což vede mě k podezření, že tam je něco, co jsem chybí, to je pravděpodobně přímo před me zahrnující buď adresářovou strukturu (jsou cesty relativní k vzpěr. xml soubor nebo kontextový kořenový adresář?), nebo nějaký konfigurační soubor.

Po nějaké vyčerpávající, byl jsem schopen se dostat to nahoru a běh na Eclipse Ganymedu na Mac OS X 10.5.6 pomocí GlassFish, ale stále mám štěstí s IBM WebSphere Application Server a Toolkit (Eclipse derivátu) v systému Windows XP. Jsem trochu podezřelé, že by to mohlo mít něco společného s prohlížečem.

Jen jsem se snažil přidat soubor s názvem „other.action“ do stejného adresáře jako mé další soubory JSP výše uvedených. Teď, když jsem klikněte na tlačítko tvrdí, že je spojen s „druhou“ akce, akce úspěšně pokračuje do mého test.jsp stránce. I mohou být nesprávné, ale nevěřím, že bych měl dát soubor s názvem „someaction.action“ pro každou možnou „someaction“ že může být nutné použít (Vím, že jsem nepotřeboval to na OS X běžet mé app).

Další aktualizace - já to prostě zkusil Firefox 3.5.2 a běží na tomto prohlížeči dal stejný výsledek - soubor nebyl nalezen bez souboru „other.action“ na Websphere, takže teď mám podezření, že je problém konfigurace Websphere.

Položena 26/08/2009 v 23:05
zdroj uživatelem
V jiných jazycích...                            


3 odpovědí

hlasů
2

Používání Firefox za předpokladu, že klíč, který jsem potřeboval zjistit příčinu tohoto problému - Došlo k chybě 404: SRVE0190E zprávu, která mi řekla, že problém byl konfigurace Websphere.

Problém je vysvětlen v lepším detailu na následující odkaz:

IBM Websphere WebContainer hodí FileNotFoundException při obdržení požadavku na statický soubor, který neexistuje na souborovém systému.

A vzniklý roztok je vysvětleno na tento odkaz (v tomto případě nastavení hodnoty com.ibm.ws.webcontainer.invokefilterscompatibility = true):

Websphere nastavení uživatelských vlastností

Pro úplnost, dám, jak se zde-li tento problém:

-V konzole pro správu, klikněte na „Servers“ a ve skupinovém rámečku servery klepněte na „aplikační servery“

-Klikněte na serveru, ke kterému vlastní vlastnost má být použita

-Under "Konfigurace" a "nastavení kontejnerů" click "Nastavení webový kontejner" a podle webových Nastavení kontejnerů na tlačítko "Web Container"

-Under „Konfigurace“ a „Doplňkové vlastnosti“ klikněte na „Custom Properties“

-V stránce uživatelských vlastností, klikněte na tlačítko „Nový“

-V stránce nastavení zadejte název vlastní vlastnosti, které mají být přidány do pole „Name“ a hodnoty, které mají být nastaveny na uživatelské vlastnosti v poli „Hodnota“. Všimněte si, že některé vlastnosti jsou velká a malá písmena. Pro tento problém vyřešit, je vlastnost „com.ibm.ws.webcontainer.invokefilterscompatibility“ a hodnota bude „true“

Klik na „Použít“ a „OK“

-Klikněte „Uložit“ ve které se objeví Restartujte server pro vlastní vlastnosti se projeví až po poli „Zprávy“

Odpovězeno 27/08/2009 v 03:16
zdroj uživatelem

hlasů
0

Možná se mýlím, ale pro každou akci, to jde do /test.jsp. Zatím jste právě vytvořili [Název aplikace] /index.jsp ?? Vytvořit [Název aplikace] /test.jsp a poukázat tam !? (Pokusit odebrat lomítko v XML souboru před test.jsp?)

Odpovězeno 26/08/2009 v 23:11
zdroj uživatelem

hlasů
0

Vy jste určitě zasáhnout kořenový kontext pro vaši aplikaci. tedy v web.xmlžádosti má název toto je normálně stejné jako kontextový kořenový adresář, pokud jste balené aplikace až do válečné souboru s jiným názvem.

http://yourserver:8080/yourcontextroot

Domnívám se, že Stuts 2 je dodáván s některými ukázkových webových aplikací a některých Maven archetypy. Je vždy dobré začít s jedním z nich, a pak přizpůsobit jej podle svých potřeb.

http://struts.apache.org/2.1.2/docs/struts-maven-archetypes.html

Vzpěry 2 je příkladný projekt struts-blank-2.x.xx.war. http://mirrors.dedipower.com/ftp.apache.org/struts/examples/struts2-blank-2.0.14.war

Můžete si jej stáhnout a přejmenovat ji .zipa uvidíte, jak mají nastavit projektu nahoru.

WEB-INF / web.xml

by měl mít struts2 servlet a filtr

...    
<filter>
    <filter-name>struts2</filter-name>
    <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>

<filter-mapping>
    <filter-name>struts2</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

WEB-INF / classes / struts.xml by měl být ve složce třídách a směřovat ke svým vzpěrami konfiguračního souboru

    ...
    <include file="yourconfig.xml"/>

* WEB-INF / yourconfig.xml ve stejné složce jako struts.xmla obsahuje mapování pro vaše akce

...
<package name="example" namespace="/example" extends="struts-default">

    <action name="*" class="example.ExampleSupport">
        <result>/example/test.jsp</result>
    </action>

    <!-- Add actions here -->
</package>

Všechny JSP soubory jsou ve složce s názvem /example

Odpovězeno 26/08/2009 v 23:10
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more