5 Stimmen

Wie schaltet man VelocityViewResolver-Fehler in Spring aus?

Ich verwende Velocity und Spring. Innerhalb von Spring verwende ich die VelocityViewResolver gepaart mit dem ContentNegotiatingViewResolver . In den meisten Fällen funktioniert das hervorragend. Das einzige Problem ist, dass die ContentNegotiatingViewResolver fragt die VelocityViewResolver mit vielen verschiedenen Inhaltssets (so wie es sein sollte).

Wenn die Velocity-Engine eine bestimmte Vorlage nicht findet, wird eine Fehlermeldung ähnlich der folgenden ausgegeben:

2011-02-04 13:37:15,074 ERROR [http-8080-2] VelocityEngine: ResourceManager : kann die Ressource 'foo.json.vm' in keinem Resource Loader finden.

Dies ist nicht ideal. Idealerweise sollte eine Warnung oder etwas Ähnliches ausgegeben werden, wenn eine Vorlage nicht gefunden wird. Wenn eine Vorlage für einen bestimmten Inhaltstyp nicht existiert, ist mir das eigentlich egal... denn das bedeutet, dass dieser Inhaltstyp von diesem View Resolver nicht unterstützt wird.

Haben Sie eine Idee, wie ich diesen Fehler durch die VelocityViewResolver , VelocityView , oder ContentNegotiatingViewResolver ?

2voto

Polaris878 Punkte 36249

Ich fand heraus, dass dies am besten durch das Hinzufügen einer logger Anweisung in meiner Log-Konfigurationsdatei speziell für die Velocity-Engine (Velocity und mein Projekt verwenden beide Commons-Logging). Mein Logger-Anweisung sieht wie folgt aus:

<logger name="org.apache.velocity.app">
    <level value="OFF" />
</logger>

2voto

Das Problem wird in Spring 3.2 behoben, siehe SPR-8640 . Nach dieser Verbesserung können Sie Velocity View Resolver so konfigurieren, dass nicht aufgelöste Ansichten nur einmal überprüft werden.

1voto

Mike Punkte 633

Dies geschieht, weil Ihr ContentNegotiatingViewResolver verwendet VelocityViewResolver . Sie können dies verhindern, indem Sie ihm eine leere (aber nicht leere) Liste von Ansichtsauflösern geben.

<bean
    class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">
    ...
    <property name="viewResolvers">
          <list />
    </property>
</bean>

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X