mysql - Spring war file deployed on ec2 showing hibernate persistence failure connecting to rds -
our company has app has been hosted on media temple, since moving amazon ec2. i've been through tutorials, , got apache, php, mysql, java, , tomcat7 running fine. also, have been able connect rds instance mysql workbench.
however, when upload war file tomcat manager error states unable connect database.
here top of error in catalina.out
file
-----------------snippet log file----------------------------------------
17:28:52.311 [http-bio-8080-exec-1] debug o.s.b.f.s.disposablebeanadapter - invoking destroy method 'close' on bean name 'datasource' 17:28:52.311 [http-bio-8080-exec-1] debug o.s.b.f.s.defaultlistablebeanfactory - retrieved dependent beans bean '(inner bean)#73e12051': [org.springframework.se curity.access.method.delegatingmethodsecuritymetadatasource#0] 17:28:52.311 [http-bio-8080-exec-1] debug o.s.b.f.s.defaultlistablebeanfactory - retrieved dependent beans bean '(inner bean)#3b35dc09': [(inner bean)#73e12051] 17:28:52.312 [http-bio-8080-exec-1] **error o.s.web.context.contextloader - context initialization failed org.springframework.beans.factory.beancreationexception: error creating bean name 'entitymanagerfactory' defined in file [/var/lib/tomcat7/webapps/clearbox/web -inf/classes/meta-inf/spring/applicationcontext.xml]: invocation of init method failed; nested exception javax.persistence.persistenceexception: [persistenceunit : persistenceunit] unable build entitymanagerfactory** @ org.springframework.beans.factory.support.abstractautowirecapablebeanfactory.initializebean(abstractautowirecapablebeanfactory.java:1553) ~[spring-beans- 4.0.3.release.jar:4.0.3.release] @ org.springframework.beans.factory.support.abstractautowirecapablebeanfactory.docreatebean(abstractautowirecapablebeanfactory.java:539) ~[spring-beans-4.0 .3.release.jar:4.0.3.release]
.... , on.....
severe: web application [/clearbox] registered jdbc driver [com.mysql.jdbc.driver] failed unregister when web application stopped. prevent memory leak, jdbc driver has been forcibly unregistered. **------------end snippet log file-----------------------------** here code applicationcontext.xml attempts run **--------------snippet applicationcontect.xml----------------** <bean class="org.apache.commons.dbcp.basicdatasource" destroy-method="close" id="datasource"> <property name="driverclassname" value="${database.driverclassname}"/> <property name="url" value="${database.url}"/> <property name="username" value="${database.username}"/> <property name="password" value="${database.password}"/> <property name="testonborrow" value="true"/> <property name="testonreturn" value="true"/> <property name="testwhileidle" value="true"/> <property name="timebetweenevictionrunsmillis" value="1800000"/> <property name="numtestsperevictionrun" value="3"/> <property name="minevictableidletimemillis" value="1800000"/> <property name="validationquery" value="select 1"/> </bean> <bean class="org.springframework.orm.jpa.jpatransactionmanager" id="transactionmanager"> <property name="entitymanagerfactory" ref="entitymanagerfactory"/> </bean>
---------------end snippet ------------------------------------------
here database.properties holds info applicationcontext.xml
-------------------snippet database.properties----------------
database.driverclassname=com.mysql.jdbc.driver database.url=jdbc\:mysql\://localhost\:3306/clearboxdb hibernate.dialect=org.hibernate.dialect.mysql5innodbdialect database.username=myusernamehere database.password=mypasswordhere
---------------------end snippet---------------------------------------
the rds has security group has following inbound: mysql tcp 3306 0.0.0.0/0
everything works on local tomcat7, , our existing live app tomcat7. i'm not sure error is.
- is @ ec2/rds security groups level?
- is @ hibernate / spring persistence level?
- is @ mysql user level?
can please help, or point me existing post answer. i've surfed around stackoverflow couple days now, , decided ask question.
a tip may is, before started ec2, new developer getting same error when deploying war locally. found solution, in system mysql username: root no password caused war file work.
so, i'm seeing error again, not able set root no password on live system.
your database url set localhost, if using rds not case, instead should replace hostname provided in rds console (something dbname.somerandomchars.rds.eu-west... sorry dont have example hand guess memory may different order). need make sure set db user name , password rds values.
one other thing if database accessible workbench, mean selected "publicly accessible" if must change security group, allowing traffic insecure, if absolutely must public should use security groups narrow down limited set.
Comments
Post a Comment