Frage

Ich habe eine JavaEE 1.4 Web-Anwendung, die auf WebSphere Application Server 6.0. In web.xml gibt es ein Servlet konfiguriert, dass alle Server-Anfragen abfangen:

<servlet-mapping>
    <servlet-name>name</servlet-name>
    <url-pattern>/*</url-pattern>
</servlet-mapping>

Das funktioniert gut, bis ich versuche, etwas mit *.jsp Endung zu beantragen. In diesem Fall versuchen Server JSP mit diesem Namen zu finden und schlagen mit dem Fehler:

java.io.FileNotFoundException: JSPG0036E: Failed to find resource /cfvct/search_criteria.jsp
    at com.ibm.ws.jsp.webcontainerext.JSPExtensionProcessor.findWrapper(JSPExtensionProcessor.java:279)
    at com.ibm.ws.jsp.webcontainerext.JSPExtensionProcessor.handleRequest(JSPExtensionProcessor.java:261)
    at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3226)
    at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:253)
    at com.ibm.ws.webcontainer.VirtualHost.handleRequest(VirtualHost.java:229)
    at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:1970)
    at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:120)
    at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:434)
    at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:373)
    at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:253)
    at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminaters(NewConnectionInitialReadCallback.java:207)
    at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete(NewConnectionInitialReadCallback.java:109)
    at com.ibm.ws.tcp.channel.impl.WorkQueueManager.requestComplete(WorkQueueManager.java:566)
    at com.ibm.ws.tcp.channel.impl.WorkQueueManager.attemptIO(WorkQueueManager.java:619)
    at com.ibm.ws.tcp.channel.impl.WorkQueueManager.workerRun(WorkQueueManager.java:952)
    at com.ibm.ws.tcp.channel.impl.WorkQueueManager$Worker.run(WorkQueueManager.java:1039)
    at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1475)

Ich brauche diese Anforderung durch das Servlet verarbeitet haben, aber scheint Server einige JSPExtensionProcessor nutzt alle Wege enden mit .jsp zu verarbeiten. Gibt es eine Möglichkeit, dieses Verhalten zu ändern?

War es hilfreich?

Lösung

Ja, müssen Sie Ihr Servlet * .jsp, um zur Karte zu erhalten * .jsp Unterstützung für Servlets weitergeleitet.

<servlet-mapping>
        <servlet-name>name</servlet-name>
        <url-pattern>*.jsp</url-pattern>
</servlet-mapping>

Es ist in der Regel eine schlechte Idee jsps zugänglich direkt zu haben, aber. sie in WEB-INF in einem Verzeichnis platzieren, dann eine entsprechende URL-Zuordnung (.do, .Action, usw.) an ein Servlet, die dann intern zu dieser JSP leitet die bessere Praxis.

Also statt thisUrl.jsp einzugeben, würde der Benutzer eingeben thisUrl.do oder thisUrl.action, und es wäre dann vom Servlet getroffen zu werden, um thisUrl.jsp zu umleiten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top