11

I'm using org.apache.catalina.filters.CorsFilter in my webapp. So I specify the maven dependency

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

Now, If I say the scope is "provide" or "runtime" the server doesn't start, because of

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

This class is not available in the catalina jar from jbossews/lib which is 7.0.40

Is it easy to "upgrade" tomcat on openshift? or if anybody can suggest a solution, it is much appreciated.

Many thanks,

epsilonpsi
  • 3,693
  • 3
  • 15
  • 15
  • I've started using CORS filter from com.thetransactioncompany and serves my purpose. But I'd still like to know a solution for the above. – epsilonpsi Mar 25 '14 at 13:03

2 Answers2

7

This worked for me:

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

Trying 7.0.50 also worked. Can you double-check that there are no competing jar file versions lying around? Perhaps there is an older version without the class actually getting used by the JVM. Under Linux, "ls -l /proc/$CATALINA_PID/fd", may show which jar file is being used.

Also make sure to run this in a recent enough version of the Tomcat server.

ash
  • 4,078
  • 1
  • 17
  • 29
  • 3
    I came here using Tomcat 7.0.37 in a normal webapp, however the above snipped initally did not work for me. The problem is that **you need at least Tomcat 7.0.41 for the CORS filter to be available** as you can see in the changelog for 7.0.41 at http://tomcat.apache.org/oldnews-2013.html – user3001 Dec 10 '14 at 18:56
0

You can add the jar to your repository and modify the .openshift/config/catalina.properties to let tomcat see it:

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

You can also use the common.loader - look up tomcat's refs for difference.

ptrk
  • 1,684
  • 1
  • 14
  • 21