Java 如何将动态项目与springframework和EJB项目结合使用

Java 如何将动态项目与springframework和EJB项目结合使用,java,eclipse,spring-mvc,jakarta-ee,ejb-3.2,Java,Eclipse,Spring Mvc,Jakarta Ee,Ejb 3.2,我试图在eclipse中创建一个带有springframework 4.1.6的动态项目(版本3.1)和一个EJB项目(版本EJB3.2)。 但是,当我尝试集成项目时,出现了一些错误。 让我告诉你我正在尝试做什么,也许你可以帮我解决这个配置。少了什么?(最后有一个错误跟踪) Dymanic项目的我的文件: index.jsp <a href="teste.do/TesteMetodo">link</a> 我导入了此库: -\WebContent\WEB-INF\li


我试图在eclipse中创建一个带有springframework 4.1.6的动态项目(版本3.1)和一个EJB项目(版本EJB3.2)。
但是,当我尝试集成项目时,出现了一些错误。
让我告诉你我正在尝试做什么,也许你可以帮我解决这个配置。少了什么?(最后有一个错误跟踪)

Dymanic项目的我的文件:
index.jsp

<a href="teste.do/TesteMetodo">link</a>

我导入了此库:
-\WebContent\WEB-INF\lib\commons-logging-1.2.jar
-\WebContent\WEB-INF\lib\spring-aop-4.1.6.RELEASE.jar
-\WebContent\WEB-INF\lib\spring-beans-4.1.6.RELEASE.jar
-\WebContent\WEB-INF\lib\spring-context-4.1.6.RELEASE.jar
-\WebContent\WEB-INF\lib\spring-core-4.1.6.RELEASE.jar
-\WebContent\WEB-INF\lib\spring-expression-4.1.6.RELEASE.jar
-\WebContent\WEB-INF\lib\spring-WEB-4.1.6.RELEASE.jar
-\WebContent\WEB-INF\lib\spring-webmvc-4.1.6.RELEASE.jar

我的EJB项目文件:

testeacade.java

package com.denis.teste;

import javax.ejb.EJB;
import javax.servlet.http.HttpServletRequest;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

import com.denis.facade.TesteFacade;

@Controller
@RequestMapping("teste.do")
public class TesteController {

    @EJB
    private TesteFacade testeFacade;

    @RequestMapping("TesteMetodo")
    public String TesteMetodo(HttpServletRequest httpServletRequest) {
        httpServletRequest.getParameter("casa");
        System.out.println("entrou no metodo");
        testeFacade.facadeMethod();
        return "index2";
    }

}
package com.denis.facade;

import javax.ejb.Remote;

@Remote
public interface TesteFacade {

    public void facadeMethod();

}
package com.denis.facade;

import javax.ejb.EJB;
import javax.ejb.Stateless;

import com.denis.repository.TesteRepository;

@Stateless
public class TesteFacadeImpl implements TesteFacade {

    @EJB
    private TesteRepository testeRepository;

    @Override
    public void facadeMethod() {
        testeRepository.find(1l);
        System.out.println("facade method");
    }

}
package com.denis.repository;

import javax.ejb.Remote;

import com.denis.model.Usuario;

@Remote
public interface TesteRepository {

    public Usuario find(Long id);

}
package com.denis.repository;

import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

import com.denis.model.Usuario;

@Stateless
public class TesteRepositoryImpl implements TesteRepository {

    @PersistenceContext
    private EntityManager entityManager;

    public Usuario find(Long id) {
        return id == null ? entityManager.find(Usuario.class, id) : null;
    }

}
package com.denis.model;

import java.io.Serializable;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;

@Entity
@Table(name = "usuarios")
public class Usuario implements Serializable {

    private static final long serialVersionUID = 1L;

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "ID")
    private Long id;

    @Column(name = "NOME")
    private String nome;

}
TesteFacadeImpl.java

package com.denis.teste;

import javax.ejb.EJB;
import javax.servlet.http.HttpServletRequest;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

import com.denis.facade.TesteFacade;

@Controller
@RequestMapping("teste.do")
public class TesteController {

    @EJB
    private TesteFacade testeFacade;

    @RequestMapping("TesteMetodo")
    public String TesteMetodo(HttpServletRequest httpServletRequest) {
        httpServletRequest.getParameter("casa");
        System.out.println("entrou no metodo");
        testeFacade.facadeMethod();
        return "index2";
    }

}
package com.denis.facade;

import javax.ejb.Remote;

@Remote
public interface TesteFacade {

    public void facadeMethod();

}
package com.denis.facade;

import javax.ejb.EJB;
import javax.ejb.Stateless;

import com.denis.repository.TesteRepository;

@Stateless
public class TesteFacadeImpl implements TesteFacade {

    @EJB
    private TesteRepository testeRepository;

    @Override
    public void facadeMethod() {
        testeRepository.find(1l);
        System.out.println("facade method");
    }

}
package com.denis.repository;

import javax.ejb.Remote;

import com.denis.model.Usuario;

@Remote
public interface TesteRepository {

    public Usuario find(Long id);

}
package com.denis.repository;

import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

import com.denis.model.Usuario;

@Stateless
public class TesteRepositoryImpl implements TesteRepository {

    @PersistenceContext
    private EntityManager entityManager;

    public Usuario find(Long id) {
        return id == null ? entityManager.find(Usuario.class, id) : null;
    }

}
package com.denis.model;

import java.io.Serializable;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;

@Entity
@Table(name = "usuarios")
public class Usuario implements Serializable {

    private static final long serialVersionUID = 1L;

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "ID")
    private Long id;

    @Column(name = "NOME")
    private String nome;

}
TesteRepository.java

package com.denis.teste;

import javax.ejb.EJB;
import javax.servlet.http.HttpServletRequest;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

import com.denis.facade.TesteFacade;

@Controller
@RequestMapping("teste.do")
public class TesteController {

    @EJB
    private TesteFacade testeFacade;

    @RequestMapping("TesteMetodo")
    public String TesteMetodo(HttpServletRequest httpServletRequest) {
        httpServletRequest.getParameter("casa");
        System.out.println("entrou no metodo");
        testeFacade.facadeMethod();
        return "index2";
    }

}
package com.denis.facade;

import javax.ejb.Remote;

@Remote
public interface TesteFacade {

    public void facadeMethod();

}
package com.denis.facade;

import javax.ejb.EJB;
import javax.ejb.Stateless;

import com.denis.repository.TesteRepository;

@Stateless
public class TesteFacadeImpl implements TesteFacade {

    @EJB
    private TesteRepository testeRepository;

    @Override
    public void facadeMethod() {
        testeRepository.find(1l);
        System.out.println("facade method");
    }

}
package com.denis.repository;

import javax.ejb.Remote;

import com.denis.model.Usuario;

@Remote
public interface TesteRepository {

    public Usuario find(Long id);

}
package com.denis.repository;

import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

import com.denis.model.Usuario;

@Stateless
public class TesteRepositoryImpl implements TesteRepository {

    @PersistenceContext
    private EntityManager entityManager;

    public Usuario find(Long id) {
        return id == null ? entityManager.find(Usuario.class, id) : null;
    }

}
package com.denis.model;

import java.io.Serializable;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;

@Entity
@Table(name = "usuarios")
public class Usuario implements Serializable {

    private static final long serialVersionUID = 1L;

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "ID")
    private Long id;

    @Column(name = "NOME")
    private String nome;

}
TesteRepositoryImpl.java

package com.denis.teste;

import javax.ejb.EJB;
import javax.servlet.http.HttpServletRequest;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

import com.denis.facade.TesteFacade;

@Controller
@RequestMapping("teste.do")
public class TesteController {

    @EJB
    private TesteFacade testeFacade;

    @RequestMapping("TesteMetodo")
    public String TesteMetodo(HttpServletRequest httpServletRequest) {
        httpServletRequest.getParameter("casa");
        System.out.println("entrou no metodo");
        testeFacade.facadeMethod();
        return "index2";
    }

}
package com.denis.facade;

import javax.ejb.Remote;

@Remote
public interface TesteFacade {

    public void facadeMethod();

}
package com.denis.facade;

import javax.ejb.EJB;
import javax.ejb.Stateless;

import com.denis.repository.TesteRepository;

@Stateless
public class TesteFacadeImpl implements TesteFacade {

    @EJB
    private TesteRepository testeRepository;

    @Override
    public void facadeMethod() {
        testeRepository.find(1l);
        System.out.println("facade method");
    }

}
package com.denis.repository;

import javax.ejb.Remote;

import com.denis.model.Usuario;

@Remote
public interface TesteRepository {

    public Usuario find(Long id);

}
package com.denis.repository;

import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

import com.denis.model.Usuario;

@Stateless
public class TesteRepositoryImpl implements TesteRepository {

    @PersistenceContext
    private EntityManager entityManager;

    public Usuario find(Long id) {
        return id == null ? entityManager.find(Usuario.class, id) : null;
    }

}
package com.denis.model;

import java.io.Serializable;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;

@Entity
@Table(name = "usuarios")
public class Usuario implements Serializable {

    private static final long serialVersionUID = 1L;

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "ID")
    private Long id;

    @Column(name = "NOME")
    private String nome;

}
实体
Usuario.java

package com.denis.teste;

import javax.ejb.EJB;
import javax.servlet.http.HttpServletRequest;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

import com.denis.facade.TesteFacade;

@Controller
@RequestMapping("teste.do")
public class TesteController {

    @EJB
    private TesteFacade testeFacade;

    @RequestMapping("TesteMetodo")
    public String TesteMetodo(HttpServletRequest httpServletRequest) {
        httpServletRequest.getParameter("casa");
        System.out.println("entrou no metodo");
        testeFacade.facadeMethod();
        return "index2";
    }

}
package com.denis.facade;

import javax.ejb.Remote;

@Remote
public interface TesteFacade {

    public void facadeMethod();

}
package com.denis.facade;

import javax.ejb.EJB;
import javax.ejb.Stateless;

import com.denis.repository.TesteRepository;

@Stateless
public class TesteFacadeImpl implements TesteFacade {

    @EJB
    private TesteRepository testeRepository;

    @Override
    public void facadeMethod() {
        testeRepository.find(1l);
        System.out.println("facade method");
    }

}
package com.denis.repository;

import javax.ejb.Remote;

import com.denis.model.Usuario;

@Remote
public interface TesteRepository {

    public Usuario find(Long id);

}
package com.denis.repository;

import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

import com.denis.model.Usuario;

@Stateless
public class TesteRepositoryImpl implements TesteRepository {

    @PersistenceContext
    private EntityManager entityManager;

    public Usuario find(Long id) {
        return id == null ? entityManager.find(Usuario.class, id) : null;
    }

}
package com.denis.model;

import java.io.Serializable;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;

@Entity
@Table(name = "usuarios")
public class Usuario implements Serializable {

    private static final long serialVersionUID = 1L;

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "ID")
    private Long id;

    @Column(name = "NOME")
    private String nome;

}

我有一个企业应用程序项目来创建ear文件。

尝试启动服务器WildFly 8时出现错误跟踪:

16:52:59,046 WARN  [org.springframework.web.context.support.XmlWebApplicationContext] (MSC service thread 1-5) Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'testeController': Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [com.denis.facade.TesteFacade] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@javax.ejb.EJB(name=, lookup=, description=, beanName=, beanInterface=class java.lang.Object, mappedName=)}
    at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessPropertyValues(CommonAnnotationBeanPostProcessor.java:308) [spring-context-4.1.6.RELEASE.jar:4.1.6.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1210) [spring-beans-4.1.6.RELEASE.jar:4.1.6.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:537) [spring-beans-4.1.6.RELEASE.jar:4.1.6.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:476) [spring-beans-4.1.6.RELEASE.jar:4.1.6.RELEASE]
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:303) [spring-beans-4.1.6.RELEASE.jar:4.1.6.RELEASE]
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) [spring-beans-4.1.6.RELEASE.jar:4.1.6.RELEASE]
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:299) [spring-beans-4.1.6.RELEASE.jar:4.1.6.RELEASE]
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194) [spring-beans-4.1.6.RELEASE.jar:4.1.6.RELEASE]
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:755) [spring-beans-4.1.6.RELEASE.jar:4.1.6.RELEASE]
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:757) [spring-context-4.1.6.RELEASE.jar:4.1.6.RELEASE]
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:480) [spring-context-4.1.6.RELEASE.jar:4.1.6.RELEASE]
    at org.springframework.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext(FrameworkServlet.java:663) [spring-webmvc-4.1.6.RELEASE.jar:4.1.6.RELEASE]
    at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:629) [spring-webmvc-4.1.6.RELEASE.jar:4.1.6.RELEASE]
    at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:677) [spring-webmvc-4.1.6.RELEASE.jar:4.1.6.RELEASE]
    at org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:548) [spring-webmvc-4.1.6.RELEASE.jar:4.1.6.RELEASE]
    at org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:489) [spring-webmvc-4.1.6.RELEASE.jar:4.1.6.RELEASE]
    at org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:136) [spring-webmvc-4.1.6.RELEASE.jar:4.1.6.RELEASE]
    at javax.servlet.GenericServlet.init(GenericServlet.java:244) [jboss-servlet-api_3.1_spec-1.0.0.Final.jar:1.0.0.Final]
    at io.undertow.servlet.core.LifecyleInterceptorInvocation.proceed(LifecyleInterceptorInvocation.java:117) [undertow-servlet-1.1.0.Final.jar:1.1.0.Final]
    at org.wildfly.extension.undertow.security.RunAsLifecycleInterceptor.init(RunAsLifecycleInterceptor.java:79)
    at io.undertow.servlet.core.LifecyleInterceptorInvocation.proceed(LifecyleInterceptorInvocation.java:103) [undertow-servlet-1.1.0.Final.jar:1.1.0.Final]
    at io.undertow.servlet.core.ManagedServlet$DefaultInstanceStrategy.start(ManagedServlet.java:220) [undertow-servlet-1.1.0.Final.jar:1.1.0.Final]
    at io.undertow.servlet.core.ManagedServlet.createServlet(ManagedServlet.java:125) [undertow-servlet-1.1.0.Final.jar:1.1.0.Final]
    at io.undertow.servlet.core.DeploymentManagerImpl.start(DeploymentManagerImpl.java:508) [undertow-servlet-1.1.0.Final.jar:1.1.0.Final]
    at org.wildfly.extension.undertow.deployment.UndertowDeploymentService.startContext(UndertowDeploymentService.java:88)
    at org.wildfly.extension.undertow.deployment.UndertowDeploymentService.start(UndertowDeploymentService.java:72)
    at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1948)
    at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1881)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [rt.jar:1.8.0_45]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [rt.jar:1.8.0_45]
    at java.lang.Thread.run(Thread.java:745) [rt.jar:1.8.0_45]
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [com.denis.facade.TesteFacade] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@javax.ejb.EJB(name=, lookup=, description=, beanName=, beanInterface=class java.lang.Object, mappedName=)}
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoSuchBeanDefinitionException(DefaultListableBeanFactory.java:1301) [spring-beans-4.1.6.RELEASE.jar:4.1.6.RELEASE]
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1047) [spring-beans-4.1.6.RELEASE.jar:4.1.6.RELEASE]
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:942) [spring-beans-4.1.6.RELEASE.jar:4.1.6.RELEASE]
    at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.autowireResource(CommonAnnotationBeanPostProcessor.java:457) [spring-context-4.1.6.RELEASE.jar:4.1.6.RELEASE]
    at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.getResource(CommonAnnotationBeanPostProcessor.java:435) [spring-context-4.1.6.RELEASE.jar:4.1.6.RELEASE]
    at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$EjbRefElement.getResourceToInject(CommonAnnotationBeanPostProcessor.java:700) [spring-context-4.1.6.RELEASE.jar:4.1.6.RELEASE]
    at org.springframework.beans.factory.annotation.InjectionMetadata$InjectedElement.inject(InjectionMetadata.java:169) [spring-beans-4.1.6.RELEASE.jar:4.1.6.RELEASE]
    at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:88) [spring-beans-4.1.6.RELEASE.jar:4.1.6.RELEASE]
    at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessPropertyValues(CommonAnnotationBeanPostProcessor.java:305) [spring-context-4.1.6.RELEASE.jar:4.1.6.RELEASE]
    ... 30 more

16:52:59,049 ERROR [org.springframework.web.servlet.DispatcherServlet] (MSC service thread 1-5) Context initialization failed: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'testeController': Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [com.denis.facade.TesteFacade] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@javax.ejb.EJB(name=, lookup=, description=, beanName=, beanInterface=class java.lang.Object, mappedName=)}
    at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessPropertyValues(CommonAnnotationBeanPostProcessor.java:308) [spring-context-4.1.6.RELEASE.jar:4.1.6.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1210) [spring-beans-4.1.6.RELEASE.jar:4.1.6.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:537) [spring-beans-4.1.6.RELEASE.jar:4.1.6.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:476) [spring-beans-4.1.6.RELEASE.jar:4.1.6.RELEASE]
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:303) [spring-beans-4.1.6.RELEASE.jar:4.1.6.RELEASE]
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) [spring-beans-4.1.6.RELEASE.jar:4.1.6.RELEASE]
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:299) [spring-beans-4.1.6.RELEASE.jar:4.1.6.RELEASE]
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194) [spring-beans-4.1.6.RELEASE.jar:4.1.6.RELEASE]
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:755) [spring-beans-4.1.6.RELEASE.jar:4.1.6.RELEASE]
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:757) [spring-context-4.1.6.RELEASE.jar:4.1.6.RELEASE]
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:480) [spring-context-4.1.6.RELEASE.jar:4.1.6.RELEASE]
    at org.springframework.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext(FrameworkServlet.java:663) [spring-webmvc-4.1.6.RELEASE.jar:4.1.6.RELEASE]
    at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:629) [spring-webmvc-4.1.6.RELEASE.jar:4.1.6.RELEASE]
    at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:677) [spring-webmvc-4.1.6.RELEASE.jar:4.1.6.RELEASE]
    at org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:548) [spring-webmvc-4.1.6.RELEASE.jar:4.1.6.RELEASE]
    at org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:489) [spring-webmvc-4.1.6.RELEASE.jar:4.1.6.RELEASE]
    at org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:136) [spring-webmvc-4.1.6.RELEASE.jar:4.1.6.RELEASE]
    at javax.servlet.GenericServlet.init(GenericServlet.java:244) [jboss-servlet-api_3.1_spec-1.0.0.Final.jar:1.0.0.Final]
    at io.undertow.servlet.core.LifecyleInterceptorInvocation.proceed(LifecyleInterceptorInvocation.java:117) [undertow-servlet-1.1.0.Final.jar:1.1.0.Final]
    at org.wildfly.extension.undertow.security.RunAsLifecycleInterceptor.init(RunAsLifecycleInterceptor.java:79)
    at io.undertow.servlet.core.LifecyleInterceptorInvocation.proceed(LifecyleInterceptorInvocation.java:103) [undertow-servlet-1.1.0.Final.jar:1.1.0.Final]
    at io.undertow.servlet.core.ManagedServlet$DefaultInstanceStrategy.start(ManagedServlet.java:220) [undertow-servlet-1.1.0.Final.jar:1.1.0.Final]
    at io.undertow.servlet.core.ManagedServlet.createServlet(ManagedServlet.java:125) [undertow-servlet-1.1.0.Final.jar:1.1.0.Final]
    at io.undertow.servlet.core.DeploymentManagerImpl.start(DeploymentManagerImpl.java:508) [undertow-servlet-1.1.0.Final.jar:1.1.0.Final]
    at org.wildfly.extension.undertow.deployment.UndertowDeploymentService.startContext(UndertowDeploymentService.java:88)
    at org.wildfly.extension.undertow.deployment.UndertowDeploymentService.start(UndertowDeploymentService.java:72)
    at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1948)
    at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1881)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [rt.jar:1.8.0_45]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [rt.jar:1.8.0_45]
    at java.lang.Thread.run(Thread.java:745) [rt.jar:1.8.0_45]
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [com.denis.facade.TesteFacade] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@javax.ejb.EJB(name=, lookup=, description=, beanName=, beanInterface=class java.lang.Object, mappedName=)}
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoSuchBeanDefinitionException(DefaultListableBeanFactory.java:1301) [spring-beans-4.1.6.RELEASE.jar:4.1.6.RELEASE]
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1047) [spring-beans-4.1.6.RELEASE.jar:4.1.6.RELEASE]
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:942) [spring-beans-4.1.6.RELEASE.jar:4.1.6.RELEASE]
    at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.autowireResource(CommonAnnotationBeanPostProcessor.java:457) [spring-context-4.1.6.RELEASE.jar:4.1.6.RELEASE]
    at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.getResource(CommonAnnotationBeanPostProcessor.java:435) [spring-context-4.1.6.RELEASE.jar:4.1.6.RELEASE]
    at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$EjbRefElement.getResourceToInject(CommonAnnotationBeanPostProcessor.java:700) [spring-context-4.1.6.RELEASE.jar:4.1.6.RELEASE]
    at org.springframework.beans.factory.annotation.InjectionMetadata$InjectedElement.inject(InjectionMetadata.java:169) [spring-beans-4.1.6.RELEASE.jar:4.1.6.RELEASE]
    at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:88) [spring-beans-4.1.6.RELEASE.jar:4.1.6.RELEASE]
    at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessPropertyValues(CommonAnnotationBeanPostProcessor.java:305) [spring-context-4.1.6.RELEASE.jar:4.1.6.RELEASE]
    ... 30 more
在spring-context.xml中

  <bean id="testeFacade"  class="org.springframework.ejb.access.LocalStatelessSessionProxyFactoryBean">
   <property name="jndiName" value="ejb/myBean"/>
    <property name="businessInterface" value="com.denis.repository.TesteRepository"/>
   </bean>

}

谢谢!您知道是否可以创建通用EJB注入吗?想象一下,当这个项目变得更大时,我将拥有很多类,使用这个解决方案,我将在spring-context.xml中获得许多bean标记。