ServletExtension类的问题

时间:2015-12-07 08:46:33

标签: java servlets

我已经实现了apow的apvletExtention机制。代码就像

public class MyServletExtentionClass implements ServletExtension{

    @Override
    public void handleDeployment(final DeploymentInfo deploymentInfo, final ServletContextImpl servletContext) {
         deploymentInfo.addInitialHandlerChainWrapper(new HandlerWrapper() {

            @Override
            public HttpHandler wrap(HttpHandler handler) {
                return Handlers.path()
                        .addPrefixPath("/", handler)
                        .addPrefixPath("/hello", new MyHandler());
            }
        }); 

    }
}

我还在META_INF / services下添加了文件 io.undertow.servlet.ServletExtension ,内容为 com.handler.MyServletExtentionClass

但是当我在wildfly中部署war文件时,我会得到如下的异常。

jboss.undertow.deployment.default-server.default-host./webapps: org.jboss.msc.service.StartException in service jboss.undertow.deployment.default-server.default-host./webapps: Failed to start service
    at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1904) [jboss-msc-1.2.2.Final.jar:1.2.2.Final]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_71]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_71]
    at java.lang.Thread.run(Thread.java:745) [rt.jar:1.7.0_71]
Caused by: java.lang.AbstractMethodError
    at io.undertow.servlet.core.DeploymentManagerImpl.handleExtensions(DeploymentManagerImpl.java:244)
    at io.undertow.servlet.core.DeploymentManagerImpl.deploy(DeploymentManagerImpl.java:149)
    at org.wildfly.extension.undertow.deployment.UndertowDeploymentService.startContext(UndertowDeploymentService.java:87)
    at org.wildfly.extension.undertow.deployment.UndertowDeploymentService.start(UndertowDeploymentService.java:72)
    at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1948) [jboss-msc-1.2.2.Final.jar:1.2.2.Final]
    at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1881) [jboss-msc-1.2.2.Final.jar:1.2.2.Final]
    ... 3 more

1 个答案:

答案 0 :(得分:0)

试试这个

...
import io.undertow.servlet.ServletExtension;
import javax.enterprise.inject.spi.Extension;

public class MyServletExtentionClass implements Extension, ServletExtension {
....