<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>Question Re: Developing a framework library using Spring + JPA on SAP Cloud Platform in Technology Q&amp;A</title>
    <link>https://community.sap.com/t5/technology-q-a/developing-a-framework-library-using-spring-jpa-on-sap-cloud-platform/qaa-p/521255#M102832</link>
    <description>&lt;P&gt;It worked for me now!!&lt;/P&gt;
  &lt;P&gt;I made changes in the application-context xml file&lt;/P&gt;
  &lt;P&gt;I changed the content from : &lt;/P&gt;
  &lt;PRE&gt;&lt;CODE&gt;&amp;lt;bean id="jpaTxnManagerBean" class="org.springframework.orm.jpa.JpaTransactionManager"&amp;gt;
		&amp;lt;property name="entityManagerFactory" ref="emfBean"&amp;gt;&amp;lt;/property&amp;gt;
&amp;lt;/bean&amp;gt;
&amp;lt;tx:annotation-driven transaction-manager="jpaTxnManagerBean" proxy-target-class="true" /&amp;gt;&lt;BR /&gt;&lt;/CODE&gt;&lt;/PRE&gt;
  &lt;P&gt;to&lt;/P&gt;
  &lt;PRE&gt;&lt;CODE&gt;&amp;lt;bean id="jtaTxnManagerBean" class="org.springframework.transaction.jta.JtaTransactionManager"/&amp;gt;
&amp;lt;tx:annotation-driven transaction-manager="jtaTxnManagerBean" proxy-target-class="true" /&amp;gt;&lt;BR /&gt;&lt;/CODE&gt;&lt;/PRE&gt;</description>
    <pubDate>Wed, 27 Dec 2017 05:21:13 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2017-12-27T05:21:13Z</dc:date>
    <item>
      <title>Developing a framework library using Spring + JPA on SAP Cloud Platform</title>
      <link>https://community.sap.com/t5/technology-q-a/developing-a-framework-library-using-spring-jpa-on-sap-cloud-platform/qaq-p/521253</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;
  &lt;P&gt;I am trying to develop a java library .jar project using spring and JPA framework. This library .jar project will be utilized by different teams for specific development.&lt;/P&gt;
  &lt;P&gt;This project is connected to SAP HANA default data source to provide database storage. &lt;/P&gt;
  &lt;P&gt;I have used Spring mvc framework for the API development and JPA + Eclipselink (Container Managed persistence) for Database connectivity. &lt;/P&gt;
  &lt;P&gt;Below is the web.xml of my project: &lt;/P&gt;
  &lt;PRE&gt;&lt;CODE&gt;&amp;lt;?xml version="1.0" encoding="UTF-8"?&amp;gt;
&amp;lt;web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
          &lt;A href="http://java.sun.com/xml/ns/javaee/web-app_3_1.xsd&amp;quot;" target="test_blank"&gt;http://java.sun.com/xml/ns/javaee/web-app_3_1.xsd"&lt;/A&gt;;
version="3.1"&amp;gt;
&amp;lt;display-name&amp;gt;cfa-framework&amp;lt;/display-name&amp;gt;
&amp;lt;listener&amp;gt;
&amp;lt;listener-class&amp;gt;org.springframework.web.context.ContextLoaderListener&amp;lt;/listener-class&amp;gt;
&amp;lt;/listener&amp;gt;
&amp;lt;context-param&amp;gt;
&amp;lt;param-name&amp;gt;contextConfigLocation&amp;lt;/param-name&amp;gt;
&amp;lt;param-value&amp;gt;classpath:META-INF/framework-applicationContext.xml&amp;lt;/param-value&amp;gt;
&amp;lt;/context-param&amp;gt;
&amp;lt;login-config&amp;gt;
&amp;lt;auth-method&amp;gt;BASICCERT&amp;lt;/auth-method&amp;gt;
&amp;lt;/login-config&amp;gt;

&amp;lt;security-role&amp;gt;
&amp;lt;description&amp;gt;All SAP HANA Cloud Platform users&amp;lt;/description&amp;gt;
&amp;lt;role-name&amp;gt;Everyone&amp;lt;/role-name&amp;gt;
&amp;lt;/security-role&amp;gt;
&amp;lt;security-constraint&amp;gt;
&amp;lt;web-resource-collection&amp;gt;
&amp;lt;web-resource-name&amp;gt;Protected Area&amp;lt;/web-resource-name&amp;gt;
&amp;lt;url-pattern&amp;gt;/key&amp;lt;/url-pattern&amp;gt;
&amp;lt;url-pattern&amp;gt;/index.jsp&amp;lt;/url-pattern&amp;gt;
&amp;lt;/web-resource-collection&amp;gt;
&amp;lt;auth-constraint&amp;gt;
&amp;lt;role-name&amp;gt;Everyone&amp;lt;/role-name&amp;gt;
&amp;lt;/auth-constraint&amp;gt;
&amp;lt;/security-constraint&amp;gt;


&amp;lt;resource-ref&amp;gt;
&amp;lt;res-ref-name&amp;gt;jdbc/DefaultDB&amp;lt;/res-ref-name&amp;gt;
&amp;lt;res-type&amp;gt;javax.sql.DataSource&amp;lt;/res-type&amp;gt;
&amp;lt;/resource-ref&amp;gt;


&amp;lt;security-role&amp;gt;
&amp;lt;description&amp;gt;All SAP HANA Cloud Platform users&amp;lt;/description&amp;gt;
&amp;lt;role-name&amp;gt;Everyone&amp;lt;/role-name&amp;gt;
&amp;lt;/security-role&amp;gt;


&amp;lt;security-constraint&amp;gt;
&amp;lt;web-resource-collection&amp;gt;
&amp;lt;web-resource-name&amp;gt;Protected Area&amp;lt;/web-resource-name&amp;gt;
&amp;lt;url-pattern&amp;gt;/key&amp;lt;/url-pattern&amp;gt;
&amp;lt;/web-resource-collection&amp;gt;
&amp;lt;auth-constraint&amp;gt;
&amp;lt;role-name&amp;gt;Everyone&amp;lt;/role-name&amp;gt;
&amp;lt;/auth-constraint&amp;gt;
&amp;lt;/security-constraint&amp;gt;


&amp;lt;servlet&amp;gt;
&amp;lt;servlet-name&amp;gt;cfa-framework&amp;lt;/servlet-name&amp;gt;
&amp;lt;servlet-class&amp;gt;org.springframework.web.servlet.DispatcherServlet&amp;lt;/servlet-class&amp;gt;
&amp;lt;init-param&amp;gt;
&amp;lt;param-name&amp;gt;contextConfigLocation&amp;lt;/param-name&amp;gt;
&amp;lt;param-value&amp;gt;classpath:META-INF/framework-applicationContext.xml&amp;lt;/param-value&amp;gt;
&amp;lt;/init-param&amp;gt;
&amp;lt;load-on-startup&amp;gt;1&amp;lt;/load-on-startup&amp;gt;
&amp;lt;/servlet&amp;gt;
&amp;lt;servlet-mapping&amp;gt;
&amp;lt;servlet-name&amp;gt;cfa-framework&amp;lt;/servlet-name&amp;gt;
&amp;lt;url-pattern&amp;gt;/&amp;lt;/url-pattern&amp;gt;
&amp;lt;/servlet-mapping&amp;gt;
&amp;lt;session-config&amp;gt;
&amp;lt;session-timeout&amp;gt;30&amp;lt;/session-timeout&amp;gt;
&amp;lt;/session-config&amp;gt;
&amp;lt;/web-app&amp;gt;&lt;/CODE&gt;&lt;/PRE&gt;
  &lt;P&gt;Below is my application context xml file:&lt;/P&gt;
  &lt;PRE&gt;&lt;CODE&gt;&amp;lt;?xml version="1.0" encoding="UTF-8"?&amp;gt;
&amp;lt;beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
	xmlns:tx="http://www.springframework.org/schema/tx" xmlns:jee="http://www.springframework.org/schema/jee"
	xsi:schemaLocation="http://www.springframework.org/schema/beans
    &lt;A href="http://www.springframework.org/schema/beans/spring-beans-4.1.xsd" target="test_blank"&gt;http://www.springframework.org/schema/beans/spring-beans-4.1.xsd&lt;/A&gt;
    &lt;A href="http://www.springframework.org/schema/context" target="test_blank"&gt;http://www.springframework.org/schema/context&lt;/A&gt;
    &lt;A href="http://www.springframework.org/schema/context/spring-context-4.1.xsd" target="test_blank"&gt;http://www.springframework.org/schema/context/spring-context-4.1.xsd&lt;/A&gt;
    &lt;A href="http://www.springframework.org/schema/tx" target="test_blank"&gt;http://www.springframework.org/schema/tx&lt;/A&gt;
    &lt;A href="http://www.springframework.org/schema/tx/spring-tx-4.1.xsd" target="test_blank"&gt;http://www.springframework.org/schema/tx/spring-tx-4.1.xsd&lt;/A&gt; 
    &lt;A href="http://www.springframework.org/schema/jee" target="test_blank"&gt;http://www.springframework.org/schema/jee&lt;/A&gt; 
    &lt;A href="http://www.springframework.org/schema/jee/spring-jee.xsd&amp;quot;&amp;gt;" target="test_blank"&gt;http://www.springframework.org/schema/jee/spring-jee.xsd"&amp;gt;&lt;/A&gt;;

	&amp;lt;context:component-scan base-package="com.sap.cec.marketing.cfa" /&amp;gt;
	&amp;lt;context:annotation-config /&amp;gt;

	&amp;lt;jee:jndi-lookup id="dbDataSource" jndi-name="jdbc/DefaultDB"
		expected-type="javax.sql.DataSource" /&amp;gt;
	&amp;lt;bean id="emfBean"
		class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"&amp;gt;
		&amp;lt;!-- &amp;lt;property name="dataSource" ref="dbDataSource" /&amp;gt; --&amp;gt;
		&amp;lt;property name="persistenceUnitName" value="cfa-framework" /&amp;gt;
		&amp;lt;property name="jpaDialect"&amp;gt;
			&amp;lt;bean class="org.springframework.orm.jpa.vendor.EclipseLinkJpaDialect" /&amp;gt;
		&amp;lt;/property&amp;gt;
		&amp;lt;property name="jpaPropertyMap"&amp;gt;
			&amp;lt;props&amp;gt;
				&amp;lt;prop key="eclipselink.weaving"&amp;gt;false&amp;lt;/prop&amp;gt;
			&amp;lt;/props&amp;gt;
		&amp;lt;/property&amp;gt;
		&amp;lt;property name="loadTimeWeaver"&amp;gt;
			&amp;lt;bean
				class="org.springframework.instrument.classloading.InstrumentationLoadTimeWeaver" /&amp;gt;
		&amp;lt;/property&amp;gt;
	&amp;lt;/bean&amp;gt;


	&amp;lt;bean id="jpaTxnManagerBean" class="org.springframework.orm.jpa.JpaTransactionManager"&amp;gt;
		&amp;lt;property name="entityManagerFactory" ref="emfBean"&amp;gt;&amp;lt;/property&amp;gt;
	&amp;lt;/bean&amp;gt;
	&amp;lt;tx:annotation-driven transaction-manager="jpaTxnManagerBean"
		proxy-target-class="true" /&amp;gt;


	&amp;lt;bean id="scenarioHandlerProto"
		class="com.sap.cec.marketing.cfa.handler.AbstractScenarioHandler"
		abstract="true"&amp;gt;
		&amp;lt;property name="requestStorageEnabled" value="false" /&amp;gt;
		&amp;lt;property name="requestValidationEnabled" value="false" /&amp;gt;
		&amp;lt;property name="requestBackendAccessEnabled" value="false" /&amp;gt;
		&amp;lt;property name="customAliasEnabled" value="false" /&amp;gt;


	&amp;lt;/bean&amp;gt;
&amp;lt;/beans&amp;gt;
&lt;/CODE&gt;&lt;/PRE&gt;
  &lt;P&gt;Below is the persistence.xml entry:&lt;/P&gt;
  &lt;PRE&gt;&lt;CODE&gt;&amp;lt;?xml version="1.0" encoding="UTF-8"?&amp;gt;
&amp;lt;persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence &lt;A href="http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd&amp;quot;&amp;gt;" target="test_blank"&gt;http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"&amp;gt;&lt;/A&gt;;
	&amp;lt;persistence-unit name="cfa-framework" transaction-type="JTA"&amp;gt;
		&amp;lt;provider&amp;gt;org.eclipse.persistence.jpa.PersistenceProvider&amp;lt;/provider&amp;gt;
		&amp;lt;jta-data-source&amp;gt;jdbc/DefaultDB&amp;lt;/jta-data-source&amp;gt;
		&amp;lt;shared-cache-mode&amp;gt;NONE&amp;lt;/shared-cache-mode&amp;gt;
		&amp;lt;properties&amp;gt;
			&amp;lt;property name="eclipselink.ddl-generation" value="create-tables"/&amp;gt;
			&amp;lt;property name="eclipselink.query-results-cache" value="false"/&amp;gt;
		&amp;lt;/properties&amp;gt;
	&amp;lt;/persistence-unit&amp;gt;
&amp;lt;/persistence&amp;gt;


&lt;/CODE&gt;&lt;/PRE&gt;
  &lt;P&gt;Below is my repository object, which is used as DAO:&lt;/P&gt;
  &lt;PRE&gt;&lt;CODE&gt;@Repository
@Transactional
public class TenantSecretBean {


  @PersistenceContext
  private EntityManager em;


  @SuppressWarnings("unchecked")
  public List&amp;lt;TenantSecret&amp;gt; getAllTenantSecrets() {
    return em.createNamedQuery("AllTenantSecrets")
        .getResultList();
  }

......................

......................&lt;/CODE&gt;&lt;/PRE&gt;
  &lt;P&gt;And below is my entity object, mapping to the database table: &lt;/P&gt;
  &lt;PRE&gt;&lt;CODE&gt;@Entity
@Table(name = "T_TENANT_SECRET")
@NamedQueries({@NamedQuery(name = "AllTenantSecrets", query = "select s from TenantSecret s"),
    @NamedQuery(name = "TenantSecretByTenant",
        query = "select s from TenantSecret s where s.tenant = :tenantCode order by s.timestamp desc"),
    @NamedQuery(name = "TenantSecretsOlderThanTimestamp",
        query = "select s from TenantSecret s where s.timestamp &amp;lt; :timestamp")})
public class TenantSecret {
  @Id
  @Column(length = 255)
  private String id;


  @Column(length = 255)
  private String tenant;

&lt;/CODE&gt;&lt;/PRE&gt;
  &lt;P&gt;And finally here is my Controller snippet from where the DAO is called: &lt;/P&gt;
  &lt;PRE&gt;&lt;CODE&gt;@Controller
@RequestMapping(value = "/key")
@Transactional
public class SecretKeySyncController {

  @Autowired
  protected TenantSecretBean tenantSecretBean;

  @RequestMapping(method = RequestMethod.PUT)
  public ResponseEntity&amp;lt;String&amp;gt; saveSecretKey(HttpServletRequest request,
      @RequestBody String body) {
  
    saveTenantSecret(request, jsonObject); 
    return new ResponseEntity&amp;lt;&amp;gt;("Successfully Stored!!", HttpStatus.OK);
  }

  private void saveTenantSecret(HttpServletRequest request, JSONObject jsonBody)
      throws JSONException {
    TenantSecret tenantSecret = populateTenantSecret(request, jsonBody);
    tenantSecretBean.addTenantSecret(tenantSecret);
  }
&lt;/CODE&gt;&lt;/PRE&gt;
  &lt;P&gt;I have another project, cfa-main which will be deployed on SCP as a .war and includes this project as a library .jar. &lt;/P&gt;
  &lt;P&gt;I have deployed the cfa-main project in the &lt;STRONG&gt;Java EE 7 Web Profile TomEE 7 Server &lt;/STRONG&gt;container. &lt;/P&gt;
  &lt;P&gt;I have additionally added the below entry in the web.xml of cfa-main project as well:&lt;/P&gt;
  &lt;P&gt;&amp;lt;resource-ref&amp;gt; &amp;lt;res-ref-name&amp;gt;jdbc/DefaultDB&amp;lt;/res-ref-name&amp;gt; &amp;lt;res-type&amp;gt;javax.sql.DataSource&amp;lt;/res-type&amp;gt; &amp;lt;/resource-ref&amp;gt;&lt;BR /&gt;&lt;/P&gt;
  &lt;P&gt;I am getting the below exception in my local eclipse when I try to save something into the database using the &lt;STRONG&gt;tenantSecretBean.addTenantSecret(tenantSecret) &lt;/STRONG&gt;method:&lt;/P&gt;
  &lt;PRE&gt;&lt;CODE&gt;&amp;lt;!doctype html&amp;gt;&amp;lt;html lang="en"&amp;gt;&amp;lt;head&amp;gt;&amp;lt;title&amp;gt;HTTP Status 500 – Internal Server Error&amp;lt;/title&amp;gt;&amp;lt;style type="text/css"&amp;gt;h1 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:22px;} h2 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:16px;} h3 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:14px;} body {font-family:Tahoma,Arial,sans-serif;color:black;background-color:white;} b {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;} p {font-family:Tahoma,Arial,sans-serif;background:white;color:black;font-size:12px;} a {color:black;} a.name {color:black;} .line {height:1px;background-color:#525D76;border:none;}&amp;lt;/style&amp;gt;&amp;lt;/head&amp;gt;&amp;lt;body&amp;gt;&amp;lt;h1&amp;gt;HTTP Status 500 – Internal Server Error&amp;lt;/h1&amp;gt;&amp;lt;hr class="line" /&amp;gt;&amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Type&amp;lt;/b&amp;gt; Exception Report&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Message&amp;lt;/b&amp;gt; Request processing failed; nested exception is org.springframework.transaction.CannotCreateTransactionException: Could not open JPA EntityManager for transaction; nested exception is java.lang.IllegalStateException:&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Description&amp;lt;/b&amp;gt; The server encountered an unexpected condition that prevented it from fulfilling the request.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Exception&amp;lt;/b&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;pre&amp;gt;org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.springframework.transaction.CannotCreateTransactionException: Could not open JPA EntityManager for transaction; nested exception is java.lang.IllegalStateException: 
Exception Description: Cannot use an EntityTransaction while using JTA.
	org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:986)
	org.springframework.web.servlet.FrameworkServlet.doPut(FrameworkServlet.java:892)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:664)
	org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:855)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
	org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
&amp;lt;/pre&amp;gt;&amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Root Cause&amp;lt;/b&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;pre&amp;gt;org.springframework.transaction.CannotCreateTransactionException: Could not open JPA EntityManager for transaction; nested exception is java.lang.IllegalStateException: 
Exception Description: Cannot use an EntityTransaction while using JTA.
	org.springframework.orm.jpa.JpaTransactionManager.doBegin(JpaTransactionManager.java:450)
	org.springframework.transaction.support.AbstractPlatformTransactionManager.getTransaction(AbstractPlatformTransactionManager.java:374)
	org.springframework.transaction.interceptor.TransactionAspectSupport.createTransactionIfNecessary(TransactionAspectSupport.java:474)
	org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:289)
	org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:98)
	org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)
	org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:689)
	com.sap.cec.marketing.cfa.controller.SecretKeySyncController$$EnhancerBySpringCGLIB$$e80317ec.saveSecretKey(&amp;lt;generated&amp;gt;)
	sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	java.lang.reflect.Method.invoke(Unknown Source)
	org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:209)
	org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136)
	org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)
	org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:871)
	org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:777)
	org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
	org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:991)
	org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925)
	org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:978)
	org.springframework.web.servlet.FrameworkServlet.doPut(FrameworkServlet.java:892)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:664)
	org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:855)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
	org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
&amp;lt;/pre&amp;gt;&amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Root Cause&amp;lt;/b&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;pre&amp;gt;java.lang.IllegalStateException: 
Exception Description: Cannot use an EntityTransaction while using JTA.
	org.eclipse.persistence.internal.jpa.transaction.JTATransactionWrapper.getTransaction(JTATransactionWrapper.java:73)
	org.eclipse.persistence.internal.jpa.EntityManagerImpl.getTransaction(EntityManagerImpl.java:1311)
	org.springframework.orm.jpa.vendor.EclipseLinkJpaDialect.beginTransaction(EclipseLinkJpaDialect.java:86)
	org.springframework.orm.jpa.JpaTransactionManager.doBegin(JpaTransactionManager.java:400)
	org.springframework.transaction.support.AbstractPlatformTransactionManager.getTransaction(AbstractPlatformTransactionManager.java:374)
	org.springframework.transaction.interceptor.TransactionAspectSupport.createTransactionIfNecessary(TransactionAspectSupport.java:474)
	org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:289)
	org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:98)
	org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)
	org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:689)
	com.sap.cec.marketing.cfa.controller.SecretKeySyncController$$EnhancerBySpringCGLIB$$e80317ec.saveSecretKey(&amp;lt;generated&amp;gt;)
	sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	java.lang.reflect.Method.invoke(Unknown Source)
	org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:209)
	org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136)
	org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)
	org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:871)
	org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:777)
	org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
	org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:991)
	org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925)
	org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:978)
	org.springframework.web.servlet.FrameworkServlet.doPut(FrameworkServlet.java:892)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:664)
	org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:855)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
	org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
&amp;lt;/pre&amp;gt;&amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt; The full stack trace of the root cause is available in the server logs.&amp;lt;/p&amp;gt;&amp;lt;hr class="line" /&amp;gt;&amp;lt;/body&amp;gt;&amp;lt;/html&amp;gt;
&lt;/CODE&gt;&lt;/PRE&gt;
  &lt;P&gt;I tried removing/changing the place of @Transactional annotation, added @Scope annotation, and many more things, but to no effect.&lt;/P&gt;
  &lt;P&gt;But if I deploy a standalone spring + JPA project with the same configuration as above without any framework, the same works and I am able to successfully store data in the database, both in local and on SCP. &lt;/P&gt;
  &lt;P&gt;Can you please help me with the same?&lt;/P&gt;
  &lt;P&gt;Regards,&lt;/P&gt;
  &lt;P&gt;Suhas R&lt;/P&gt;</description>
      <pubDate>Sun, 04 Feb 2024 00:56:47 GMT</pubDate>
      <guid>https://community.sap.com/t5/technology-q-a/developing-a-framework-library-using-spring-jpa-on-sap-cloud-platform/qaq-p/521253</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2024-02-04T00:56:47Z</dc:date>
    </item>
    <item>
      <title>Re: Developing a framework library using Spring + JPA on SAP Cloud Platform</title>
      <link>https://community.sap.com/t5/technology-q-a/developing-a-framework-library-using-spring-jpa-on-sap-cloud-platform/qaa-p/521254#M102831</link>
      <description>&lt;P&gt;Hello, Suhas. You'd better share the code snippet for us to see how you manage transaction in this function.&lt;/P&gt;
  &lt;PRE&gt;&lt;CODE&gt; tenantSecretBean.addTenantSecret(tenantSecret);&lt;/CODE&gt;&lt;/PRE&gt;
  &lt;P&gt;This error seems that you've already use JTA transaction handled by the container by still somewhere you are using another configuration to manage transaction.&lt;/P&gt;</description>
      <pubDate>Thu, 21 Dec 2017 06:38:55 GMT</pubDate>
      <guid>https://community.sap.com/t5/technology-q-a/developing-a-framework-library-using-spring-jpa-on-sap-cloud-platform/qaa-p/521254#M102831</guid>
      <dc:creator>richard-zhao</dc:creator>
      <dc:date>2017-12-21T06:38:55Z</dc:date>
    </item>
    <item>
      <title>Re: Developing a framework library using Spring + JPA on SAP Cloud Platform</title>
      <link>https://community.sap.com/t5/technology-q-a/developing-a-framework-library-using-spring-jpa-on-sap-cloud-platform/qaa-p/521255#M102832</link>
      <description>&lt;P&gt;It worked for me now!!&lt;/P&gt;
  &lt;P&gt;I made changes in the application-context xml file&lt;/P&gt;
  &lt;P&gt;I changed the content from : &lt;/P&gt;
  &lt;PRE&gt;&lt;CODE&gt;&amp;lt;bean id="jpaTxnManagerBean" class="org.springframework.orm.jpa.JpaTransactionManager"&amp;gt;
		&amp;lt;property name="entityManagerFactory" ref="emfBean"&amp;gt;&amp;lt;/property&amp;gt;
&amp;lt;/bean&amp;gt;
&amp;lt;tx:annotation-driven transaction-manager="jpaTxnManagerBean" proxy-target-class="true" /&amp;gt;&lt;BR /&gt;&lt;/CODE&gt;&lt;/PRE&gt;
  &lt;P&gt;to&lt;/P&gt;
  &lt;PRE&gt;&lt;CODE&gt;&amp;lt;bean id="jtaTxnManagerBean" class="org.springframework.transaction.jta.JtaTransactionManager"/&amp;gt;
&amp;lt;tx:annotation-driven transaction-manager="jtaTxnManagerBean" proxy-target-class="true" /&amp;gt;&lt;BR /&gt;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Wed, 27 Dec 2017 05:21:13 GMT</pubDate>
      <guid>https://community.sap.com/t5/technology-q-a/developing-a-framework-library-using-spring-jpa-on-sap-cloud-platform/qaa-p/521255#M102832</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2017-12-27T05:21:13Z</dc:date>
    </item>
  </channel>
</rss>

