Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Tomcat严重:启动过滤器CorsFilter时出现异常,ClassNotFoundException_Java_Tomcat_Cors_Catalina - Fatal编程技术网

Java Tomcat严重:启动过滤器CorsFilter时出现异常,ClassNotFoundException

Java Tomcat严重:启动过滤器CorsFilter时出现异常,ClassNotFoundException,java,tomcat,cors,catalina,Java,Tomcat,Cors,Catalina,我试图通过以下类为我的java servlet启用CORS: 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.ser

我试图通过以下类为我的java servlet启用CORS:

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>

克斯菲尔特
com.prosperity.mobile.core.CORSFilter
克斯菲尔特
*
当我尝试将war部署到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时出现异常
java.lang.ClassNotFoundException:com.prosperity.mobile.core.CORSFilter
位于org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1718)
位于org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1569)
位于org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:529)
位于org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:511)
位于org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:139)
位于org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:258)
位于org.apache.catalina.core.ApplicationFilterConfig.(ApplicationFilterConfig.java:105)
位于org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4809)
位于org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5485)
位于org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
位于org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
位于org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
位于org.apache.catalina.core.StandardHost.addChild(StandardHost.java:632)
位于org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:1073)
位于org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1857)
位于java.util.concurrent.Executors$RunnableAdapter.call(未知源)
位于java.util.concurrent.FutureTask.run(未知源)
位于java.util.concurrent.ThreadPoolExecutor.runWorker(未知源)
位于java.util.concurrent.ThreadPoolExecutor$Worker.run(未知源)
位于java.lang.Thread.run(未知源)
2015年9月21日上午11:49:35 org.apache.catalina.core.StandardContext startInternal
严重:错误筛选器开始
2015年9月21日上午11:49:35 org.apache.catalina.core.StandardContext startInternal
严重:由于以前的错误,上下文[/ProsperityMobile]启动失败
这似乎是一个非常明显的错误,它抱怨没有找到CORSFilter类。。但它就在那里,在正确的包裹里,还有所有的东西


请注意:我的tomcat实例位于:C:\apache-tomcat-7.0.52

解压war文件并三次检查类文件是否在那里。

解压war文件并三次检查类文件是否在那里。

Nice。。当我解压我的war时,项目中没有类。我的所有包都有目录结构,但其中不包含任何类。。知道为什么会发生这种情况吗?刷新、清理和构建-再试一次。你在使用maven吗?共享pom.xml和目录结构。是否使用Eclipse?您的Eclipse项目可能已损坏。制作项目的副本,从Eclipse中删除项目,重新创建Eclipse项目并再次复制所有文件。很好。。当我解压我的war时,项目中没有类。我的所有包都有目录结构,但其中不包含任何类。。知道为什么会发生这种情况吗?刷新、清理和构建-再试一次。你在使用maven吗?共享pom.xml和目录结构。是否使用Eclipse?您的Eclipse项目可能已损坏。制作项目的副本,从Eclipse中删除项目,重新创建Eclipse项目并再次复制所有文件。