2015-09-21 4 views
0

Я пытаюсь включить CORS для моего Java Servlet со следующим классом:Tomcat СИЛЬНЫЙ: Исключение запуска фильтра CorsFilter, ClassNotFoundException

package com.prosperity.mobile.core; 

import java.io.IOException; 

import javax.servlet.Filter; 
import javax.servlet.FilterChain; 
import javax.servlet.FilterConfig; 
import javax.servlet.ServletException; 
import javax.servlet.ServletRequest; 
import javax.servlet.ServletResponse; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 

public class CORSFilter implements Filter { 

    @Override 
    public void init(FilterConfig filterConfig) throws ServletException { 
    } 

    public void doFilter(ServletRequest servletRequest, 
      ServletResponse servletResponse, FilterChain chain) 
      throws IOException, ServletException { 
     HttpServletRequest request = (HttpServletRequest) servletRequest; 
     // System.out.println("Request: " + request.getMethod()); 

     HttpServletResponse resp = (HttpServletResponse) servletResponse; 
     resp.addHeader("Access-Control-Allow-Origin", "*"); 
     resp.addHeader("Access-Control-Allow-Methods", "GET,POST"); 
     resp.addHeader("Access-Control-Allow-Headers", 
       "Origin, X-Requested-With, Content-Type, Accept"); 

     // Just ACCEPT and REPLY OK if OPTIONS 
     if (request.getMethod().equals("OPTIONS")) { 
      resp.setStatus(HttpServletResponse.SC_OK); 
      return; 
     } 
     chain.doFilter(request, servletResponse); 
    } 

    @Override 
    public void destroy() { 
    } 
} 

Мой XML:

<filter>  
    <filter-name>CorsFilter</filter-name> 
    <filter-class>com.prosperity.mobile.core.CORSFilter</filter-class> 
</filter> 

<filter-mapping> 
    <filter-name>CorsFilter</filter-name> 
    <url-pattern>*</url-pattern> 
</filter-mapping> 

И когда я пытаюсь разверните войну с экземпляром tomcat:

SEVERE: Exception starting filter CorsFilter 
java.lang.ClassNotFoundException: com.prosperity.mobile.core.CORSFilter 
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1718) 
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1569) 
    at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:529) 
    at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:511) 
    at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:139) 
    at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:258) 
    at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:105) 
    at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4809) 
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5485) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901) 
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877) 
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:632) 
    at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:1073) 
    at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1857) 
    at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) 
    at java.util.concurrent.FutureTask.run(Unknown Source) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
    at java.lang.Thread.run(Unknown Source) 

Sep 21, 2015 11:49:35 AM org.apache.catalina.core.StandardContext startInternal 
SEVERE: Error filterStart 
Sep 21, 2015 11:49:35 AM org.apache.catalina.core.StandardContext startInternal 
SEVERE: Context [/ProsperityMobile] startup failed due to previous errors 

Который кажется довольно очевидной ошибкой, он жаловался, что это не найдя класс CORSFilter .. но он там, в правильном пакете и все ?!

Как примечание: Мой кот экземпляр находится по адресу: C: \ Apache-7.0.52-кот

ответ

5

разархивировать архив войны и тройной проверить файл класса есть.

+0

Ницца .. когда я разархивирую свою войну, в проекте нет классов. Структура каталогов существует для всех моих пакетов, но в них нет классов. Любая идея, почему это произойдет? – Tiwaz89

+0

обновить, очистить и построить - повторите попытку. –

+0

Я пробовал это несколько раз – Tiwaz89