Re: OpenEJB issue with Oracle Driver
When I originally tried that, I tried it on one of the DataSource resources on one, but not on both. I reckon that's why I abandoned it. I tossed that effort and started from scratch again. I figure that's what led me down the path of using openejb.xml. At least I learned how to use the openejb.xml file, too! It's connecting fine now when I run my Ant script. Thanks for following up! -- View this message in context: http://www.nabble.com/OpenEJB-issue-with-Oracle-Driver-tp20592289p21129190.html Sent from the OpenEJB User mailing list archive at Nabble.com.
Re: OpenEJB issue with Oracle Driver
On Dec 19, 2008, at 5:29 PM, ericp56 wrote: Well, I went back and made sure the demo was working, which it was. I created a simple EJB project and ran unit tests on that to make sure I had it all OK. There were problems with the Junit classloader (I don't know why I didn't run into this in my previous testing...) but got it all resolved. Now I'm back to the same spot. I removed some of the lines last time. Here they are in full: p.put(Context.INITIAL_CONTEXT_FACTORY, "org.apache.openejb.client.LocalInitialContextFactory"); p.put("OracleXA", "new://Resource?type=DataSource"); p.put("OracleXA.JdbcDriver", "oracle.jdbc.OracleDriver"); p.put("OracleXA.JdbcUrl", "jdbc:oracle:thin:uid/pwd@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP) (Host=server)(Port=1521))(CONNECT_DATA=(SID=DBID)))"); p.put("Oracle", "new://Resource?type=DataSource"); p.put("Oracle.JdbcDriver", "oracle.jdbc.OracleDriver"); p.put("Oracle.JdbcUrl","jdbc:oracle:thin:uid/p...@server: 1521:DBID"); p.put("Oracle.JtaManaged", "false"); context = new InitialContext(p); And I'm still getting the invalid username/password message. If I change the DBID to something bogus, I get an appropriate message, so I know it recognizes the Oracle.JdbcUrl line. Now the openejb.xml file doesn't help. I'm getting the same invalid login message using that. Hi Eric, Try adding the username and password as so: p.put(Context.INITIAL_CONTEXT_FACTORY, "org.apache.openejb.client.LocalInitialContextFactory"); p.put("OracleXA", "new://Resource?type=DataSource"); p.put("OracleXA.JdbcDriver", "oracle.jdbc.OracleDriver"); p.put("OracleXA.JdbcUrl", "jdbc:oracle:thin:uid/pwd@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP) (Host=server)(Port=1521))(CONNECT_DATA=(SID=DBID)))"); p.put("OracleXA.Username", "scott"); p.put("OracleXA.Password", "tiger"); p.put("Oracle", "new://Resource?type=DataSource"); p.put("Oracle.JdbcDriver", "oracle.jdbc.OracleDriver"); p.put("Oracle.JdbcUrl","jdbc:oracle:thin:uid/p...@server: 1521:DBID"); p.put("Oracle.JtaManaged", "false"); p.put("Oracle.Username", "scott"); p.put("Oracle.Password", "tiger"); context = new InitialContext(p); If that turns out to solve your issue, ideas on how to make that more clear are welcome. Maybe we should just include them in the examples even though it makes the config look larger. Thoughts? -David
Re: OpenEJB issue with Oracle Driver
Well, I went back and made sure the demo was working, which it was. I created a simple EJB project and ran unit tests on that to make sure I had it all OK. There were problems with the Junit classloader (I don't know why I didn't run into this in my previous testing...) but got it all resolved. Now I'm back to the same spot. I removed some of the lines last time. Here they are in full: p.put(Context.INITIAL_CONTEXT_FACTORY, "org.apache.openejb.client.LocalInitialContextFactory"); p.put("OracleXA", "new://Resource?type=DataSource"); p.put("OracleXA.JdbcDriver", "oracle.jdbc.OracleDriver"); p.put("OracleXA.JdbcUrl", "jdbc:oracle:thin:uid/pwd@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(Host=server)(Port=1521))(CONNECT_DATA=(SID=DBID)))"); p.put("Oracle", "new://Resource?type=DataSource"); p.put("Oracle.JdbcDriver", "oracle.jdbc.OracleDriver"); p.put("Oracle.JdbcUrl","jdbc:oracle:thin:uid/p...@server:1521:DBID"); p.put("Oracle.JtaManaged", "false"); context = new InitialContext(p); And I'm still getting the invalid username/password message. If I change the DBID to something bogus, I get an appropriate message, so I know it recognizes the Oracle.JdbcUrl line. Now the openejb.xml file doesn't help. I'm getting the same invalid login message using that. Oh, the frustration. -- View this message in context: http://www.nabble.com/OpenEJB-issue-with-Oracle-Driver-tp20592289p21100910.html Sent from the OpenEJB User mailing list archive at Nabble.com.
Re: OpenEJB issue with Oracle Driver
I'll try that: first using maven, then using Eclipse, then modifying the jpa features... Thanks, Eric -- View this message in context: http://www.nabble.com/OpenEJB-issue-with-Oracle-Driver-tp20592289p20666847.html Sent from the OpenEJB User mailing list archive at Nabble.com.
Re: OpenEJB issue with Oracle Driver
I think the key may be that your code is missing: p.put("movieDatabase", "new://Resource?type=DataSource"); Regardless, did you get the example working before modifying? This example seems to be almost exactly what you are doing. I'd start with the example and then change the driver and url Oracle. Then I'd try renaming the pool to SccheduleDB... basically, one small change at a time. -dain On Nov 24, 2008, at 10:50 AM, ericp56 wrote: Even though I had tried p.put to set my username and password, it wasn't set properly during unit testing. When I placed the username and password in openejb.xml - even with the wrong resource id - it discovered the information and used it for my persistence unit that had SchedulerDB as the data source. Even if I fix openejb.xml to refer to SchedulerDB and SchedulerDB2 (the non XA data source) I end up with : javax.ejb.EJBException: The bean encountered a non-application exception; nested exception is: org.apache.openjpa.persistence.ArgumentException: Errors encountered while resolving metadata. See nested exceptions for details. at org .apache .openejb .core .ivm.BaseEjbProxyHandler.convertException(BaseEjbProxyHandler.java: 363) at org .apache .openejb .core.ivm.BaseEjbProxyHandler.invoke(BaseEjbProxyHandler.java:291) at $Proxy40.Echo(Unknown Source) at com.twcable.ivr.test.ScrapEjbTest.test1(ScrapEjbTest.java:63) . . . Caused by: org.apache.openjpa.persistence.ArgumentException: Errors encountered while resolving metadata. See nested exceptions for details. at org .apache .openjpa.meta.MetaDataRepository.resolve(MetaDataRepository.java:563) at org .apache .openjpa.meta.MetaDataRepository.getMetaData(MetaDataRepository.java: 308) at org .apache .openjpa .jdbc.meta.MappingRepository.getMapping(MappingRepository.java:285) at org.apache.openjpa.jdbc.meta.MappingTool.getMapping(MappingTool.java: 676) at org.apache.openjpa.jdbc.meta.MappingTool.validate(MappingTool.java: 734) . . . Caused by: java.lang.Exception: user error> org.apache.openjpa.persistence.ArgumentException: Table "OUTBOUNDCONFIGURATION" given for "com.twcable.ivr.test.Outboundconfiguration" does not exist. at org .apache .openjpa.util.Exceptions.replaceNestedThrowables(Exceptions.java:249) at org .apache .openjpa .persistence.ArgumentException.writeObject(ArgumentException.java:107) 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 java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java: 917) at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java: 1339) at java .io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java: 1290) at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java: 1079) at java .io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java: 1375) at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java: 1347) at java .io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java: 1290) at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java: 1079) at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java: 302) at org .apache .openejb .core.ivm.BaseEjbProxyHandler.copyObj(BaseEjbProxyHandler.java:506) at org .apache .openejb.core.ivm.BaseEjbProxyHandler.copy(BaseEjbProxyHandler.java: 306) at org .apache .openejb .core.ivm.BaseEjbProxyHandler.invoke(BaseEjbProxyHandler.java:290) ... 22 more -- View this message in context: http://www.nabble.com/OpenEJB-issue-with-Oracle-Driver-tp20592289p20664759.html Sent from the OpenEJB User mailing list archive at Nabble.com.
Re: OpenEJB issue with Oracle Driver
Even though I had tried p.put to set my username and password, it wasn't set properly during unit testing. When I placed the username and password in openejb.xml - even with the wrong resource id - it discovered the information and used it for my persistence unit that had SchedulerDB as the data source. Even if I fix openejb.xml to refer to SchedulerDB and SchedulerDB2 (the non XA data source) I end up with : javax.ejb.EJBException: The bean encountered a non-application exception; nested exception is: org.apache.openjpa.persistence.ArgumentException: Errors encountered while resolving metadata. See nested exceptions for details. at org.apache.openejb.core.ivm.BaseEjbProxyHandler.convertException(BaseEjbProxyHandler.java:363) at org.apache.openejb.core.ivm.BaseEjbProxyHandler.invoke(BaseEjbProxyHandler.java:291) at $Proxy40.Echo(Unknown Source) at com.twcable.ivr.test.ScrapEjbTest.test1(ScrapEjbTest.java:63) . . . Caused by: org.apache.openjpa.persistence.ArgumentException: Errors encountered while resolving metadata. See nested exceptions for details. at org.apache.openjpa.meta.MetaDataRepository.resolve(MetaDataRepository.java:563) at org.apache.openjpa.meta.MetaDataRepository.getMetaData(MetaDataRepository.java:308) at org.apache.openjpa.jdbc.meta.MappingRepository.getMapping(MappingRepository.java:285) at org.apache.openjpa.jdbc.meta.MappingTool.getMapping(MappingTool.java:676) at org.apache.openjpa.jdbc.meta.MappingTool.validate(MappingTool.java:734) . . . Caused by: java.lang.Exception: org.apache.openjpa.persistence.ArgumentException: Table "OUTBOUNDCONFIGURATION" given for "com.twcable.ivr.test.Outboundconfiguration" does not exist. at org.apache.openjpa.util.Exceptions.replaceNestedThrowables(Exceptions.java:249) at org.apache.openjpa.persistence.ArgumentException.writeObject(ArgumentException.java:107) 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 java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:917) at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1339) at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1290) at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1079) at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1375) at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1347) at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1290) at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1079) at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:302) at org.apache.openejb.core.ivm.BaseEjbProxyHandler.copyObj(BaseEjbProxyHandler.java:506) at org.apache.openejb.core.ivm.BaseEjbProxyHandler.copy(BaseEjbProxyHandler.java:306) at org.apache.openejb.core.ivm.BaseEjbProxyHandler.invoke(BaseEjbProxyHandler.java:290) ... 22 more -- View this message in context: http://www.nabble.com/OpenEJB-issue-with-Oracle-Driver-tp20592289p20664759.html Sent from the OpenEJB User mailing list archive at Nabble.com.
Re: OpenEJB issue with Oracle Driver
nValue.java: 103) at org .apache .openjpa .conf .MetaDataRepositoryValue.instantiate(MetaDataRepositoryValue.java:68) at org.apache.openjpa.lib.conf.ObjectValue.instantiate(ObjectValue.java: 83) at org .apache .openjpa .conf .OpenJPAConfigurationImpl .newMetaDataRepositoryInstance(OpenJPAConfigurationImpl.java:843) at org .apache .openjpa .conf .OpenJPAConfigurationImpl .getMetaDataRepositoryInstance(OpenJPAConfigurationImpl.java:834) at org .apache .openjpa .kernel .AbstractBrokerFactory.makeReadOnly(AbstractBrokerFactory.java:638) at org .apache .openjpa .kernel.AbstractBrokerFactory.newBroker(AbstractBrokerFactory.java: 183) at org .apache .openjpa .kernel .DelegatingBrokerFactory.newBroker(DelegatingBrokerFactory.java:142) at org .apache .openjpa .persistence .EntityManagerFactoryImpl .createEntityManager(EntityManagerFactoryImpl.java:192) at org .apache .openjpa .persistence .EntityManagerFactoryImpl .createEntityManager(EntityManagerFactoryImpl.java:56) at org .apache .openejb .persistence .JtaEntityManagerRegistry .getEntityManager(JtaEntityManagerRegistry.java:105) at org .apache .openejb .persistence.JtaEntityManager.getEntityManager(JtaEntityManager.java: 61) at org .apache .openejb.persistence.JtaEntityManager.persist(JtaEntityManager.java: 97) at com.twcable.ivr.test.ScrapClass.Echo(ScrapClass.java:19) 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.openejb.core.interceptor.ReflectionInvocationContext $Invocation.invoke(ReflectionInvocationContext.java:158) at org .apache .openejb .core .interceptor .ReflectionInvocationContext .proceed(ReflectionInvocationContext.java:141) at org .apache .openejb .core.interceptor.InterceptorStack.invoke(InterceptorStack.java:67) at org .apache .openejb .core.stateless.StatelessContainer._invoke(StatelessContainer.java: 211) at org .apache .openejb .core.stateless.StatelessContainer.invoke(StatelessContainer.java:169) at org .apache .openejb .core .ivm.EjbObjectProxyHandler.businessMethod(EjbObjectProxyHandler.java: 217) at org .apache .openejb .core.ivm.EjbObjectProxyHandler._invoke(EjbObjectProxyHandler.java:77) at org .apache .openejb .core.ivm.BaseEjbProxyHandler.invoke(BaseEjbProxyHandler.java:286) ... 22 more Caused by: java.lang.Exception: org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (ORA-01017: invalid username/password; logon denied ) at org .apache .openjpa.util.Exceptions.replaceNestedThrowables(Exceptions.java:249) at org .apache .openjpa .persistence .PersistenceException.writeObject(PersistenceException.java:100) 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 java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java: 917) at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java: 1339) at java .io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java: 1290) at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java: 1079) at java .io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java: 1375) at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java: 1347) at java .io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java: 1290) at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java: 1079) at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java: 302) at org .apache .openejb .core.ivm.BaseEjbProxyHandler.copyObj(BaseEjbProxyHandler.java:506) at org .apache .openejb.core.ivm.BaseEjbProxyHandler.copy(BaseEjbProxyHandler.java: 306) at org .apache .openejb .core.ivm.BaseEjbProxyHandler.invoke(BaseEjbProxyHandler.java:290) ... 22 more -- View this message in context: http://www.nabble.com/OpenEJB-issue-with-Oracle-Driver-tp20592289p20592289.html Sent from the OpenEJB User mailing list archive at Nabble.com.
OpenEJB issue with Oracle Driver
eEntityManager(EntityManagerFactoryImpl.java:192) at org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:56) at org.apache.openejb.persistence.JtaEntityManagerRegistry.getEntityManager(JtaEntityManagerRegistry.java:105) at org.apache.openejb.persistence.JtaEntityManager.getEntityManager(JtaEntityManager.java:61) at org.apache.openejb.persistence.JtaEntityManager.persist(JtaEntityManager.java:97) at com.twcable.ivr.test.ScrapClass.Echo(ScrapClass.java:19) 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.openejb.core.interceptor.ReflectionInvocationContext$Invocation.invoke(ReflectionInvocationContext.java:158) at org.apache.openejb.core.interceptor.ReflectionInvocationContext.proceed(ReflectionInvocationContext.java:141) at org.apache.openejb.core.interceptor.InterceptorStack.invoke(InterceptorStack.java:67) at org.apache.openejb.core.stateless.StatelessContainer._invoke(StatelessContainer.java:211) at org.apache.openejb.core.stateless.StatelessContainer.invoke(StatelessContainer.java:169) at org.apache.openejb.core.ivm.EjbObjectProxyHandler.businessMethod(EjbObjectProxyHandler.java:217) at org.apache.openejb.core.ivm.EjbObjectProxyHandler._invoke(EjbObjectProxyHandler.java:77) at org.apache.openejb.core.ivm.BaseEjbProxyHandler.invoke(BaseEjbProxyHandler.java:286) ... 22 more Caused by: java.lang.Exception: org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (ORA-01017: invalid username/password; logon denied ) at org.apache.openjpa.util.Exceptions.replaceNestedThrowables(Exceptions.java:249) at org.apache.openjpa.persistence.PersistenceException.writeObject(PersistenceException.java:100) 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 java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:917) at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1339) at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1290) at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1079) at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1375) at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1347) at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1290) at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1079) at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:302) at org.apache.openejb.core.ivm.BaseEjbProxyHandler.copyObj(BaseEjbProxyHandler.java:506) at org.apache.openejb.core.ivm.BaseEjbProxyHandler.copy(BaseEjbProxyHandler.java:306) at org.apache.openejb.core.ivm.BaseEjbProxyHandler.invoke(BaseEjbProxyHandler.java:290) ... 22 more -- View this message in context: http://www.nabble.com/OpenEJB-issue-with-Oracle-Driver-tp20592289p20592289.html Sent from the OpenEJB User mailing list archive at Nabble.com.