Struts2 nie odnajdzie pliki jsp

głosy
2

Próbowałem bezskutecznie do utworzenia prostej aplikacji Struts2 więc mogę zabrać się za naukę ramy. Zasadniczo, co ja spodziewałem się zdarzyć, że po wykryciu, że akcja nie jest zdefiniowana, wówczas zostanie wyświetlona strona domyślna.

Ta aplikacja jest rozwijany w Eclipse.

Mam bardzo prosty plik struts.xml utworzony w katalogu 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>

Mam plik test.jsp (właśnie domyślny jsp szablon, który zostanie utworzony w Eclipse, czyli tytuł „Wstaw tutaj”) na poziomie WebContent oraz stronę powitalną (która wyzwala akcję) jest index.jsp jest również w tym samym poziom i zostaje wyświetlona podczas uruchamiania programu. Jest ona zdefiniowana w następujący sposób:

 <%@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> 

Próbowałem też z innymi nazwami tego działania, a nie wiem co, wrócę 404 nie znaleziono strony. Próbowałem to zarówno GlassFish i WebSphere 6.1.1 z tych samych wyników, prowadząc mnie podejrzewać, że coś jest nie brakuje mi, że jest to prawdopodobnie tuż przed me udziałem zarówno strukturę katalogów (są ścieżki względne do rozporek. plik XML lub korzeń kontekst?) lub jakiś plik konfiguracyjny.

Po jakimś spróbować, udało mi się dostać to i działa na Eclipse Ganymede na Mac OS X 10.5.6 użyciu GlassFish, ale ja wciąż nie mając szczęścia i IBM WebSphere Application Server Toolkit (pochodna Eclipse) w systemie Windows XP. Jestem trochę podejrzane, że może to mieć coś wspólnego z przeglądarką.

Po prostu próbowałem dodając plik o nazwie „other.action” do tego samego katalogu, w moich innych plików JSP wymienionych powyżej. Teraz po kliknięciu na przycisk twierdzą, że jest powiązany z „drugiej” akcji, akcja przebiega pomyślnie do mojej strony test.jsp. I mogą być błędne, ale nie wierzę, że powinienem dać plik o nazwie „someaction.action” dla każdej możliwej „someaction” abym musiał użyć (wiem, że nie muszę go na OS X uruchomić mojej aplikacji).

Więcej aktualizacje - Po prostu próbowałem go na Firefox 3.5.2 i działa na tej przeglądarce dał takie same wyniki - nie znaleziono pliku bez „other.action” pliku na serwerze WebSphere, więc teraz podejrzewam, że jest to kwestia konfiguracji Websphere.

Utwórz 26/08/2009 o 23:05
źródło użytkownik
W innych językach...                            


3 odpowiedzi

głosy
2

Korzystanie Firefox pod warunkiem, że klucz potrzebny do określenia źródła tego problemu - Błąd 404: wiadomość SRVE0190E który powiedział mi, że problem był konfiguracja Websphere.

Problemem jest wyjaśnione w lepszej szczegółowo w poniższy link:

IBM Websphere WebContainer rzuca FileNotFoundException po odebraniu żądania do statycznego pliku, który nie istnieje w systemie plików.

I roztwór jest wyjaśnione na tym linku (w tym przypadku, ustawienie wartości com.ibm.ws.webcontainer.invokefilterscompatibility = true):

Websphere konfigurowania właściwości niestandardowych

Przez wzgląd na kompletność, włożę jak rozwiązać ten problem tutaj:

-W konsoli administracyjnej kliknij opcję „Serwery” i kliknij „pod serwery serwery aplikacji”

-Kliknij na serwerze, do którego właściwość niestandardowa ma być stosowana

-under „Konfiguracja” i „ustawienia kontenerów” kliknij „Ustawienia sieci i pod kontener” Kontener ustawień sieciowych kliknij „Web Container”

-under „Konfiguracja” i „Właściwości dodatkowe” kliknij „Custom Properties”

-W stronie Właściwości niestandardowe, kliknij przycisk „Nowy”

-W stronie ustawień, wprowadź nazwę właściwości niestandardowej należy dodać w polu „Nazwa” oraz wartość należy ustawić dla właściwości niestandardowych w polu „Wartość”. Zauważ, że niektóre właściwości są małe litery. Do tej kwestii, nieruchomość jest „com.ibm.ws.webcontainer.invokefilterscompatibility”, a wartość będzie „true”

-Kliknij „Zastosuj” lub „OK”

-Kliknij „Zapisz” w „Komunikaty” wyświetlonym oknie Uruchom ponownie serwer dla właściwości niestandardowych odniosły skutek

Odpowiedział 27/08/2009 o 03:16
źródło użytkownik

głosy
0

Mogę się mylić, ale dla każdego działania, to idzie do /test.jsp. Jednak właśnie stworzył [nazwa aplikacji] /index.jsp ?? Utwórz [nazwa aplikacji] /test.jsp i skierować tam !? (Spróbuj usunąć ukośnik w pliku XML przed test.jsp?)

Odpowiedział 26/08/2009 o 23:11
źródło użytkownik

głosy
0

Czy na pewno trafienia kontekstowy katalog główny dla aplikacji. czyli w web.xmlaplikacji ma nazwę ta jest zazwyczaj taka sama jak kontekstowego katalogu głównego, chyba że zapakowanego stosowania się do pliku wojny z inną nazwą.

http://yourserver:8080/yourcontextroot

Wierzę, że Stuts 2 jest wyposażony w kilka przykładowych aplikacji internetowych oraz pewnych archetypów maven. To zawsze dobry pomysł, aby rozpocząć z jednym z nich, a następnie dostosować go do swoich potrzeb.

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

Struts 2 ma przykładowego projektu o nazwie struts-blank-2.x.xx.war. http://mirrors.dedipower.com/ftp.apache.org/struts/examples/struts2-blank-2.0.14.war

Można go pobrać i zmienić go .zipi zobaczyć, jak oni ustawić projektowej.

WEB-INF / web.xml

powinny mieć aplet Struts2 i 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 powinny być w folderze klas i powinien wskazywać swoimi rozporkami config plików

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

* WEB-INF / yourconfig.xml w tym samym folderze co struts.xmli zawiera mapowania dla swoich działań

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

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

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

Wszystkie pliki JSP są w folderze o nazwie /example

Odpowiedział 26/08/2009 o 23:10
źródło użytkownik

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