首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >修正Java.lang.IllegalStateException:没有找到活跃的对话。在com.rapidclipse.framework.server.jpa.Jpa.getEntityManager(Jpa.java:200)

修正Java.lang.IllegalStateException:没有找到活跃的对话。在com.rapidclipse.framework.server.jpa.Jpa.getEntityManager(Jpa.java:200)
EN

Stack Overflow用户
提问于 2022-04-10 09:06:38
回答 1查看 45关注 0票数 0

我有一个正在运行的RapidClipse X项目,在这个项目中我使用一个MySQL数据库。我创建了一个类来将数据从一个表复制到另一个表中。为此,我使用了一个流

代码语言:javascript
复制
        HibKontoDAO().findAll().stream().forEach( tc -> {
        ... copy data
}

此代码的调用和处理在我的应用程序中的任何地方都能很好地工作,除非通过rest服务调用它。

通常,当我通过REST调用它时,我会得到以下错误:

代码语言:javascript
复制
java.lang.IllegalStateException: No active conversation found.
at com.rapidclipse.framework.server.jpa.Jpa.getEntityManager(Jpa.java:200)
at com.rapidclipse.framework.server.jpa.Jpa.getEntityManager(Jpa.java:180)

我所做的:我用来测试purpoase,简单的Hello示例,out:https://www.javaguides.net/2020/01/resteasy-hello-world-example-tutorial.html

我把代码放在我的应用程序中,它也运行得很好!然后我就换了。在HelloWorldResource类中,我调用我的代码(它返回一个文本)

代码语言:javascript
复制
String myUmsMes = this.StartTransfer();
final HlpHelloWorldRest helloWorld = new HlpHelloWorldRest(myUmsMes);

当我运行这个,我得到了流的错误。

代码语言:javascript
复制
HibKontoDAO().findAll().stream().forEach( tc -> {
            ... copy data
    }

完整的堆栈跟踪是:

代码语言:javascript
复制
    Apr. 10, 2022 10:55:09 AM com.rieder.finmgmt.helper.HlpHelloWorldRestResource StartTransfer
    INFO: com.rieder.finmgmt.helper.HlpHelloWorldRestResource Exception happend 

java.lang.IllegalStateException: No active conversation found.
    at com.rapidclipse.framework.server.jpa.Jpa.getEntityManager(Jpa.java:200)
    at com.rapidclipse.framework.server.jpa.Jpa.getEntityManager(Jpa.java:180)
    at com.rapidclipse.framework.server.jpa.dal.JpaDataAccessObject$Default.em(JpaDataAccessObject.java:173)
    at com.rapidclipse.framework.server.jpa.dal.JpaDataAccessObject$Default.findAll(JpaDataAccessObject.java:243)
    at com.rieder.finmgmt.helper.HlpHelloWorldRestResource.StartTransfer(HlpHelloWorldRestResource.java:89)
    at com.rieder.finmgmt.helper.HlpHelloWorldRestResource.helloWorld(HlpHelloWorldRestResource.java:49)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:564)
    at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:138)
    at org.jboss.resteasy.core.ResourceMethodInvoker.internalInvokeOnTarget(ResourceMethodInvoker.java:546)
    at org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTargetAfterFilter(ResourceMethodInvoker.java:435)
    at org.jboss.resteasy.core.ResourceMethodInvoker.lambda$invokeOnTarget$0(ResourceMethodInvoker.java:396)
    at org.jboss.resteasy.core.interception.PreMatchContainerRequestContext.filter(PreMatchContainerRequestContext.java:358)
    at org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTarget(ResourceMethodInvoker.java:398)
    at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:365)
    at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:338)
    at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:440)
    at org.jboss.resteasy.core.SynchronousDispatcher.lambda$invoke$4(SynchronousDispatcher.java:229)
    at org.jboss.resteasy.core.SynchronousDispatcher.lambda$preprocess$0(SynchronousDispatcher.java:135)
    at org.jboss.resteasy.core.interception.PreMatchContainerRequestContext.filter(PreMatchContainerRequestContext.java:358)
    at org.jboss.resteasy.core.SynchronousDispatcher.preprocess(SynchronousDispatcher.java:138)
    at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:215)
    at org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:245)
    at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:61)
    at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:56)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:764)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:196)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:542)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
    at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:698)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:364)
    at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:624)
    at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
    at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:831)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1673)
    at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
    at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
    at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.base/java.lang.Thread.run(Thread.java:832)

如果单独运行,这两种代码都运行良好。我在网上什么也没找到.没有发现活跃的对话..。

知道我做错了什么,原因是什么,或者如何解决这个问题?提前谢谢你!

EN

回答 1

Stack Overflow用户

发布于 2022-04-30 15:05:08

我玩了很久才找到办法。如果您通过rest调用内置版本的MyEntityDAO.findAll,那么它似乎不起作用。我不得不创建一个自己的会话。因此,我在我的MyEntityDAO中创建了一个小小的代码平静:

代码语言:javascript
复制
public List < MyEntity > getAll() {
    try (Session session =  this in my updateHibernateUtil.getSessionFactory().openSession()) {
        return session.createQuery("from MyEntity", MyEntity.class).list();
    }
}

我必须创建一个HibernateUtil.class,如:https://www.javaguides.net/2021/08/hibernate-example-with-mysql-database.html中所描述的

然后我在我的复制逻辑中引用了它,一切都很好!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71815171

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档