Jakarta ee java.lang.RuntimeException:无效的应用程序。EJB服务EJB公开远程客户端视图。此功能不是EJB3.1LiteAPI的一部分

Jakarta ee java.lang.RuntimeException:无效的应用程序。EJB服务EJB公开远程客户端视图。此功能不是EJB3.1LiteAPI的一部分,jakarta-ee,ejb,ejb-3.1,Jakarta Ee,Ejb,Ejb 3.1,我正试图通过Ejb从Etudiant表中获取学生列表,但出现以下错误,应用程序无法部署: java.lang.RuntimeException: EJB Container initialization error at org.glassfish.ejb.startup.EjbApplication.loadContainers(EjbApplication.java:234) at org.glassfish.ejb.startup.EjbDeployer.load(EjbD

我正试图通过Ejb从Etudiant表中获取学生列表,但出现以下错误,应用程序无法部署:

java.lang.RuntimeException: EJB Container initialization error
    at org.glassfish.ejb.startup.EjbApplication.loadContainers(EjbApplication.java:234)
    at org.glassfish.ejb.startup.EjbDeployer.load(EjbDeployer.java:291)
    at org.glassfish.ejb.startup.EjbDeployer.load(EjbDeployer.java:99)
    at org.glassfish.internal.data.ModuleInfo.load(ModuleInfo.java:206)
    at org.glassfish.internal.data.ApplicationInfo.load(ApplicationInfo.java:313)
    at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:493)
    at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:219)
    at org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:491)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl$2$1.run(CommandRunnerImpl.java:527)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl$2$1.run(CommandRunnerImpl.java:523)
    at java.security.AccessController.doPrivileged(Native Method)
    at javax.security.auth.Subject.doAs(Subject.java:356)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl$2.execute(CommandRunnerImpl.java:522)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:546)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1423)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl.access$1500(CommandRunnerImpl.java:108)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1762)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1674)
    at com.sun.enterprise.v3.admin.AdminAdapter.doCommand(AdminAdapter.java:534)
    at com.sun.enterprise.v3.admin.AdminAdapter.onMissingResource(AdminAdapter.java:224)
    at org.glassfish.grizzly.http.server.StaticHttpHandler.service(StaticHttpHandler.java:297)
    at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:246)
    at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:191)
    at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:168)
    at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:189)
    at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119)
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:288)
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:206)
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:136)
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:114)
    at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77)
    at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:838)
    at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:113)
    at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:115)
    at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:55)
    at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:135)
    at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:564)
    at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:544)
    at java.lang.Thread.run(Thread.java:724)
Caused by: java.lang.RuntimeException: Invalid application.  EJB ServiceEjb exposes a Remote client view. This feature is not part of the EJB 3.1 Lite API
    at com.sun.ejb.containers.BaseContainer.assertFullProfile(BaseContainer.java:1105)
    at com.sun.ejb.containers.BaseContainer.<init>(BaseContainer.java:588)
    at com.sun.ejb.containers.StatelessSessionContainer.<init>(StatelessSessionContainer.java:143)
    at com.sun.ejb.containers.StatelessSessionContainer.<init>(StatelessSessionContainer.java:137)
    at com.sun.ejb.containers.StatelessContainerFactory.createContainer(StatelessContainerFactory.java:61)
    at org.glassfish.ejb.startup.EjbApplication.loadContainers(EjbApplication.java:221)
    ... 38 more
java.lang.RuntimeException:EJB容器初始化错误
位于org.glassfish.ejb.startup.EjbApplication.loadContainers(EjbApplication.java:234)
位于org.glassfish.ejb.startup.EjbDeployer.load(EjbDeployer.java:291)
位于org.glassfish.ejb.startup.EjbDeployer.load(EjbDeployer.java:99)
位于org.glassfish.internal.data.ModuleInfo.load(ModuleInfo.java:206)
位于org.glassfish.internal.data.ApplicationInfo.load(ApplicationInfo.java:313)
在com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:493)上
位于com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:219)
位于org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:491)
位于com.sun.enterprise.v3.admin.CommandRunnerImpl$2$1.run(CommandRunnerImpl.java:527)
位于com.sun.enterprise.v3.admin.CommandRunnerImpl$2$1.run(CommandRunnerImpl.java:523)
位于java.security.AccessController.doPrivileged(本机方法)
位于javax.security.auth.Subject.doAs(Subject.java:356)
位于com.sun.enterprise.v3.admin.CommandRunnerImpl$2.execute(CommandRunnerImpl.java:522)
位于com.sun.enterprise.v3.admin.CommandRunnerImpl.docomand(CommandRunnerImpl.java:546)
位于com.sun.enterprise.v3.admin.CommandRunnerImpl.docomand(CommandRunnerImpl.java:1423)
com.sun.enterprise.v3.admin.CommandRunnerImpl.access$1500(CommandRunnerImpl.java:108)
位于com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1762)
位于com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1674)
位于com.sun.enterprise.v3.admin.AdminAdapter.docomand(adminapter.java:534)
位于com.sun.enterprise.v3.admin.AdminAdapter.onMissingResource(adminapter.java:224)
位于org.glassfish.grizzly.http.server.StaticHttpHandler.service(StaticHttpHandler.java:297)
位于com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:246)
位于org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:191)
位于org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:168)
位于org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:189)
位于org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119)
位于org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:288)
在org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:206)上
在org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:136)
位于org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:114)
位于org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77)
位于org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:838)
位于org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:113)
位于org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:115)
位于org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:55)
位于org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:135)
位于org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:564)
位于org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:544)
运行(Thread.java:724)
原因:java.lang.RuntimeException:无效的应用程序。EJB服务EJB公开远程客户端视图。此功能不是EJB3.1LiteAPI的一部分
位于com.sun.ejb.containers.BaseContainer.assertFullProfile(BaseContainer.java:1105)
位于com.sun.ejb.containers.BaseContainer.(BaseContainer.java:588)
位于com.sun.ejb.containers.StatelessSessionContainer.(StatelessSessionContainer.java:143)
位于com.sun.ejb.containers.StatelessSessionContainer.(StatelessSessionContainer.java:137)
位于com.sun.ejb.containers.StatelessContainerFactory.createContainer(StatelessContainerFactory.java:61)
位于org.glassfish.ejb.startup.EjbApplication.loadContainers(EjbApplication.java:221)
... 38多
这是我的EJB类代码:

@Stateless(name="ServiceEjb")
@Local
@Remote
public class EtudiantEjb implements EtudiantEjbRemote, EtudiantEjbLocal { 

    public EtudiantEjb() { }

    @PersistenceContext(unitName="PortailEjb")
    private EntityManager em;

    public List<Etudiant> ListEtudiant() {

        TypedQuery<Etudiant> query = em.createNamedQuery("Etudiant.listertous", Etudiant.class);
        List<Etudiant> etudiants = query.getResultList();
        return etudiants ;
    }
@无状态(name=“servicejb”)
@本地的
@遥远的
公共类EtudiantEjb实现了EtudiantEjbRemote、EtudiantEjbLocal{
公共eTudiantjb(){}
@PersistenceContext(unitName=“PortailEjb”)
私人实体管理者;
公共列表ListDiant(){
TypedQuery query=em.createNamedQuery(“Etudiant.listertous”,Etudiant.class);
List etudiants=query.getResultList();
返回学员;
}
这是我的EJBJAR代码


便携式接线盒
PortailEjbClient.jar

我使用的是Oracle连接及其工作模式。我使用的是Eclipse和Glassfish4。

在“可用插件”节点下,安装“Glassfish Commons Full Profile”。重新启动Glassfish。

您可能会找到与此相同的答案。例外情况说明了错误所在!“无效的应用程序。EJB ServiceEjb公开远程客户端视图。此功能不是EJB 3.1 Lite API的一部分”。您可能不想使用远程接口,或者不想将Glassfish设置为使用EJB 3.1 Lite,而是完整的EJB规范。@david99world感谢您解决了参考问题
<?xml version="1.0" encoding="UTF-8"?>
<ejb-jar xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
        xmlns="http://xmlns.jcp.org/xml/ns/javaee" 
        xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee  http://xmlns.jcp.org/xml/ns/javaee/ejb-jar_3_2.xsd" version="3.2">
    <display-name>PortailEjb </display-name>
    <ejb-client-jar>PortailEjbClient.jar</ejb-client-jar>
</ejb-jar>