Как связать Spring Boot с EJB и Wildfly - PullRequest
0 голосов
/ 11 октября 2019

Я пытаюсь интегрировать EJB с Spring Boot в Wildfly. Я сделал все настройки и Wildfly запускается без проблем. Но при доступе к методу я беру это исключение:

11: 23: 34,118 ОШИБКА [org.springframework.boot.web.servlet.support.ErrorPageFilter] (задание по умолчанию-1) Пересылка на страницу с ошибкойиз запроса [/ index] из-за исключительной ситуации [EJBCLIENT000079: невозможно найти место назначения для запроса EJB StatelessEJBLocator для «/ corporativo / HelloStatefulWorld», представление - интерфейс br.com.ejb.teste.HelloStatefulWorld, сходство отсутствует]: javax.ejbИсключение(EJBClientInvocationContext.java:567) в org.jboss.ejb.client.EJBClientInvocationContext.getResult (EJBClientInvocationContext.java:503) в org.jboss.ejb.protocol.remote.liv.jpgjboss.ejb.client.EJBClientInvocationContext.getResult (EJBClientInvocationContext.java:569) при org.jboss.ejb.client.EJBClientInvocationContext.getResult (EJBClientInvocationContext.java:503) в org.jboss.ejb.client.TransactionPostDiscoveryInterceptor.handleInvocationResult (TransactionPostDiscoveryInterceptor.java:133) по адресу org.jboss.ejb.client.EJBClientInvocationContext.getResult (EJBClientInvocationContext.java:569) по адресу org.jboss.ejb.client.EJBClientInvocationContext.getRjent.jb«jboss.ejb.client.NamingEJBClientInterceptor.handleInvocationResult (NamingEJBClientInterceptor.java:78) в org.jboss.ejb.client.EJBClientInvocationContext.getResult (EJBClientInvocationContext.java:569) в org.jboss.ejb.client.EJBClientInvocationContext.getResult (EJBClientInvocationContext.java:503) в org.jboss.ejb.client.TransactionInterceptor.handle.jj.client.EJBClientInvocationContext.getResult (EJBClientInvocationContext.java:569) при org.jboss.ejb.client.EJBClientInvocationContext.getResult (EJBClientInvocationContext.java:503) в org.jboss.ejb.client.EJBClientInvocationContext.awaitResponse (EJBClientInvocationContext.java:913) в org.jboss.ejb.client.EJBInvocationHandler.invoke (EJBInvocationHandler.java:177) в org.jboss.ejb.client.EJBInvocationHandler.invoke (EJBInvocationHandler.java.sun.xylo.xylox100)(Неизвестный источник) по адресу br.com.springWeb.AloMundo.index (AloMundo.java:28) по адресу sun.reflect.NativeMethodAccessorImpl.invoke0 (собственный метод) по адресу sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAjor).reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43) по адресу java.lang.reflect.Method.invoke (Method.java:498) по адресу org.springframework.web.method.support.InvocableHandlerMethod.doInvoke (InvocableHandlerMethoraj).method.support. .method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod (RequestMappingHandlerAdapter.java:892) вorg.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal (RequestMappingHandlerAdapter.java:797) в org.springframework.web.servlet.mvc.method.AbstractHandlerMethogspringframework.web. Java: 1005) в org.springframework.web.servlet.FrameworkServlet.doGet (FrameworkServlet.java:897) в javax.servlet.http.HttpServlet.service (HttpServlet.java:687) в org.springfworkme.web.web.service (FrameworkServlet.java:882) в javax.servlet.http.HttpServlet.service (HttpServlet.java:790) в io.undertow.servlet.handlers.ServletHandler.handleRequest (ServletHandler.java:74to) в io. servlet.handlers.FilterHandler $ FilterChainImpl.doFilter (FilterHandler.java:129) в org.springframework.web.filter.RequestContextFilter.doFilterInternal (RequestContextFilter.java:99) в org.springframework.web.filter.OncePerRequestFilter.doFilter (Once8ertowj):.core.ManagedFilter. : 92) в org.springframework.web.filter.OncePerRequestFilter.doFilter (OncePerRequestFilter.java:118) в io.undertow.servlet.core.ManagedFilter.doFilter (ManagedFilter.java:61) в io.undertow. FilterHandler $ FilterChainImpl.doFilter (FilterHandler.java:131) в оргв io.undertow.servlet.core.ManagedFilter.doFilter (УправлениеdFilter.java:61) at io.undertow.servlet.handlers.FilterHandler $ FilterChainImpl.doFilter (FilterHandler.java:131) в org.springframework.boot.web.servlet.support.ErrorPageFilter.doFilter) ErrorPageна org.springframework.boot.web.servlet.support.ErrorPageFilter.access $ 000 (ErrorPageFilter.java:66) на org.springframework.boot.web.servlet.support.ErrorPageFilter $ 1.doFilterInternal (ErrorPageF3). .springframework.web.filter.OncePerRequestFilter. .doFilter (ManagedFilter.java:61) в io.undertow.servlet.handlers.FilterHandler $ FilterChainImpl.doFilter (FilterHandler.java:131) в org.springframework.web.filter.CharacterEncodingFilter.doilEncorg.springframework.web.filter.OncePerRequestFilter.doFilter (OncePerRequestFilter.java:118) в io.undertow.servlet.core.ManagedFilter.doFilter (ManagedFilter.java:61) на io.undertow.servlet.handlers.FilterHandler $ FilterChainImpl.doFilter (FilterHandler.java:131) на io.undertow.servlet.handlers.Fillequand (FilterHandler.java:84) в io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest (ServletSecurityRoleHandler.java:62) в io.undertow.servlet.handlers.ServletChain $ 1.handleRehaest (серво-отправитель: 68undertow.servlet.handlers.ServletDispatchingHandler.handleRequest (ServletDispatchingHandler.java:36) в org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest (SecurityContextAssociationH78ler)io.undertow.server.handlers.PredicateHandler.handleRequest (PredicateHandler.java:43) в io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest (SSLInformationAssociationHandler.java:132) .security. ServletAuthenticationCallHandler.handleRequest (ServletAuthenticationCallHandler.java:57) в io.undertow.server.handlers.PredicateHandler.handleRequest (PredicateHandler.java:43) в io.undertow.security.handlers.Ajljj.undertow.servlet.handlers.security. .handleRequest (CachedAuthenticatedSessionHandler.java:77) в io.undertow.security.handlers.NotificationReceiverHandler. .wildfly. .GlobalRequestControllerHandler. io.undertow.servlet.handlers.ServletInitialHandler.access $ 100 (ServletInitialHandler.java:81) в io.undertow.servlet.handlers.ServletInitialHandler $ 2.call (ServletInitialHandler.java:138)по адресу io.undertow.servlet.handlers.ServletInitialHandler $ 2.call (ServletInitialHandler.java:135) по адресу io.undertow.servlet.core.ServletRequestContextThreadSetupAction $ 1.call (сервлет_процесса.вложения_приложения$ 1.call (ContextClassLoaderSetupAction.java:43) по адресу org.wildfly.extension.undertow.security.SecurityContextThreadSetupAction.lambda $ создать $ 0 (SecurityContextThreadSetupAction.java:105) в org.wildfly.extationwwwDwDWD$ create $ 0 (UndertowDeploymentInfoService.java:1514) в org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService $ UndertowThreadSetupAction.lambda $ create $ 0 (UndertowDeploymentInfoService.juper.wava.weg. .lambda $ create $ 0 (UndertowDeploymentInfoService.java:1514) в org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService $ UndertowThreadSetupAction.lambda $ создать $ 0 (UndertowDeploymentInfoService.java:1514) в io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest (ServletInitialHandler.java:272). Java: 81) в io.undertow.servlet.handlers.ServletInitialHandler $ 1.handleRequest (ServletInitialHandler.java:104) в io.undertow.server.Connectors.executeRootHandler (Connectors.java:360) в io.underExper 1.run (HttpServerExchange.java:830) в org.jboss.threads.ContextClassLoaderSavingRunnable.run (ContextClassLoaderSavingRunnable.java:35) в org.jboss.threads.EnhancedQueueExueutor.safeRuehorg.jboss. 745)

Пружинный класс

    @SpringBootApplication
public class SpringWebApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringWebApplication.class, args);        
        System.out.println("FIM");
    }

    @Bean
    public RestTemplate rest() {
        return new RestTemplate();
    }

    @Bean
    public Context context() throws NamingException {
        System.out.println("########################################### CONTEXT ########################################### ");
        Properties properties = new Properties();
        properties.put("java.naming.factory.initial", "org.wildfly.naming.client.WildFlyInitialContextFactory");


        return new InitialContext(properties);          
    }

    @Bean
    public HelloStatefulWorld helloStatefulWorld(Context context) throws NamingException {
        System.out.println("########################################### STATEFULL ########################################### ");
        return (HelloStatefulWorld) context.lookup(this.getFullName(HelloStatefulWorld.class));
    }

    @Bean
    public HelloStatelessWorld helloStatelessWorld(Context context) throws NamingException {
        System.out.println("########################################### STATELESS ########################################### ");
        return (HelloStatelessWorld) context.lookup(this.getFullName(HelloStatelessWorld.class));
    }

    @SuppressWarnings("rawtypes")
    private String getFullName(Class classType) {
        System.out.println("########################################### FULL NAME ########################################### ");
        String moduleName = "ejb:/corporativo/";
        String beanName = classType.getSimpleName();
        String viewClassName = classType.getName();

        return moduleName + beanName + "!" + viewClassName;
    }
}

контроллер

@Controller("/AloMundo")
public class AloMundo {


    @Autowired
    private HelloStatefulWorld helloStatefulWorld;

    @Autowired
    private HelloStatelessWorld helloStatelessWorld;

    @RequestMapping(value = "/index", method = RequestMethod.GET)   
    public ModelAndView index() {
        System.out.println("FOI");

        System.out.println("" + helloStatefulWorld.getHelloWorld());

        ModelAndView mv = new ModelAndView("index");    
        return mv;
    }

}

EJB-класс

@Stateful(name = "HelloStatefulWorldBean")
public class HelloStatefulWorldBean implements HelloStatefulWorld {

    private int homManyTimes = 0;

    @Override
    public int howManyTimes() {
        return homManyTimes;
    }

    @Override
    public String getHelloWorld() {
        homManyTimes++;
        return "Hello Stateful World";
    }
}

Мне нужно подключиться черезЛокальный поиск, EJB-проект с приложением Spring Boot.

...