2014-03-25 9 views
9

Ich benutze org.apache.catalina.filters.CorsFilter in meiner Webapp. So definiere ich die Maven AbhängigkeitApache Tomcat Catalina als Maven Abhängigkeit für CORS Filter

<dependency> 
    <groupId>org.apache.tomcat</groupId> 
    <artifactId>tomcat-catalina</artifactId> 
    <version>7.0.50</version> 
</dependency> 

Wenn ich nun den Umfang sagen „liefern“ oder „Laufzeit“ der Server nicht startet, wegen

java.lang.ClassNotFoundException: org.apache.catalina.filters.CorsFilter 

Diese Klasse ist nicht verfügbar in das catalina jar von jbossews/lib das ist 7.0.40

Ist es einfach, tomcat auf openshift "aufzuwerten"? oder wenn jemand eine Lösung vorschlagen kann, wird es sehr geschätzt.

Vielen Dank,

+0

Ich habe angefangen, CORS-Filter von com.thetransactioncompany zu verwenden und erfüllt meinen Zweck. Aber ich würde immer noch gerne eine Lösung für das Obige wissen. – epsilonpsi

Antwort

6

Das ist für mich gearbeitet:

 <dependency> 
      <groupId>org.apache.tomcat</groupId> 
      <artifactId>tomcat-catalina</artifactId> 
      <version>7.0.42</version> 
      <scope>provided</scope> 
     </dependency> 

Versuch 7.0.50 auch gearbeitet. Können Sie überprüfen, dass es keine konkurrierenden JAR-Dateiversionen gibt? Vielleicht gibt es eine ältere Version, ohne dass die Klasse tatsächlich von der JVM genutzt wird. Unter Linux kann "ls -l/proc/$ CATALINA_PID/fd" anzeigen, welche JAR-Datei gerade verwendet wird.

Stellen Sie außerdem sicher, dass Sie dies in einer neuen Version des Tomcat-Servers ausführen.

+3

Ich kam hier mit Tomcat 7.0.37 in einer normalen Webapp, aber die obige Schnipsel funktionierte nicht für mich. Das Problem ist, dass Sie mindestens Tomcat 7.0.41 benötigen, damit der CORS-Filter verfügbar ist **, wie Sie im Changelog für 7.0.41 unter http://tomcat.apache.org/oldnews-2013.html sehen können – user3001

0

Sie können das Glas zu Ihrem Repository hinzufügen und ändern die .openshift/config/catalina.properties es lassen Kater sehen:

shared.loader=${catalina.home}/../app-root/runtime/repo/_your_jar_folder_ 

Sie können auch die common.loader verwenden - nachschlagen Tomcats Refs für Unterschied.