2 Stimmen

Javascript-Quelldateien auf JBoss haben den falschen Content-Type/Mime-Type?

Ich schreibe eine JSP-Anwendung und stelle sie auf JBoss 5.0 bereit. Wenn ich versuche, meine CSS- oder Javascript-Dateien abzurufen, gibt JBoss den falschen Content-Type für die Datei zurück, sodass Firefox sich weigert, den darin enthaltenen Code auszuführen. Hier ist meine web.xml-Datei:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xmlns="http://java.sun.com/xml/ns/javaee"
         xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
                             http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
         id="WebApp_ID" version="2.5">

   <display-name>TestServlet</display-name>

   <servlet>
      <servlet-name>TestServlet</servlet-name>
      <servlet-class>org.example.TestServlet</servlet-class>
      <load-on-startup>1</load-on-startup>
   </servlet>
   <servlet-mapping>
      <servlet-name>TestServlet</servlet-name>
      <url-pattern>/engine/*</url-pattern>
   </servlet-mapping>

   <welcome-file-list>
      <welcome-file>
         /login.jsp
      </welcome-file>
   </welcome-file-list>
   <jsp-config>
      <jsp-property-group>
         <display-name>TestServlet</display-name>
         <url-pattern>/*</url-pattern>
         <el-ignored>false</el-ignored>
         <scripting-invalid>false</scripting-invalid>
         <is-xml>false</is-xml>
         <trim-directive-whitespaces>true</trim-directive-whitespaces>
      </jsp-property-group>
   </jsp-config>

   <mime-mapping>
      <extension>css</extension>
      <mime-type>text/css</mime-type>
   </mime-mapping>
   <mime-mapping>
      <extension>js</extension>
      <mime-type>text/javascript</mime-type>
   </mime-mapping>
</web-app>

Wenn ich lynx zum Testen des Dateidownloads verwende, erhalte ich folgendes Ergebnis:

host> lynx http://devbox:8080/TestServlet/js/main.js -kopf -dump

HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
X-Powered-By: Servlet 2.5; JBoss-5.0/JBossWeb-2.1
Set-Cookie: JSESSIONID=EA6FFF63B00F0B8C0C44F7A79BD368CF; Path=/jclaim
Content-Type: text/html;charset=ISO-8859-1
Content-Length: 1778
Date: Sun, 24 May 2009 17:53:31 GMT
Connection: close

0voto

Chris K Punkte 11536

Ich habe eine Antwort gefunden, indem ich Folgendes geändert habe:

  <jsp-property-group>
     <display-name>TestServlet</display-name>
     <url-pattern>/*</url-pattern>

stattdessen dies zu sein:

  <jsp-property-group>
     <display-name>TestServlet</display-name>
     <url-pattern>*.jsp</url-pattern>

Als JSP-Anfänger bin ich mir nicht sicher, aus welchem Tutorium ich das vorherige Beispiel übernommen habe, aber es hat zu keiner Menge Frustration geführt.

Der lynx-Befehl führt nun zu einem Ergebnis:

HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
X-Powered-By: Servlet 2.5; JBoss-5.0/JBossWeb-2.1
Accept-Ranges: bytes
ETag: W/"11038-1243181792000"
Last-Modified: Sun, 24 May 2009 16:16:32 GMT
Content-Type: text/javascript
Content-Length: 11038
Date: Sun, 24 May 2009 17:57:07 GMT
Connection: close

Dies gilt auch für CSS.

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