当前位置: 首页 > 知识库问答 >
问题:

ejb远程方法在本地工作,但在远程给出错误

周承天
2023-03-14

我创建了一个EJB远程接口,并将其部署在GlassFish应用服务器上的本地计算机上,它工作得很好,但是在部署成功的远程服务器上测试它时,我无法在验证登录表单时访问远程方法,导致以下错误:

javax.ejb.ejbException

在com.sun.ejb.containers.baseContainer.PostInvoke(BaseContainer.java:2045)

在com.sun.ejb.containers.baseContainer.PostInvoke(BaseContainer.java:1994)

在com.sun.ejb.containers.ejblocalObjectInvocationHandler.invoke(EJBLocalObjectInvocationHandl er.java:222)

在javax.servlet.http.httpservlet.service(httpservlet.java:688)

在javax.servlet.http.httpservlet.service(httpservlet.java:770)

在org.apache.catalina.core.standardWrapper.service(StandardWrapper.java:1550)

在org.apache.catalina.core.standardPipeline.invoke(StandardPipeline.java:595)

在org.apache.catalina.core.standardHostValve.invoke(StandardHostValve.java:161)

在org.apache.catalina.connector.coyoteAdapter.doService(CoyoteAdapter.java:331)

在org.apache.catalina.connector.coyoteAdapter.service(coyoteAdapter.java:231)

在com.sun.enterprise.v3.services.impl.ContainerMapper$AdapterCallable.Call(containerMapper.java:317)

在com.sun.enterprise.v3.services.impl.containerMapper.service(containerMapper.java:195)

在com.sun.grizzly.http.processOrtask.process(ProcessOrtask.java:1056)

在com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:229)

在com.sun.grizzly.defaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)

在com.sun.grizzly.http.httpprotocolchain.execute(httpprotocolchain.java:79)

在com.sun.grizzly.protocolChainContextTask.docall(protocolChainContextTask.java:54)

在com.sun.grizzly.selectionKeyContextTask.call(SelectionKeyContextTask.java:59)

在com.sun.grizzly.util.abstractThreadpool$worker.run(abstractThreadpool.java:513)

在java.lang.thread.run(thread.java:722)上由:Exception[EclipseLink-4002](Eclipse Persistence Services-2.3.2.v20111125-r10461):org.Eclipse.Persistence.exceptions.databaseException内部html" target="_blank">异常:com.mysql.jdbc.exceptions.mysqlsyntaxerroreXception:Table'schooldb.jss_student_details‘不存在错误代码:1146调用:SELECT firstName,bind=>[1 parameter bound]查询:ReportQuery(name=“jssstudentdetails.findbyemail1”referenceClass=jssstudentdetails sql=“select firstName,lastName FROM schooldb.jss_student_details WHERE(email=?)”)

在org.eclipse.persistence.exceptions.databaseException.sqlException(databaseException.java:333)

在org.eclipse.persistence.internal.databaseAccess.databaseAccessor.BasicExecuteCall(databaseAccessor.java:644)

在org.eclipse.persistence.internal.databaseAccess.databaseAccessor.executeCall(databaseAccessor.java:535)

在org.eclipse.persistence.internal.sessions.abstractSession.BasicExecuteCall(abstractSession.java:1717)

在org.eclipse.persistence.sessions.server.serversession.executeCall(serversession.java:566)

在org.eclipse.persistence.internal.queries.datasourceCallQueryMechanism.executeCall(datasourceCallQueryMechanism.java:207)

在org.eclipse.persistence.internal.queries.datasourceCallQueryMechanism.executeCall(datasourceCallQueryMechanism.java:193)

在org.eclipse.persistence.internal.queries.datasourceCallQueryMechanism.selectAllRows(datasourceCallQueryMechanism.java:646)

在org.eclipse.persistence.internal.queries.expressionQueryMechanism.SelectAllRowsFromTable(expressionQueryMechanism.java:2611)

在org.eclipse.persistence.internal.queries.expressionQueryMechanism.SelectAllReportQueryRows(expressionQueryMechanism.java:2554)

在org.eclipse.persistence.queries.reportquery.executeDatabaseQuery(reportQuery.java:846)

在org.eclipse.persistence.queries.databasequery.execute(databasequery.java:844)

在org.eclipse.persistence.queries.objectLevelReadQuery.execute(ObjectLevelReadQuery.java:1040)

在org.eclipse.persistence.internal.sessions.unitofworkimpl.internalexecuteQuery(unitofworkimpl.java:2871)

在org.eclipse.persistence.internal.sessions.abstractsession.executeQuery(abstractsession.java:1516)

在org.eclipse.persistence.internal.sessions.abstractsession.executeQuery(abstractsession.java:1498)

在org.eclipse.persistence.internal.sessions.abstractsession.executeQuery(abstractsession.java:1463)

在org.eclipse.persistence.internal.jpa.ejbQueryImpl.ExecuteReadQuery(EjbQueryImpl.java:485)

位于org.eclipse.persistence.internal.jpa.ejbQueryImpl.GetResultList(ejbQueryImpl.java:742)

在sun.reflect.nativeMethodAccessorImpl.Invoke0(本机方法)

在sun.reflect.nativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)

在sun.reflect.delegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

在com.sun.ejb.containers.baseContainer.InvokeBeanMethod(BaseContainer.java:5388)

在com.sun.ejb.ejbinvocation.invokeBeanMethod(Ejbinvocation.java:619)

在com.sun.ejb.containers.interceptors.aroundinvokeChainimpl.invokeNext(interceptorManager.java:800)在com.sun.ejb.ejbinvocation.proce(Ejbinvocation.java:571)

在org.jboss.weld.ejb.sessionBeanInterceptor.aroundInvoke(SessionBeanInterceptor.java:42)

在sun.reflect.nativeMethodAccessorImpl.Invoke0(本机方法)

在sun.reflect.nativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)

在sun.reflect.nativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)

在sun.reflect.delegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

在java.lang.reflect.method.invoke(Method.java:601)

在com.mysql.jdbc.mysqlio.checkerrorpacket(mysqlio.java:2985)

在com.mysql.jdbc.mysqlio.sendCommand(mysqlio.java:1631)

在com.mysql.jdbc.mysqlio.sqlQueryDirect(mysqlio.java:1723)

在com.mysql.jdbc.preparedstatement.executeQuery(PreparedStatement.java:1467)

在com.sun.gjc.spi.jdbc40.PreparedStatementWrapper40.ExecuteQuery(PreparedStatementWrapper40.java:642)

在org.eclipse.persistence.internal.databaseaccess.databaseaccessor.executeselect(DatabaseAccessor.java:931)

请有人帮助解决这个错误,提前谢谢。

共有1个答案

夏侯英纵
2023-03-14

这与远程/本地EJB无关...这是一个SQL错误:

com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: Table 'schooldb.Jss_Student_Details'     doesn't exist
 类似资料:
  • 我有两个应用程序——基于浏览器的客户端和基于NodeJS的服务器,它们都使用WebSockets进行通信(我使用的是ColyseusJS库)。问题是,当我在本地主机上测试它们时,一切都正常,但当我将应用程序部署到我的Ubuntu VPS服务器时,它停止工作。 我在尝试连接时在浏览器中收到的消息是: 所以它到达服务器(因为当服务器被禁用时,消息是“连接建立中的错误:净::ERR_CONNECTION

  • 问题内容: 我是Java EE的新手,我试图理解本地接口和远程接口的概念。有人告诉我Java EE的一大优点是易于扩展(我相信这意味着您可以在不同的服务器上部署不同的组件)。那是远程和本地接口进入的地方吗?如果您希望应用程序在不同的服务器上具有不同的组件,则应该使用远程接口吗?如果您的应用程序仅驻留在一台服务器上,并使用本地接口? 如果我的上述假设正确,那么您将如何选择对于新应用程序使用本地接口还

  • 当我尝试从远程客户端访问在JBoss EAP 6.2中运行的EJB时,我收到以下异常: 我将这些属性用于调用远程ejb方法。 endpoint.name=客户端endpointremote.connectionprovider.create.options.org.xnio.选项。SSL_ENABLED=falseremote.connections=默认remote.connection.def

  • 我有一个EJB服务器在一台Liberty服务器上运行,而客户端在另一台服务器上运行。 如果我使用下面的代码手动查找远程EJB,我可以访问EJB。 上述工作按预期方式工作,它能够调用在另一个服务器实例上运行的远程 EJB 并按预期工作。 我尝试在我的< code>@Controller类中使用Spring,并通过注释< code>@EJB或< code > @自动连线引用EJB mvc-dispat

  • ssh 互信登录ssh-keygen 生成公钥私钥对 [root@test1 ~]# ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): Created directory '/root/.ssh'. Enter passphrase

  • 我目前正在努力让远程EJB调用在wildfly(8.x和9.x)上工作。 详细来说,它是关于使用EJB客户机API方法从独立的客户机应用程序(而不是从另一个应用程序服务器)进行远程调用。远程命名方法适合我,但不适用于我的场景,因为我需要使用客户端拦截器将上下文数据传递给服务器端拦截器进行远程调用。 但是现在,为了一个简单的示例,我尝试使用客户机API进行远程调用。因此,我尝试了用于远程ejb调用的