Warum wird Restlet unter Tomcat unter JBoss 5.1 ausgeführt, die meine Seite "Index.html" als Typ "Anwendung/Oktettstrom" anstelle von "text/html" zurückgibt?

StackOverflow https://stackoverflow.com/questions/1868800

  •  18-09-2019
  •  | 
  •  

Frage

Ich habe eine Homepage Home.html in einer Kriegsdatei mit dem Namen "webapp-1.0.war". Wenn der Browser anfordert "http: // domain/myapp"Ich möchte, dass die Heimat.http: // domain/myapp". Ich möchte nicht "http: //domain/myapp/home.html"In der Adressleiste.

Also stecke ich das in web.xml ein:

<welcome-file-list>
  <welcome-file>home.html</welcome-file>
</welcome-file-list> 

Und ich habe mit Folgendem einen Jboss-Web.xml hinzugefügt:

<jboss-web>
  <context-root>myapp</context-root>
</jboss-web>

Das funktioniert fast. Wenn der Browser anfordert "http: // domain/myapp"Das Home.html wird gesendet, aber der MIME-Typ ist Anwendung/Oktettstrom anstelle von Text/HTML, und dies lässt Firefox denken, es sei ein Datei-Download.

War es hilfreich?

Lösung

"Oktettstream" ist der Standardmime-Typ im Restlet. Das "HTML" ist in der Standardzuordnung definiert. Sieht so aus, als hätten Sie Ihren eigenen MetadataService. Sie können Erweiterungszuordnungen wie diese hinzufügen,

getMetadataService().addExtension("html", MediaType.TEXT_HTML, true);

Andere Tipps

Dies ist nicht das Standardverhalten.

MIME -Typen sind normalerweise definiert in web.xml. Im Falle von Tomcat und Klonen sind die AppServer-Default-MIME-Typen definiert in /conf/web.xml.

Dies kann jedoch durch benutzerdefinierte Mime -Mapping -Einträge in den WebApps überschrieben werden /WEB-INF/web.xml oder von a HttpServletResponse#setContentType() in einem Servlet oder Filter in der Anfrage-Wirkungskette. Ich kann mir vorstellen, dass eine Art schlechter Filter zuhört /* Das schnüffelt und legt den Inhaltstyp basierend auf der Anforderungs -URL fest. Sehen Sie, ob in Ihrem WebApp etwas Ähnliches vorhanden ist.

Es scheint tatsächlich das Standardverhalten von Restlet zu sein. Nachdem ich noch mehr darüber nachgedacht habe, mag ich das Verhalten. Ich denke, die Web -App als Ganzes (was von der Root -URL impliziert wird) ist nicht wirklich die Ressource, die mein Browser am Abrufen interessiert. Der Browser interessiert sich wirklich für eine HTML -Darstellung der "Home" -Ressource, die Teil der Web -App ist. Also ich denke, ich werde es verlassen. Aber ich werde dich verbessern, Balusc, dass ich mir die Zeit genommen habe, für mich zu antworten.

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