java - error EclipseLink-4021 when creating EntityManager at runtime why? -


i trying create entitymanager @ runtime can set different user name , password config.xml

here code to create entitymanager

map.put(persistenceunitproperties.jdbc_user,  systemconfig.getconfig().getstring("jdbcuser")); map.put(persistenceunitproperties.jdbc_password, systemconfig.getconfig().getstring("jdbcpassword")); map.put(persistenceunitproperties.jdbc_url, systemconfig.getconfig().getstring("jdbcurl")); map.put(persistenceunitproperties.jdbc_driver, "net.sourceforge.jtds.jdbc.driver"); entitymanager emgr = persistence.createentitymanagerfactory("mypu", map).createentitymanager(); 

my program structure in unix: ~/test/myprogram.jar ~/test/lib/*.jar (all library , jdbc.jar here)

the program works fine when run program inside folder /test/ when run program under root ~/ exception [eclipselink-4021]. idea why??

note: need schedule program using cron job.

[el info]: 2013-05-06 12:10:18.989--serversession(1729331687)--eclipselink, version: eclipse persistence services - 2.4.1.v20121003-ad44345 [el severe]: ejb: 2013-05-06 12:10:19.002--serversession(1729331687)--exception [eclipselink-4021] (eclipse persistence services - 2.4.1.v20121003-ad44345): org.eclipse.persistence.exceptions.databaseexception exception description: unable acquire connection driver [net.sourceforge.jtds.jdbc.driver], user [null] , url [null].  verify have set expected driver class , url.  check login, persistence.xml or sessions.xml resource.  jdbc.driver property should set class compatible database platform exception in thread "main" javax.persistence.persistenceexception: exception [eclipselink-4021] (eclipse persistence services - 2.4.1.v20121003-ad44345): org.eclipse.persistence.exceptions.databaseexception exception description: unable acquire connection driver [net.sourceforge.jtds.jdbc.driver], user [null] , url [null].  verify have set expected driver class , url.  check login, persistence.xml or sessions.xml resource.  jdbc.driver property should set class compatible database platform         @ org.eclipse.persistence.internal.jpa.entitymanagersetupimpl.deploy(entitymanagersetupimpl.java:602)         @ org.eclipse.persistence.internal.jpa.entitymanagerfactorydelegate.getdatabasesession(entitymanagerfactorydelegate.java:186)         @ org.eclipse.persistence.internal.jpa.entitymanagerfactorydelegate.createentitymanagerimpl(entitymanagerfactorydelegate.java:278)         @ org.eclipse.persistence.internal.jpa.entitymanagerfactoryimpl.createentitymanagerimpl(entitymanagerfactoryimpl.java:304)         @ org.eclipse.persistence.internal.jpa.entitymanagerfactoryimpl.createentitymanager(entitymanagerfactoryimpl.java:282)         @ dcsmailcheck.mailresend.<init>(mailresend.java:61)         @ dcsmailcheck.main.main(main.java:49) caused by: exception [eclipselink-4021] (eclipse persistence services - 2.4.1.v20121003-ad44345): org.eclipse.persistence.exceptions.databaseexception exception description: unable acquire connection driver [net.sourceforge.jtds.jdbc.driver], user [null] , url [null].  verify have set expected driver class , url.  check login, persistence.xml or sessions.xml resource.  jdbc.driver property should set class compatible database platform         @ org.eclipse.persistence.exceptions.databaseexception.unabletoacquireconnectionfromdriverexception(databaseexception.java:376)         @ org.eclipse.persistence.sessions.defaultconnector.connect(defaultconnector.java:91)         @ org.eclipse.persistence.sessions.datasourcelogin.connecttodatasource(datasourcelogin.java:162)         @ org.eclipse.persistence.internal.sessions.databasesessionimpl.loginanddetectdatasource(databasesessionimpl.java:685)         @ org.eclipse.persistence.internal.jpa.entitymanagerfactoryprovider.login(entitymanagerfactoryprovider.java:215)         @ org.eclipse.persistence.internal.jpa.entitymanagersetupimpl.deploy(entitymanagersetupimpl.java:542)         ... 6 more 

since code works in folder ~/test, seems systemconfig.getconfig() fails load properties place. make sure have added path properties classpath.


Comments