Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

apache tomcat catalina as maven dependency for CORS filter

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,

like image 774
epsilonpsi Avatar asked Mar 25 '14 12:03

epsilonpsi


People also ask

What is Tomcat Catalina?

Tomcat is actually composed of a number of components, including a Tomcat JSP engine and a variety of different connectors, but its core component is called Catalina. Catalina provides Tomcat's actual implementation of the servlet specification; when you start up your Tomcat server, you're actually starting Catalina.

What is Tomcat Cors filter?

CORS Filter Introduction. This filter is an implementation of W3C's CORS (Cross-Origin Resource Sharing) specification, which is a mechanism that enables cross-origin requests. The filter works by adding required Access-Control-* headers to HttpServletResponse object.


1 Answers

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.

like image 109
ash Avatar answered Sep 23 '22 13:09

ash