bit_mbrandt
I'm new here

FormEdit: IniFile wird nicht gefunden

Jump to solution

Hallo zusammen,

ich verzweifle gerade an der Integration des FormEdit-Moduls. CMS-Seitig scheint alles zu funktionieren.

Das Formular wird korrekt als HTML generiert, das Servlet ist in der Formular-Action eingetragen.

Beim Abschicken des Formulars leitet das System immer auf die error.jsp weiter. Im Server-Log (in unserem Fall ein Tomcat), bekomme ich als einzigen Hinweis "WARN  2012-07-01 19:58:20,515 (de.espirit.firstspirit.opt.formedit.FormServlet) Ini file not exists, using empty default"

Die IniDatei exisitiert jedoch. Der Inhalt der fs-formedit.ini

#FirstSpirit FormEdit - configuration.

#Sun Jul 01 17:09:22 CEST 2012

formEncoding=UTF-8

captchaWidth=100

errorRedirect=error.jsp

captchaChars=6

captchaHeight=50

iniFile=de/tools/fs_formlogger.ini

pathPrefix=

okRedirect=ok.jsp

Der Inhalt der generierten "fs_formlogger.ini" lautet:

loggers=ContactLogger

loggers.Kontakt=ContactLogger

ContactLogger.class=de.espirit.firstspirit.opt.formedit.MailLogger

ContactLogger.mailTemplatePath=/de/tools/kontakt/mailtemplate_kontakt.htm

ContactLogger.smtpHost=localhost

ContactLogger.sender=no-reply@testdomain.de

Das Formular soll im ersten Schritt nur die Formularinhalte per Mail verschicken. Das ini-File ist im angegebenen Pfad unterhalb des Webapp-Ordners erreichbar (parallel zu WEB-INF).

Scheinbar wird der Pfad zur fs_formlogger.ini der ini-Datei nicht korrekt verarbeitet. Ich habe bereits verschiedene Varianten durchgespielt: Sowohl der Dateipfad als auch der HTTP-Pfad jeweils absolut und relativ haben keinen Erfolg gebracht.

Wie müsste der Pfad korrekt lauten? Liegt der Fehler evtl. an ganz anderer Stelle?

Vielen Dank und viele Grüße,

Martin Brandt

0 Kudos
1 Solution

Accepted Solutions

Hallo Herr Brandt,

wie ist denn die Struktur im Tomcat? Gibt es einen Context, in dem der Auftritt landet?

Dann geben Sie bitte "/contextname" als pathPrefix und "/contextname/de/tools/fs_formlogger.ini" als iniFile dem FormLogger-Servlet an.

Viele Grüße,

Raphael Richter.

1+1=3 for large values of 1.

View solution in original post

0 Kudos
10 Replies
rrichter
Occasional Collector

Hallo zurück,

wie ist denn der Inhalt der web.xml (bzw. die FormEdit-spezifischen Einträge)?

Vielen Dank und Grüße,

Raphael Richter.

1+1=3 for large values of 1.
0 Kudos

Hallo Herr Richter,

der relevante Teil der web.xml lautet:

     <servlet>

        <servlet-name>fsfe-FormLogger</servlet-name>

        <servlet-class>de.espirit.firstspirit.opt.formedit.FormServlet</servlet-class>

        <init-param>

            <param-name>pathPrefix</param-name>

            <param-value/>

        </init-param>

        <init-param>

            <param-name>iniFile</param-name>

            <param-value>/de/tools/fs_formlogger.ini</param-value>

        </init-param>

        <init-param>

            <param-name>okRedirect</param-name>

            <param-value>ok.jsp</param-value>

        </init-param>

        <init-param>

            <param-name>errorRedirect</param-name>

            <param-value>error.jsp</param-value>

        </init-param>

        <init-param>

            <param-name>formEncoding</param-name>

            <param-value>UTF-8</param-value>

        </init-param>

        <load-on-startup>0</load-on-startup>

    </servlet>

Viele Grüße,

Martin Brandt

0 Kudos

Hallo Herr Brandt,

wie ist denn die Struktur im Tomcat? Gibt es einen Context, in dem der Auftritt landet?

Dann geben Sie bitte "/contextname" als pathPrefix und "/contextname/de/tools/fs_formlogger.ini" als iniFile dem FormLogger-Servlet an.

Viele Grüße,

Raphael Richter.

1+1=3 for large values of 1.
0 Kudos

Hallo Herr Richter,

der Tip mit dem PathPrefix war super. Scheinbar wird die Ini-Datei nun gezogen. Leider bekomme ich nun eine neue Fehlermeldung zum Mailtemplate:

ERROR 2012-07-02 20:02:21,640 (de.espirit.firstspirit.opt.formedit.FormServlet) Logger 'ContactLogger' error: No recipient defined in mailtemplate!

java.io.IOException: No recipient defined in mailtemplate!

    at de.espirit.firstspirit.opt.formedit.MailLogger.log(MailLogger.java:220)

    at de.espirit.firstspirit.opt.formedit.FormServlet.doPost(FormServlet.java:340)

    at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)

    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)

    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

    at de.espirit.firstspirit.acl.servlet.MultiAccessControlFilter.doFilter(MultiAccessControlFilter.java:100)

    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)

    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)

    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)

    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)

    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)

    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)

    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)

    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)

    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602)

    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)

    at java.lang.Thread.run(Thread.java:662)

ERROR 2012-07-02 20:02:27,500 (de.espirit.firstspirit.opt.formedit.MailLogger) Mail template file not found: /de/tools/kontakt/mailtemplate_kontakt.htm

WARN  2012-07-02 20:02:27,525 (de.espirit.firstspirit.opt.formedit.FormServlet) Ini file not exists, using empty default

Das Mailtemplate ist unter der URL "/de/tools/kontakt/mailtemplate_kontakt.htm" erreichbar. Dennoch meldet das Log-file das Gegenteil.

Hier der Inhalt des Mailtemplates:

To: receiver@ourdomain.de

Reply-To: no-reply@ourdomain.de

Sender: %email%

Subject: feedback Webseite

Attachements: %all%

Hallo,

ein neues Feedback wurde auf der Weseite abgegeben:

%date%-%time%

%name%

%email%

%anschrift%

%feedback%

Ist es sinnvoll für diesen Fehler ein neues Ticket zu öffnen oder darf ich es in diesem Ticket weiterverfolgen?

Vielen Dank und viele Grüße,

Martin Brandt

0 Kudos

Hallo Herr Brandt,

haben Sie auch hier einmal mehrere Pfadangaben versucht? Also

/content/de/tools/kontakt/mailtemplate_kontakt.htm

oder den kompletten Dateipfad?

Viele Grüße,

Raphael Richter.

1+1=3 for large values of 1.
0 Kudos

Hallo Herr Richter,

ich habe auf Ihren Hinweis hin den gesamten Tomcat Pfad (der aber per Rewrite-URL vom Apache verarbeitet wird) eingetragen. Damit funktioniert das Formular. Allerdings wird diese URL nicht vom CMS generiert, so dass bei einer Neugenerierung das Formular nicht funktionieren wird. Kann man für das Mailtemplate einen Präfix definieren?

Im Log-File bekomme ich nun eine spannende neue Meldung "Attention the form ("Kontakt") couldn't allocate to a specific logger! Your mail will be send to default loggers".

Im CMS ist das Formular wie im Screenshot mit einem Logger versehen.fs-Logger.png

Könnten Sie mir bitte auch hier nochmal weiterhelfen?

Viele Grüße,

Martin Brandt

0 Kudos

Hallo,

das was in der web.xml als PathPrefix eingestellt wird, wird vor den Pfad zum Mailtemplate gesetzt. Der Pfad zur loggers.ini muss das Prefix auch beinhalten.

Path Prefix:

In diesem Feld ist ein Prefix anzugeben, welches dem Pfad zur Mail-

Vorlage vorangestellt wird, um diese verwenden zu können. Dieses Prefix beschreibt

den Teilpfad zwischen dem WebApp-Root und dem von FirstSpirit erstellten Ordner.

Für die Staging-Umgebung wäre dies beispielsweise die Auftrags-ID.

Loggers.ini Path: In diesem Feld muss der Pfad zur Konfigurationsdatei fsformlogger.

ini angegeben werden. Ist dieses Feld leer oder kann die Datei nicht

gefunden werden, wird auf eine leere Konfigurationsdatei zurückgegriffen.

Beispiel Staging:

2708/de/configuration/fs-formlogger.ini

Dem Pfad für die Staging-Umgebung ist die Auftrags-ID – hier 2708 – vorangestellt.

Beispiel Live:

de/configuration/fs-formlogger.ini

Der hier anzugebende Pfad kann auch absolut angegeben warden. Dieses Beispiel

sucht die Datei relativ zum WebAppRoot.

Ihre "neuen" Fehlermeldung wird auch noch die Meldung vorrausgegegangen sein, dass ihr Pfad zur loggers.ini falsch ist, und deswegen kann es nicht zugeordnet werden, da er eine leere ini geladen hat (siehe Loggers.ini Path)

0 Kudos

Hallo Herr Klein,

vielen Dank für die Antwort. Leider komme ich auch damit nicht zum Ziel.

Ich kann aber kurz das Setup beschreiben:

Die Struktur im Tomcat ist wie folgt:

Die Web-App liegt im Ordner "/opt/tomcat/webapps/project_2582_live".

Die HTML-Dateien liegen im Ordner "/opt/tomcat/webapps/project_2582_live/bit.de"

Die fsFormLogger-Ini ist hier zu finden: "/opt/tomcat/webapps/project_2582_live/bit.de/de/tools/fs_formlogger.ini"

Das Mailtemplate liegt hier: "/opt/tomcat/webapps/project_2582_live/bit.de/de/tools/kontakt/mailtemplate_kontakt.htm"

Dem Tomcat ist ein Apache vorgeschaltet, über den per HTTP die Dateien mit den URLs "/de/tools/kontakt/mailtemplate_kontakt.htm" und "/de/tools/fs_formlogger.ini" erreicht werden.

Der Ordner "bit.de" ist ein symbolischer Link, damit die Generierung nicht dirket in die WebApp erfolgt.

Nach meinem Verständnis müsste folgende Konfiguration in der Datei "fs-formedit.ini" vorgenommen werden:

iniFile=bit.de/de/tools/fs_formlogger.ini

pathPrefix=/project_2582_live/

Dennoch wird die ini-Datei scheinbar nicht gefunden.

Was muss ich bei diesem Setup in die Parameter "iniFile" und "pathPrefix" eintragen?

Vielen Dank und viele Grüße,

Martin Brandt

0 Kudos

Erstmal müssen in der fs-formedit.ini KEINE Änderungen vorgenommen werden.

Die Konfiguration erfolgt ausschliesslich wie in der Dokumentation beschrieben über die web.xml!

In der web.xml geben Sie bitte an:

        <init-param>
            <param-name>pathPrefix</param-name>
            <param-value>
/project_2582_live/bit.de</param-value>
        </init-param>
        <init-param>
            <param-name>iniFile</param-name>
            <param-value>
/project_2582_live/bit.de/de/tools/fs_formlogger.ini</param-value>
        </init-param>

wobei sich das pathPrefix danach richt wie der Pfad in der Loggers.ini aussieht.