我们有一个基于Vaadin的Web应用程序,它具有以下架构:
使用JPA-Repositories和Services来处理持久性的核心模块。
我们有一个Vaadin-Web-App,它使用Core-Module并将所有持久性内容委托给核心模块。交易和东西在那里工作。您可以在执行插入的日志中,数据最终在数据库中。
有一个servlet只提供端点,所以其他一些应用程序有时会向这个servlet发送数据。然后,servlet使用Core-Module中的服务来持久保存数据。但不知何故,数据永远不会在数据库上结束。如果您进行JPA-Save,您只能看到"选择" - 日志中的陈述。
我做过一些研究,不知何故交易管理有问题。我不太懂,因为交易管理在常规网络应用程序中运行。
Vaadin的应用程序context.xml - Web-App:
<import resource="classpath:applicationContextCore.xml" />
<context:component-scan base-package="de.dmsb.my.configuration"/>
<context:component-scan base-package="de.dmsb.my.controller"/>
<context:component-scan base-package="de.dmsb.my.dto.xml"/>
<context:component-scan base-package="de.dmsb.my.handler"/>
<context:component-scan base-package="de.dmsb.my.services"/>
<context:component-scan base-package="de.dmsb.my.ui"/>
这是dispatcher-servlet.xml:
<tx:annotation-driven transaction-manager="transactionManager"/>
<context:component-scan base-package="de.dmsb.my.controller" use-default-filters="false" >
<context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
<context:include-filter type="annotation" expression="org.springframework.web.bind.annotation.RestController"/>
</context:component-scan>
端点已注册,我可以向他们发送数据。
但是当我尝试使用Core-Module中的服务或存储库来保存数据时,我只看到日志中的select语句。
有什么想法吗?
提前谢谢你,
谢
更新:
我将applicationContext.xml更改为以下内容,但问题仍然存在:
<import resource="classpath:applicationContextCore.xml" />
<tx:annotation-driven transaction-manager="transactionManager"/>
<context:component-scan base-package="de.dmsb.my.configuration"/>
<context:component-scan base-package="de.dmsb.my.controller"/>
<context:component-scan base-package="de.dmsb.my.dto.xml"/>
<context:component-scan base-package="de.dmsb.my.handler"/>
<context:component-scan base-package="de.dmsb.my.services"/>
<context:component-scan base-package="de.dmsb.my.ui"/>
<context:annotation-config/>