java - TomEE ++ and ObjectDB can not get it work -
i have daoservice gets initialized when app starts.
public daoservice() { map<string, string> properties = new hashmap<string, string>(); properties.put("javax.persistence.jdbc.user", "admin"); properties.put("javax.persistence.jdbc.password", "admin"); factory = persistence.createentitymanagerfactory("$objectdb/db/points.odb", properties); //exception! }
but everytime fires exception:
javax.persistence.persistenceexception: explicit persistence provider error(s) occurred "$objectdb/db/points.odb" after trying following discovered implementations: org.apache.openjpa.persistence.persistenceproviderimpl, com.objectdb.jpa.provider provider: com.objectdb.jpa.provider @ org.apache.myfaces.view.facelets.el.contextawaretagmethodexpression.invoke(contextawaretagmethodexpression.java:108) @ org.apache.myfaces.application.actionlistenerimpl.processaction(actionlistenerimpl.java:68) @ javax.faces.component.uicommand.broadcast(uicommand.java:120) @ javax.faces.component.uiviewroot._broadcastall(uiviewroot.java:1028) @ javax.faces.component.uiviewroot.broadcastevents(uiviewroot.java:286) @ javax.faces.component.uiviewroot._process(uiviewroot.java:1375) @ javax.faces.component.uiviewroot.processapplication(uiviewroot.java:752) @ org.apache.myfaces.lifecycle.invokeapplicationexecutor.execute(invokeapplicationexecutor.java:38) @ org.apache.myfaces.lifecycle.lifecycleimpl.executephase(lifecycleimpl.java:170) @ org.apache.myfaces.lifecycle.lifecycleimpl.execute(lifecycleimpl.java:117) @ javax.faces.webapp.facesservlet.service(facesservlet.java:197) @ org.apache.catalina.core.applicationfilterchain.internaldofilter(applicationfilterchain.java:305) @ org.apache.catalina.core.applicationfilterchain.dofilter(applicationfilterchain.java:210) @ org.primefaces.webapp.filter.fileuploadfilter.dofilter(fileuploadfilter.java:79) @ org.apache.catalina.core.applicationfilterchain.internaldofilter(applicationfilterchain.java:243) @ org.apache.catalina.core.applicationfilterchain.dofilter(applicationfilterchain.java:210) @ org.apache.catalina.core.standardwrappervalve.invoke(standardwrappervalve.java:222) @ org.apache.catalina.core.standardcontextvalve.invoke(standardcontextvalve.java:123) @ org.apache.tomee.catalina.openejbvalve.invoke(openejbvalve.java:45) @ org.apache.catalina.authenticator.authenticatorbase.invoke(authenticatorbase.java:472) @ org.apache.catalina.core.standardhostvalve.invoke(standardhostvalve.java:171) @ org.apache.catalina.valves.errorreportvalve.invoke(errorreportvalve.java:99) @ org.apache.catalina.valves.accesslogvalve.invoke(accesslogvalve.java:936) @ org.apache.catalina.core.standardenginevalve.invoke(standardenginevalve.java:118) @ org.apache.catalina.connector.coyoteadapter.service(coyoteadapter.java:407) @ org.apache.coyote.http11.abstracthttp11processor.process(abstracthttp11processor.java:1004) @ org.apache.coyote.abstractprotocol$abstractconnectionhandler.process(abstractprotocol.java:589) @ org.apache.tomcat.util.net.jioendpoint$socketprocessor.run(jioendpoint.java:312) @ java.util.concurrent.threadpoolexecutor.runworker(threadpoolexecutor.java:1110) @ java.util.concurrent.threadpoolexecutor$worker.run(threadpoolexecutor.java:603) @ java.lang.thread.run(thread.java:722) caused by: javax.el.elexception: javax.ejb.ejbexception: bean encountered non-application exception; nested exception is: javax.persistence.persistenceexception: explicit persistence provider error(s) occurred "$objectdb/db/points.odb" after trying following discovered implementations: org.apache.openjpa.persistence.persistenceproviderimpl, com.objectdb.jpa.provider provider: com.objectdb.jpa.provider @ org.apache.el.parser.astvalue.invoke(astvalue.java:291) @ org.apache.el.methodexpressionimpl.invoke(methodexpressionimpl.java:274) @ org.apache.myfaces.view.facelets.el.contextawaretagmethodexpression.invoke(contextawaretagmethodexpression.java:96) ... 30 more caused by: javax.ejb.ejbexception: bean encountered non-application exception; nested exception is: javax.persistence.persistenceexception: explicit persistence provider error(s) occurred "$objectdb/db/points.odb" after trying following discovered implementations: org.apache.openjpa.persistence.persistenceproviderimpl, com.objectdb.jpa.provider provider: com.objectdb.jpa.provider @ org.apache.openejb.core.ivm.baseejbproxyhandler.convertexception(baseejbproxyhandler.java:363) @ org.apache.openejb.core.ivm.baseejbproxyhandler.invoke(baseejbproxyhandler.java:283) @ $proxy110.loginuser(unknown source) @ net.heatboxes.core.service.authorizationservice.login(authorizationservice.java:42) @ net.heatboxes.core.bean.view.login.submit(login.java:49) @ sun.reflect.nativemethodaccessorimpl.invoke0(native method) @ sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl.java:57) @ sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl.java:43) @ java.lang.reflect.method.invoke(method.java:601) @ org.apache.el.parser.astvalue.invoke(astvalue.java:278) ... 32 more caused by: javax.persistence.persistenceexception: explicit persistence provider error(s) occurred "$objectdb/db/points.odb" after trying following discovered implementations: org.apache.openjpa.persistence.persistenceproviderimpl, com.objectdb.jpa.provider provider: com.objectdb.jpa.provider @ javax.persistence.persistence.createpersistenceexception(persistence.java:244) @ javax.persistence.persistence.createentitymanagerfactory(persistence.java:186) @ net.heatboxes.dao.daoservice.<init>(daoservice.java:42) @ net.heatboxes.dao.daoservice.getinstance(daoservice.java:27) @ net.heatboxes.core.service.statelessservice.getdaoservice(statelessservice.java:22) @ net.heatboxes.core.service.impl.authenticationserviceimpl.loginuser(authenticationserviceimpl.java:39) @ sun.reflect.nativemethodaccessorimpl.invoke0(native method) @ sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl.java:57) @ sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl.java:43) @ java.lang.reflect.method.invoke(method.java:601) @ org.apache.openejb.core.interceptor.reflectioninvocationcontext$invocation.invoke(reflectioninvocationcontext.java:181) @ org.apache.openejb.core.interceptor.reflectioninvocationcontext.proceed(reflectioninvocationcontext.java:163) @ net.heatboxes.core.interseptors.accesscontrolinterceptor.interceptor(accesscontrolinterceptor.java:32) @ sun.reflect.nativemethodaccessorimpl.invoke0(native method) @ sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl.java:57) @ sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl.java:43) @ java.lang.reflect.method.invoke(method.java:601) @ org.apache.openejb.core.interceptor.reflectioninvocationcontext$invocation.invoke(reflectioninvocationcontext.java:181) @ org.apache.openejb.core.interceptor.reflectioninvocationcontext.proceed(reflectioninvocationcontext.java:163) @ org.apache.openejb.cdi.cdiinterceptor.invoke(cdiinterceptor.java:126) @ org.apache.openejb.cdi.cdiinterceptor.access$000(cdiinterceptor.java:42) @ org.apache.openejb.cdi.cdiinterceptor$1.call(cdiinterceptor.java:63) @ org.apache.openejb.cdi.cdiinterceptor.aroundinvoke(cdiinterceptor.java:69) @ sun.reflect.generatedmethodaccessor54.invoke(unknown source) @ sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl.java:43) @ java.lang.reflect.method.invoke(method.java:601) @ org.apache.openejb.core.interceptor.reflectioninvocationcontext$invocation.invoke(reflectioninvocationcontext.java:181) @ org.apache.openejb.core.interceptor.reflectioninvocationcontext.proceed(reflectioninvocationcontext.java:163) @ org.apache.openejb.monitoring.statsinterceptor.record(statsinterceptor.java:176) @ org.apache.openejb.monitoring.statsinterceptor.invoke(statsinterceptor.java:95) @ sun.reflect.generatedmethodaccessor53.invoke(unknown source) @ sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl.java:43) @ java.lang.reflect.method.invoke(method.java:601) @ org.apache.openejb.core.interceptor.reflectioninvocationcontext$invocation.invoke(reflectioninvocationcontext.java:181) @ org.apache.openejb.core.interceptor.reflectioninvocationcontext.proceed(reflectioninvocationcontext.java:163) @ org.apache.openejb.core.interceptor.interceptorstack.invoke(interceptorstack.java:138) @ org.apache.openejb.core.stateful.statefulcontainer.businessmethod(statefulcontainer.java:673) @ org.apache.openejb.core.stateful.statefulcontainer.invoke(statefulcontainer.java:378) @ org.apache.openejb.core.ivm.ejbobjectproxyhandler.synchronizedbusinessmethod(ejbobjectproxyhandler.java:246) @ org.apache.openejb.core.ivm.ejbobjectproxyhandler.businessmethod(ejbobjectproxyhandler.java:241) @ org.apache.openejb.core.ivm.ejbobjectproxyhandler._invoke(ejbobjectproxyhandler.java:83) @ org.apache.openejb.core.ivm.baseejbproxyhandler.invoke(baseejbproxyhandler.java:279) ... 40 more caused by: com.objectdb.o._persistenceexception: failed validate xml file c:\!heatboxes-web\build\web\web-inf\classes\meta-inf\persistence.xml: @ com.objectdb.o._persistenceexception.b(_persistenceexception.java:45) @ com.objectdb.jpa.provider.createentitymanagerfactory(provider.java:87) @ com.objectdb.jpa.provider.createentitymanagerfactory(provider.java:32) @ javax.persistence.persistence.createentitymanagerfactory(persistence.java:152) ... 80 more caused by: com.objectdb.o.userexception: failed validate xml file c:\!heatboxes-web\build\web\web-inf\classes\meta-inf\persistence.xml: @ com.objectdb.o.msg.d(msg.java:74) @ com.objectdb.o.xmd.n(xmd.java:217) @ com.objectdb.o.xmd.k(xmd.java:155) @ com.objectdb.o.unm$z._e(unm.java:182) @ com.objectdb.o.unm$z.<init>(unm.java:169) @ com.objectdb.o.unm.x(unm.java:105) @ com.objectdb.o.unm.w(unm.java:75) @ com.objectdb.jpa.provider.createentitymanagerfactory(provider.java:56) ... 82 more caused by: java.lang.nullpointerexception @ javax.xml.validation.schemafactory.newschema(schemafactory.java:623) @ com.objectdb.o.xmd.n(xmd.java:200) ... 88 more
i tried , without persistence.xml
<?xml version="1.0" encoding="utf-8" ?> <persistence 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 http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd" version="1.0"> <persistence-unit name="my-pu"> <description>my persistence unit</description> <provider>com.objectdb.jpa.provider</provider> <class>net.heatboxes.dao.entity.userentity</class> <properties> <property name="javax.persistence.jdbc.url" value="my.odb"/> <property name="javax.persistence.jdbc.user" value="admin"/> <property name="javax.persistence.jdbc.password" value="admin"/> </properties> </persistence-unit> </persistence>
finally i've got it. should not use persistence.xml @ all. when not use it, got error:
http status 500 - org.apache.openjpa.persistence.argumentexception: jdbc driver or datasource class name must specified in connectiondrivername property. available properties in configuration "org.apache.openjpa.jdbc.conf.jdbcconfigurationimpl@fdaf18ee".
openjpa conflicts existing jpa of objectdb.jar.
to avoid it, removed openjpa-asm-shaded-
x.x.x.jar
tomee/lib
folder.
summarize
only:
persistence.createentitymanagerfactory("$objectdb/db/painintheass.odb");
for entitymanagerfactory
only:
objectdb-ee.jar
for objectdb library in dependencies.
only without:
openjpa-asm-shaded-x.x.x.jar
in tomee/lib
netbeans still create persistance.xml break everything. if still not successful , use netbeans, clear cache, in c:\users\
yourname\appdata\local\netbeans\cache
you may in yourproject\nbproject\project.properties
see old malformed settings played around , leaved is.
Comments
Post a Comment