InstantiationException при запуске фильтра MyFilter на GlassFish v3.1
Я пытаюсь развернуть свое EAR-приложение, состоящее из модулей ejb и war на glassfish. Приложение развернуто, но есть исключение, связанное с фильтром, который есть в моем веб-модуле. Он выбрасывается каждый раз, когда сервер пытается запустить фильтр.
Но почему? Я не вижу никакой очевидной причины для этого! Любая помощь приветствуется.
добавить информацию: я скомпилирую и разверну с maven
Класс фильтра и отображение:
public class FrontControllerFilter implements Filter {
@Override
public void init(FilterConfig fc) throws ServletException {
}
@Override
public void doFilter(ServletRequest request,
ServletResponse response,
FilterChain filterChain)
throws IOException, ServletException {
// Přetypujeme na HTTP objekty
HttpServletRequest httpRequest = (HttpServletRequest) request;
HttpServletResponse httpResponse = (HttpServletResponse) response;
//some code
}
//some code
}
<filter>
<filter-name>FrontControllerFilter</filter-name>
<filter-class>com.myapp.controller.FrontControllerFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>FrontControllerFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
Трассировка исключения:
[#|2011-06-21T12:25:18.545+0200|SEVERE|glassfish3.1|javax.enterprise.system.cont
ainer.web.com.sun.enterprise.web|_ThreadID=100;_ThreadName=admin-thread-pool-484
8(2);|WebModule[/web]PWC1270: Exception starting filter FrontControllerFilter
java.lang.InstantiationException
at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFi
lterConfig.java:124)
at org.apache.catalina.core.StandardContext.filterStart(StandardContext.
java:4625)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:5
316)
at com.sun.enterprise.web.WebModule.start(WebModule.java:500)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase
.java:917)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:90
1)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:755)
at com.sun.enterprise.web.WebContainer.loadWebModule(WebContainer.java:1
980)
at com.sun.enterprise.web.WebContainer.loadWebModule(WebContainer.java:1
630)
at com.sun.enterprise.web.WebApplication.start(WebApplication.java:100)
at org.glassfish.internal.data.EngineRef.start(EngineRef.java:130)
at org.glassfish.internal.data.ModuleInfo.start(ModuleInfo.java:269)
at org.glassfish.internal.data.ApplicationInfo.start(ApplicationInfo.jav
a:286)
at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationL
ifecycle.java:461)
at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationL
ifecycle.java:240)
at org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.ja
va:370)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$1.execute(CommandRunner
Impl.java:360)
at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunner
Impl.java:370)
at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunner
Impl.java:1067)
at com.sun.enterprise.v3.admin.CommandRunnerImpl.access$1200(CommandRunn
erImpl.java:96)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execut
e(CommandRunnerImpl.java:1247)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execut
e(CommandRunnerImpl.java:1235)
at org.glassfish.deployment.admin.ReDeployCommand.execute(ReDeployComman
d.java:126)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$1.execute(CommandRunner
Impl.java:355)
at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunner
Impl.java:370)
at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunner
Impl.java:1067)
at com.sun.enterprise.v3.admin.CommandRunnerImpl.access$1200(CommandRunn
erImpl.java:96)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execut
e(CommandRunnerImpl.java:1247)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execut
e(CommandRunnerImpl.java:1235)
at com.sun.enterprise.v3.admin.AdminAdapter.doCommand(AdminAdapter.java:
465)
at com.sun.enterprise.v3.admin.AdminAdapter.service(AdminAdapter.java:22
2)
at com.sun.grizzly.tcp.http11.GrizzlyAdapter.service(GrizzlyAdapter.java
:168)
at com.sun.enterprise.v3.server.HK2Dispatcher.dispath(HK2Dispatcher.java
:117)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(Container
Mapper.java:234)
at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:8
22)
at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:719)
at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1013)
at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFil
ter.java:225)
at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultPro
tocolChain.java:137)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.jav
a:104)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.jav
a:90)
at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java
:79)
at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextT
ask.java:54)
at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.
java:59)
at com.sun.grizzly.ContextTask.run(ContextTask.java:71)
at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadP
ool.java:532)
at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool
.java:513)
at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.ClassNotFoundException: cz.pavel.javaee.webmail.controller.
FrontControllerFilter
at org.glassfish.web.loader.WebappClassLoader.loadClass(WebappClassLoade
r.java:1518)
at org.glassfish.web.loader.WebappClassLoader.loadClass(WebappClassLoade
r.java:1368)
at org.apache.catalina.core.ApplicationFilterConfig.getFilter(Applicatio
nFilterConfig.java:252)
at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFi
lterConfig.java:120)
... 47 more
|#]
2 ответа
Вызывается: java.lang.ClassNotFoundException: cz.pavel.javaee.webmail.controller. FrontControllerFilter
Ваш фильтр, вероятно, не находится на пути к классам (или его имя неверно).
Это может быть из-за неправильного импорта интерфейса фильтра. Убедитесь, что вы использовали ниже класс импорта
import javax.servlet.Filter
не любой другой класс фильтра. Есть много других классов фильтров, которые при их использовании не обнаруживают ошибку во время компиляции.