# STRUTS The server encountered an internal error



## KalleWirsch (4. Nov 2006)

Hi, 
also die ist mein erstes Projekt mit STRUTS... ist eiegntlich auch nur zusammenkopiert von www.thorsten-horn.de
Allerdings bekomme ich es trotzdem nicht zum laufen!!! und zwar meldet er mir immer folgende Exception:



> org.apache.jasper.JasperException: Exception in JSP: /pages/EingabeFormular.jsp:7
> 
> 4:
> 5: <html:html locale="true">
> ...



meine .üroperties sieht folgendermaßen aus

```
# -- standard errors --
errors.header=<UL>
errors.prefix=<LI>
errors.suffix=</LI>
errors.footer=[/list]
# -- validator --
errors.invalid={0} is invalid.
errors.maxlength={0} can not be greater than {1} characters.
errors.minlength={0} can not be less than {1} characters.
errors.range={0} is not in the range {1} through {2}.
errors.required={0} is required.
errors.byte={0} must be an byte.
errors.date={0} is not a date.
errors.double={0} must be an double.
errors.float={0} must be an float.
errors.integer={0} must be an integer.
errors.long={0} must be an long.
errors.short={0} must be an short.
errors.creditcard={0} is not a valid credit card number.
errors.email={0} is an invalid e-mail address.
# -- other --
errors.cancel=Operation cancelled.
errors.general=The process did not complete. Details should follow.
errors.detail={0}
errors.token=Request could not be completed. Operation is not in sequence.
# -- welcome --
welcome.title=Meine Struts Applikation
welcome.heading=Willkommen!
welcome.message=Erste kleine Struts-Anwendung. Liest Informationen ein und gibt sie wieder.
welcome.Name=Name
welcome.Password=Passwort
error.username.required=Fehler: Benutzername wird benötigt!
error.password.required=Fehler\: Passwort wird ben\u00F6tigt\!
```

und die .jsp so:

```
<%@ taglib uri="/WEB-INF/struts-bean.tld"  prefix="bean"  %>
<%@ taglib uri="/WEB-INF/struts-html.tld"  prefix="html"  %>
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>

<html:html locale="true">
<head>
  <title><bean:message key="welcome.title" /></title>
  <html:base />
</head>
<body bgcolor="white">

<logic:notPresent name="org.apache.struts.action.MESSAGE" scope="application">
  <font color="red">ERROR: Application resources not loaded</font>
</logic:notPresent>

<h3><bean:message key="welcome.heading" /></h3>


 <bean:message key="welcome.message" /></p>

<html:form action="/htmlFormActionPath" focus="username">


 <bean:message key="welcome.Name" />:
    <html:text property="username" size="40" maxlength="40" />

    <font color=red><html:errors property="username" /></font></p>


 <bean:message key="welcome.Password" />:
    <html:text property="password" size="40" maxlength="40" />

    <font color=red><html:errors property="password" /></font></p>


 <html:submit property="action" value="Weiter" />
    <html:submit property="action" value="Abbrechen" /></p>
</html:form>

</body>
</html:html>
```

ich hab mir jetzt schon ein paar Sachen durchgelesen und schon ne Menge probiert. Also die Pfade anzupassen etc. aber er bringt mir immer wieder den gleichen Fehler!!
weiß vllt jemand was ich da falsch mache??

viele Grüße
Phruaed!!


----------



## KalleWirsch (4. Nov 2006)

okay die obige exception konnte ich beheben. Hat wohl daran gelegen, dass der classname nicht richtig bei den Properties zugeordent war.
Allerdings schmeißt er mir jetzt folgende Exception hin:



> exception
> 
> org.apache.jasper.JasperException
> org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:512)
> ...



bei dem ersten Fehler hatte ich noch nhe kleien Ahnung was vielleicht falsch sein könnte. Doch hier?!?! ich find bei Google auch keine weiter Hilfe!!

mfG
Phruaed!


----------



## SlaterB (4. Nov 2006)

zunächst mal solltest du dir die index.jsp anschauen (und hier posten), die ja direkt genannt ist,
vielleicht nicht die ganze, wenn sie wieder über 20 Zeilen lang ist,
sondern nur die Stelle mit dem Redirect, denn dass es um einen Redirect geht steht dort ja auch in deiner Exception


----------



## KalleWirsch (4. Nov 2006)

das ist meine index.jsp

```
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>
<logic:redirect forward="startForwardName" />
```

und das ist meine struts-config.xml

```
<?xml version="1.0" encoding="ISO-8859-1" ?>

<!DOCTYPE struts-config PUBLIC
  "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN"
  "http://jakarta.apache.org/struts/dtds/struts-config_1_2.dtd">

<struts-config>

  <form-beans>
    <form-bean
      name="MeinDatenFormBeanName" 
      type="meinpackage.MeineDatenFormBean" />
  </form-beans>
  
  <global-forwards>
    <forward name="startForwardName" path="/StartActionPath.do" />
  </global-forwards>
  
  <action-mappings>
    <action
      path="/StartActionPath"
      forward="/pages/EingabeFormular.jsp" />
    <action
      path="/htmlFormActionPath" 
      type="meinpackage.MeineAuswerteAction" 
      name="MeinDatenFormBeanName" 
      scope="request" 
      input="/pages/EingabeFormular.jsp">
        <forward name="Weiter"    path="/ErgebnisanzeigeActionPath.do" />
        <forward name="Abbrechen" path="/StartActionPath.do" />
    </action>
    <action
      path="/ErgebnisanzeigeActionPath"
      forward="/pages/ErgebnisAnzeige.jsp" />
  </action-mappings>

  <message-resources parameter="resources.MessageResources" />

</struts-config>
```


----------



## SlaterB (4. Nov 2006)

hast du an anderen Stellen erfolgreiche Redirect, vielleicht in anderen Programmen?

ich selber habe sowas noch nie benutzt, 
versuche es evtl. mal mit einem Servlet und mapping.findForward("startForwardName")

deine Struts-Library ist auch entweder veraltet oder brandneu?
bei den Source-Codes hier
http://struts.apache.org/download.cgi
gibt es keine computeURL()-Operation in der Klasse RequestUtils,
also kann man dort auch nicht nachschauen..,
vielleicht gehts ja mit neueren Versionen? 

sind alles keine wirklichen Lösungen, ich weiß


----------



## HLX (6. Nov 2006)

Die verwendete Struts-Version ist dann eher älter. Bei Struts 1.2 ist computeURL deprecated.

Die Methode liefert das Ergebnis aus TagUtils.getInstance().computeUrl(gleiche Parameter).


----------

