Perché Restlet esecuzione in Tomcat sotto JBoss 5.1 tornare la mia pagina index.html come tipo “application / octet-stream” invece di “text / html”?

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

  •  18-09-2019
  •  | 
  •  

Domanda

Ho una home page home.html all'interno di un file di guerra chiamato "webapp-1.0.war". Quando le richieste del browser " http: // dominio / myapp " Voglio che il home.html servito, ma voglio che la barra degli indirizzi browswer di continuare a visualizzare " http: // dominio / myapp ". NON voglio " http: //domain/myapp/home.html " nella barra degli indirizzi.

Così ho messo questo in web.xml:

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

E ho aggiunto un jboss-web.xml con il seguente:

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

Questo funziona quasi. Quando le richieste del browser " http: // dominio / myapp " il home.html viene inviato, ma il tipo MIME è l'applicazione / octet-stream invece di text / html, e questo rende Firefox credo che sia un file di download.

È stato utile?

Soluzione

"octet-stream" è il mime-type di default in Restlet. Il "html" è definito nella mappatura predefinita. Sembra che avete il vostro MetaDataService. È possibile aggiungere i mapping di estensione di questo tipo,

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

Altri suggerimenti

Questo non è il comportamento di default.

tipi MIME sono normalmente definied in web.xml. In caso di Tomcat e cloni, i tipi MIME appserver-default sono definied in /conf/web.xml.

Questo può tuttavia essere sovrascritto voci di mapping MIME personalizzato in /WEB-INF/web.xml del webapp o da un HttpServletResponse#setContentType() in un servlet o un filtro nella catena richiesta-risposta. Posso immaginare che ci sia una sorta di scarsa ascolto filtro su /* che annusa in modo errato e imposta il tipo di contenuto in base l'URL della richiesta. Vedere se qualcosa di simile esiste nel vostro webapp.

E in effetti sembra essere il comportamento predefinito di Restlet. Dopo averci pensato un po ', suppongo che mi piace il comportamento. Pensando restfully, suppongo che l'applicazione web nel suo complesso (che è ciò che è implicita l'url root) non è proprio la risorsa mio browser è interessato a recuperare. Il browser è veramente interessato a una rappresentazione HTML della risorsa "casa", che è una parte del web app. Quindi credo che lascio. Ma io vado avanti upvote voi, BalusC per aver trovato il tempo di rispondere per me.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top