openjpa-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Marc Prud'hommeaux <mprud...@apache.org>
Subject Re: Configuration: either / or ?
Date Tue, 09 Jan 2007 23:48:47 GMT
Matthieu-

The following code works for me against the most recent OpenJPA build:

         org.apache.derby.jdbc.EmbeddedDataSource ds =
             new org.apache.derby.jdbc.EmbeddedDataSource();
         ds.setDatabaseName("testdb");
         ds.setCreateDatabase("create");

         Map props = new HashMap();
         props.put("openjpa.ConnectionFactory", ds);

         EntityManagerFactory emf = Persistence.
             createEntityManagerFactory("", props);
         EntityManager em = emf.createEntityManager();
         em.getTransaction().begin();
         em.getTransaction().commit();
         em.close();
         emf.close();


Can you try again with the most recent snapshot and see if you still  
get the error?



On Jan 9, 2007, at 1:07 PM, Matthieu Riou wrote:

> So if I do:
>
>        propMap.put("openjpa.ConnectionDriverName",
> org.apache.derby.jdbc.EmbeddedDriver.class.getName());
>        propMap.put("openjpa.ConnectionFactoryName",
> org.apache.derby.jdbc.EmbeddedDriver.class.getName());
>        propMap.put("openjpa.ConnectionFactory", _datasource);
>
> It tries to lookup ConnectionFactoryName in JNDI which doesn't  
> work. If I
> remove ConnectionFactoryName and keep the other 2 it instantiates the
> EmbeddedDriver itself and ignores the datasource instance I provided.
>
> Another idea?
>
> On 1/9/07, Marc Prud'hommeaux <mprudhom@apache.org> wrote:
>>
>> Matthieu-
>>
>> We may not be expecting you to just manually set the DataSource. Try
>> setting the "openjpa.ConnectionFactory" property to the DataSource
>> object you are using, and then set "openjpa.ConnectionFactoryName" to
>> some bogus string and see what happens.
>>
>> If there is an error, be sure to post the complete stack trace.
>>
>>
>>
>> On Jan 9, 2007, at 9:11 AM, Matthieu Riou wrote:
>>
>> > If I don't set "openjpa.ConnectionDriverName" (and even if I set "
>> > openjpa.ConnectionFactory" with my datasource instance) I get the
>> > "A JDBC
>> > Driver or DataSource class name must be specified in the
>> > ConnectionDriverName property" error. So I'm getting more and more
>> > confused
>> > as to which properties I should set...
>> >
>> > On 1/8/07, Marc Prud'hommeaux <mprudhom@apache.org> wrote:
>> >>
>> >> Matthieu-
>> >>
>> >> I think you want "openjpa.ConnectionFactory", not
>> >> "openjpa.ConnectionDriverName".
>> >>
>> >>
>> >>
>> >> On Jan 8, 2007, at 9:45 AM, Matthieu Riou wrote:
>> >>
>> >> > Hi,
>> >> >
>> >> > I've just tried your fix after compiling the OpenJPA trunk. I'm
>> >> > getting a
>> >> > ClassCastException as the openjpa.ConnectionDriverName is set  
>> as a
>> >> > StringValue. Should I use another property instead?
>> >> >
>> >> > My code:
>> >> >
>> >> >        propMap.put("openjpa.jdbc.DBDictionary", "
>> >> > org.apache.openjpa.jdbc.sql.DerbyDictionary");
>> >> >        propMap.put("openjpa.ManagedRuntime", new TxMgrProvider 
>> ());
>> >> >        propMap.put("openjpa.ConnectionDriverName", _datasource);
>> >> >        propMap.put("openjpa.Log", "DefaultLevel=TRACE");
>> >> >        EntityManagerFactory emf =
>> >> > Persistence.createEntityManagerFactory("ode-dao",
>> >> > propMap);
>> >> >        EntityManager em = emf.createEntityManager();
>> >> >
>> >> > The exception:
>> >> >
>> >> > <0|true|0.9.7-incubating-SNAPSHOT>
>> >> > org.apache.openjpa.persistence.PersistenceException: There  
>> was an
>> >> > error when
>> >> > invoking the static newInstance method on the named factory  
>> class "
>> >> > org.apache.openjpa.jdbc.kernel.JDBCBrokerFactory".  See the  
>> nested
>> >> > exception
>> >> > for details.
>> >> >        at org.apache.openjpa.kernel.Bootstrap.newBrokerFactory(
>> >> > Bootstrap.java:62)
>> >> >        at
>> >> >
>> >>  
>> org.apache.openjpa.persistence.PersistenceProviderImpl.createEntityMa
>> >> n
>> >> > agerFactory
>> >> > (PersistenceProviderImpl.java:70)
>> >> >        at
>> >> >
>> >>  
>> org.apache.openjpa.persistence.PersistenceProviderImpl.createEntityMa
>> >> n
>> >> > agerFactory
>> >> > (PersistenceProviderImpl.java:78)
>> >> >        at  
>> javax.persistence.Persistence.createEntityManagerFactory(
>> >> > Persistence.java:83)
>> >> >        at org.apache.ode.axis2.ODEServerJPA.initJPA
>> >> > (ODEServerJPA.java:345)
>> >> >        at org.apache.ode.axis2.ODEServerJPA.init
>> >> (ODEServerJPA.java:96)
>> >> >        at org.apache.ode.axis2.hooks.ODEAxisServlet.init(
>> >> > ODEAxisServlet.java:50)
>> >> >        at org.apache.catalina.core.StandardWrapper.loadServlet(
>> >> > StandardWrapper.java:1105)
>> >> >        at org.apache.catalina.core.StandardWrapper.load(
>> >> > StandardWrapper.java:932)
>> >> >        at  
>> org.apache.catalina.core.StandardContext.loadOnStartup(
>> >> > StandardContext.java:3917)
>> >> >        at org.apache.catalina.core.StandardContext.start(
>> >> > StandardContext.java:4201)
>> >> >        at  
>> org.apache.catalina.core.ContainerBase.addChildInternal(
>> >> > ContainerBase.java:759)
>> >> >        at org.apache.catalina.core.ContainerBase.addChild(
>> >> > ContainerBase.java:739)
>> >> >        at org.apache.catalina.core.StandardHost.addChild
>> >> > (StandardHost.java
>> >> > :524)
>> >> >        at org.apache.catalina.startup.HostConfig.deployWAR
>> >> > (HostConfig.java
>> >> > :809)
>> >> >        at org.apache.catalina.startup.HostConfig.deployWARs
>> >> > (HostConfig.java
>> >> > :698)
>> >> >        at org.apache.catalina.startup.HostConfig.deployApps
>> >> > (HostConfig.java
>> >> > :472)
>> >> >        at org.apache.catalina.startup.HostConfig.start
>> >> (HostConfig.java
>> >> > :1122)
>> >> >        at org.apache.catalina.startup.HostConfig.lifecycleEvent(
>> >> > HostConfig.java:310)
>> >> >        at
>> >> > org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(
>> >> > LifecycleSupport.java:119)
>> >> >        at org.apache.catalina.core.ContainerBase.start
>> >> > (ContainerBase.java
>> >> > :1021)
>> >> >        at org.apache.catalina.core.StandardHost.start
>> >> > (StandardHost.java
>> >> > :718)
>> >> >        at org.apache.catalina.core.ContainerBase.start
>> >> > (ContainerBase.java
>> >> > :1013)
>> >> >        at org.apache.catalina.core.StandardEngine.start
>> >> > (StandardEngine.java
>> >> > :442)
>> >> >        at org.apache.catalina.core.StandardService.start(
>> >> > StandardService.java:450)
>> >> >        at org.apache.catalina.core.StandardServer.start
>> >> > (StandardServer.java
>> >> > :709)
>> >> >        at org.apache.catalina.startup.Catalina.start 
>> (Catalina.java:
>> >> > 551)
>> >> >        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native
>> >> Method)
>> >> >        at sun.reflect.NativeMethodAccessorImpl.invoke(
>> >> > NativeMethodAccessorImpl.java:39)
>> >> >        at sun.reflect.DelegatingMethodAccessorImpl.invoke(
>> >> > DelegatingMethodAccessorImpl.java:25)
>> >> >        at java.lang.reflect.Method.invoke(Method.java:585)
>> >> >        at org.apache.catalina.startup.Bootstrap.start
>> >> > (Bootstrap.java:294)
>> >> >        at org.apache.catalina.startup.Bootstrap.main
>> >> (Bootstrap.java:
>> >> > 432)
>> >> > Caused by: org.apache.openjpa.lib.util.ParseException:
>> >> > ConnectionDriverName:
>> >> > org.opentools.minerva.connector.jdbc.JDBCDataSource@dfbb43
>> >> >        at org.apache.openjpa.lib.conf.Value.setObject 
>> (Value.java:
>> >> 298)
>> >> >        at
>> >> > org.apache.openjpa.lib.conf.ConfigurationImpl.fromProperties(
>> >> > ConfigurationImpl.java:627)
>> >> >        at
>> >> > org.apache.openjpa.lib.conf.MapConfigurationProvider.setInto(
>> >> > MapConfigurationProvider.java:82)
>> >> >        at
>> >> > org.apache.openjpa.persistence.PersistenceProductDerivation
>> >> > $ConfigurationProviderImpl.setInto
>> >> > (PersistenceProductDerivation.java:406)
>> >> >        at
>> >> > org.apache.openjpa.jdbc.kernel.JDBCBrokerFactory.newInstance(
>> >> > JDBCBrokerFactory.java:56)
>> >> >        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native
>> >> Method)
>> >> >        at sun.reflect.NativeMethodAccessorImpl.invoke(
>> >> > NativeMethodAccessorImpl.java:39)
>> >> >        at sun.reflect.DelegatingMethodAccessorImpl.invoke(
>> >> > DelegatingMethodAccessorImpl.java:25)
>> >> >        at java.lang.reflect.Method.invoke(Method.java:585)
>> >> >        at org.apache.openjpa.kernel.Bootstrap.invokeFactory
>> >> > (Bootstrap.java
>> >> > :117)
>> >> >        at org.apache.openjpa.kernel.Bootstrap.newBrokerFactory(
>> >> > Bootstrap.java:57)
>> >> >        ... 32 more
>> >> > Caused by: java.lang.ClassCastException:
>> >> > org.opentools.minerva.connector.jdbc.JDBCDataSource
>> >> >        at
>> >> org.apache.openjpa.lib.conf.StringValue.setInternalObject(
>> >> > StringValue.java:63)
>> >> >        at org.apache.openjpa.lib.conf.Value.setObject 
>> (Value.java:
>> >> 294)
>> >> >        ... 42 more
>> >> >
>> >> > Thanks!
>> >> >
>> >> > Matthieu
>> >> >
>> >> > On 1/3/07, Abe White <awhite@bea.com> wrote:
>> >> >>
>> >> >> SVN revision 492368 no long ignores non-String values for
>> >> openjpa.*
>> >> >> keys in the Map passed to  
>> Persistence.createEntityManagerFactory.
>> >> >>
>> >>  
>> _____________________________________________________________________
>> >> >> __
>> >> >> Notice:  This email message, together with any attachments, may
>> >> >> contain
>> >> >> information  of  BEA Systems,  Inc.,  its subsidiaries  and
>> >> >> affiliated
>> >> >> entities,  that may be confidential,  proprietary,  copyrighted
>> >> >> and/or
>> >> >> legally privileged, and is intended solely for the use of the
>> >> >> individual
>> >> >> or entity named in this message. If you are not the intended
>> >> >> recipient,
>> >> >> and have received this message in error, please immediately  
>> return
>> >> >> this
>> >> >> by email and then delete it.
>> >> >>
>> >>
>> >>
>>
>>


Mime
View raw message