Предварительное приложение сервлета, определенное в web.xml -error - PullRequest
0 голосов
/ 08 октября 2018

Когда я пытаюсь развернуть приложение JAX-RS в WebLogic, я получаю следующее исключение

The preliminary servlet App defined in web.xml or web-fragment.xml has not been completed through the ServletContext.addServlet() API by any ServletContextListener or ServletContainerInitializer

Что это значит и почему я получаю эту ошибку?

Вот приложениекласс

import java.util.HashSet;
import java.util.Set;

import javax.ws.rs.ApplicationPath;
import javax.ws.rs.core.Application;

@ApplicationPath("/test")
public class App extends Application {

    @Override
    public Set<Class<?>> getClasses() {
        Set<Class<?>> set = new HashSet<>();
        set.add(EchoEndpoint.class);
        return set;
    }

}

Конечная точка

import javax.ejb.EJB;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.MediaType;

import weblogicspringsecurity.service.EchoService;

@Path("/echo")
public class EchoEndpoint {

//  @EJB
    private EchoService service;

    @GET
    @Produces(MediaType.TEXT_PLAIN)
    public String echo(@QueryParam("foo") String foo) {
        return service.echo(foo);
    }
}

И web.xml

<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee 
         http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
         version="3.1">
    <servlet>
        <display-name>Echo REST Servlet</display-name>
        <servlet-name>App</servlet-name>
        <init-param>
            <param-name>javax.ws.rs.Application</param-name>
            <param-value>weblogicspringsecurity.rest.App</param-value>
        </init-param>
    </servlet>
</web-app>
...