Issue with spring hibernate application running on GAE -


i have java (spring+maven+hibernate) application running on google cloud cloud sql. whenever there communication between database , application throws me exception saying not open connection communication failure. , in last gives me:

caused by: java.net.socketexception: permission denied: attempt access blocked recipient without permission. (mapped-ipv4)     @ com.google.appengine.api.socket.socketapihelper.translateerror(socketapihelper.java:105)     @ com.google.appengine.api.socket.socketapihelper.translateerror(socketapihelper.java:116)     @ com.google.appengine.api.socket.socketapihelper.makesynccall(socketapihelper.java:82)     @ com.google.appengine.api.socket.appenginesocketimpl.createsocket(appenginesocketimpl.java:497)     @ com.google.appengine.api.socket.appenginesocketimpl.connecttoaddress(appenginesocketimpl.java:362)     @ com.google.appengine.api.socket.appenginesocketimpl.connect(appenginesocketimpl.java:352)     @ java.net.socket.connect(socket.java:600)     @ java.net.socket.connect(socket.java:537)     @ java.net.socket.<init>(socket.java:434)     @ java.net.socket.<init>(socket.java:250)     @ com.mysql.jdbc.standardsocketfactory.connect(standardsocketfactory.java:259)     @ com.mysql.jdbc.mysqlio.<init>(mysqlio.java:300)     ... 113 more  org.springframework.transaction.cannotcreatetransactionexception: not open hibernate session transaction; nested exception org.hibernate.exception.jdbcconnectionexception: not open connection     @ org.springframework.orm.hibernate4.hibernatetransactionmanager.dobegin(hibernatetransactionmanager.java:440)     @ org.springframework.transaction.support.abstractplatformtransactionmanager.gettransaction(abstractplatformtransactionmanager.java:371)     @ org.springframework.transaction.interceptor.transactionaspectsupport.createtransactionifnecessary(transactionaspectsupport.java:334)     @ org.springframework.transaction.interceptor.transactioninterceptor.invoke(transactioninterceptor.java:105)     @ org.springframework.aop.framework.reflectivemethodinvocation.proceed(reflectivemethodinvocation.java:172)     @ org.springframework.aop.framework.jdkdynamicaopproxy.invoke(jdkdynamicaopproxy.java:202)     @ com.sun.proxy.$proxy38.loadadminloginfromdetails(unknown source)     @ com.bullbeardevice.service.impl.customauthenticationmanager.authenticate(customauthenticationmanager.java:47) 

my hibernate config file :

 <!-- hibernate session factory --> <bean id="propertyconfigurer"         class="org.springframework.beans.factory.config.propertyplaceholderconfigurer">         <property name="locations">             <list>                 <value>classpath:database.properties</value>             </list>         </property>     </bean>      <bean id="datasource"         class="org.springframework.jdbc.datasource.drivermanagerdatasource">         <property name="driverclassname" value="${db.driverclassname}" />         <property name="url" value="${db.url}" />         <property name="username" value="${db.username}" />         <property name="password" value="${db.password}" />     </bean>      <bean id="sessionfactory"         class="org.springframework.orm.hibernate4.localsessionfactorybean">         <property name="datasource" ref="datasource" />         <property name="packagestoscan" value="com.abc.model" />         <property name="hibernateproperties">             <props>             <prop key="hibernate.dialect">${hibernate.dialect}</prop>                 <prop key="hibernate.show_sql">${hibernate.show_sql}</prop>                 <prop key="hibernate.jdbc.batch_size">100</prop>                 <!-- <prop key="hibernate.hbm2ddl.auto">create-drop</prop>  -->                 <prop key="hibernate.current_session_context_class">                     org.springframework.orm.hibernate4.springsessioncontext                 </prop>                 <!-- configuration pool via c3p0 -->                 <prop key="hibernate.c3p0.acquire_increment">5</prop>                 <prop key="hibernate.c3p0.idle_test_period">600</prop>                 <prop key="hibernate.c3p0.max_size">25</prop>                 <prop key="hibernate.c3p0.max_statements">25</prop>                 <prop key="hibernate.c3p0.min_size">5</prop>                 <prop key="hibernate.c3p0.timeout">300</prop>                 <prop key="hibernate.connection.release_mode">auto</prop>                 <prop key="hibernate.auto_close_session">true</prop>             </props>         </property>     </bean>     <bean id="transactionmanager"         class="org.springframework.orm.hibernate4.hibernatetransactionmanager">         <property name="sessionfactory" ref="sessionfactory" />     </bean>   <tx:annotation-driven transaction-manager="transactionmanager"/>   </beans> 

my database.properties :

#db.driverclassname=com.mysql.jdbc.driver db.driverclassname=com.google.appengine.api.rdbms.appenginedriver #db.url=jdbc:mysql://192.168.1.3:3306/abc db.url=jdbc:google:rdbms://xxxx:xxxx/xxxx #db.url=jdbc:oracle:thin:@127.0.0.1:1521/xe db.username=root db.password=root #hibernate.dialect=org.hibernate.dialect.mysql5dialect hibernate.dialect=org.hibernate.dialect.mysqldialect hibernate.show_sql=true hibernate.cache.use_second_level_cache=false hibernate.cache.use_query_cache=false #hibernate.cache.provider_class=net.sf.ehcache.hibernate.ehcacheprovider #hibernate.cache.provider_class==org.hibernate.cache.ehcacheprovider #db.sid=xe # configuration hibernate search hibernate.search.default.locking_strategy=simple #hibernate.search.analyzer=org.apache.lucene.analysis.en.englishanalyzer hibernate.search.worker.batch_size=100 hibernate.search.indexing_strategy = manual hibernate.search.default.reader.strategy = shared hibernate.search.default.worker.thread_pool.size=30 hibernate.search.default.indexwriter.ram_buffer_size=10 hibernate.search.default.indexwriter.merge_max_optimize_size=7 hibernate.search.default.indexwriter.merge_max_size=7 

when deploy application check authorization access cloud sql (i.e authorization access cloud sql).

when authorization happens first time, store oauth access tokens in windows registry. second time, ll directly access token registry.

if token changed or expired, ll above error. need delete old token , authorize again.

follow these steps delete tokens registry.

open run , type regedit , click open.

it open registry editor window.

then expand, hkey_current_user -> software -> javasoft -> prefs -> com -> google -> cloud -> sqlservice-> oauth2

right hand side able see google oath token. delete tokens except default.

now if deploy project ask authorize. ll deploy.

hope helps you.


Comments

Popular posts from this blog

javascript - Jquery show_hide, what to add in order to make the page scroll to the bottom of the hidden field once button is clicked -

javascript - Highcharts multi-color line -

javascript - Enter key does not work in search box -