Nudge nudge.. :) Regards, Aaron Whiteside
-----Original Message----- From: Richard S. Hall [mailto:[email protected]] Sent: Thursday, January 26, 2012 6:05 PM To: [email protected] Subject: Re: NPE in BundleWiringImpl Good details. Thanks. I'll try to look into it, but don't know exactly when I can get to it...feel free to bug me nicely when you get impatient. :-) -> richard On 1/26/12 17:52, Aaron Whiteside wrote: > Step 1, Download glassfish: > > http://dlc.sun.com.edgesuite.net/glassfish/3.1.2/promoted/glassfish-3.1.2-b19-unix.sh > or if you’re not on any sort of unix, choose your own platform.. > http://dlc.sun.com.edgesuite.net/glassfish/3.1.2/promoted/ > > > Step 2, Install Glassfish: > Nothing fancy here, just run the script/installer with default options etc. > (my $JAVA_HOME is set to jdk 1.7.0_01, the installer will use/inherit that in > the config for glassfish) > > The installer will ask you to create a domain, just choose the defaults. > > > Step 3, Download Gemini JPA: > http://www.eclipse.org/downloads/download.php?file=/gemini/jpa/r1.0/gemini-jpa-1.0.0.RELEASE.zip > > Copy the file org.eclipse.gemini.jpa_1.0.0.RELEASE.jar from the download zip > into<GF_HOME>/glassfish/domains/domain1/autodeploy/bundles > > Domain1 is the default name of the domain the installer will create, if you > don't choose to change it when asked. > > > Step 4, Start the domain: > > The default option for the installer is to auto start the domain after it's > been created, so it should be already running. > > But in case you need to stop and start it for whatever reason the following > commands will serve you well: > > #<GF_HOME>/bin/asadmin stop-domain > #<GF_HOME>/bin/asadmin start-domain > > > Step 5, Configure DataSource: > > In my setup I use MySQL, and I am assuming you know how to set that up... if > not let me know. (I had other issues with the built-in/embedded Derby > driver/db) I also created a blank database called osgi_example (referenced > later in the db pool config). > > Download the MySQL JDBC driver from: > http://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.18.zip/from/http://mysql.mirrors.hoobly.com/ > > And place the mysql-connector-java-5.1.18-bin.jar file > under<GF_HOME>/glassfish/domains/domain1/lib. > > Oh and restart (stop, start) the domain now! > > Go to http://localhost:4848/ and login using the username and password > specified during installation. The username by default is admin. > > 1. From the left hand side, Resources -> JDBC -> JDBC Connection Pools > 2. Click New > 2.5. Name: OSGiExample > 3. Resource Type javax.sql.ConnectionPoolDataSource > 4. Select MySQL from list of databases > 5. Click Next > 6. Delete all the silly properties it gives you and enter these: > User:<mysql username here> > Password: secret > ServerName: localhost > DatabaseName: osgi_example > 7. Click save > 8. Click Ping to test... > > 9. the left hand side, Resources -> JDBC -> JDBC Resources > 10. Click new > 11. JNDI name: jdbc/osgi-example > 12. Select our OSGiExample pool. > 13. Click save. > > 14.. I think that’s it. > > > Step 6, Deploy my entity bundle: > > Copy my entity bundle (will email that directly to you) > to<GF_HOME>/glassfish/domains/domain1/autodeploy/bundles > > > Step 7, Observe error under: > > <GF_HOME>/glassfish/domains/domain1/logs/server.log > > You'll have to put up with the horrible glassfish logging format... my > apologies... > > > Step 8, Profit! > > Regards, > Aaron Whiteside > > > -----Original Message----- > From: Richard S. Hall [mailto:[email protected]] > Sent: Thursday, January 26, 2012 5:21 PM > To: [email protected] > Subject: Re: NPE in BundleWiringImpl > > No attachments to the list, so you can just send to me personally... > > However, you'll need to give me more detailed steps to reproduce than > what you have below, because I don't use any of that stuff, so I have no > idea what you are talking about...steps to reproduce should include the > artifacts necessary (or URLs to get them) as well as the set of steps to > reproduce the error...it might come as a surprise, but I rarely create > or use any bundles, my life as been stuck in the framework for the past > 11 years. ;-) > > -> richard > > On 1/26/12 14:34, Aaron Whiteside wrote: >> Just checked the version in the Glassfish's bundled felix.jar and it is >> 4.0.2. >> >> It is reproducible.. I have Gemini JPA deployed and are deploying my own JPA >> bundle. >> >> Attached is my persistence.xml. You would have to create the datasource in >> glassfish. And you can use empty entities or I suspect different entity >> classes. >> >> <?xml version="1.0" encoding="UTF-8"?> >> <persistence version="2.0" >> 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_2_0.xsd"> >> >> <persistence-unit name="osgi-example" transaction-type="JTA"> >> <jta-data-source>jdbc/osgi-example</jta-data-source> >> >> <class>com.mm.osgiexample.entity.User</class> >> <class>com.mm.osgiexample.entity.Group</class> >> >> <exclude-unlisted-classes>true</exclude-unlisted-classes> >> >> <properties> >> <property name="eclipselink.target-database" value="MySQL"/> >> >> <!--<property name="eclipselink.logging.level" >> value="FINEST"/>--> >> <property name="eclipselink.logging.exceptions" value="true"/> >> >> <!-- turn off DDL generation after the model is stable --> >> <property name="eclipselink.ddl-generation" >> value="drop-and-create-tables"/> >> <property name="eclipselink.ddl-generation.output-mode" >> value="both"/> >> <property name="eclipselink.ddl.default-table-suffix" >> value="engine=InnoDB"/> >> <property name="eclipselink.weaving" value="false"/> >> </properties> >> >> </persistence-unit> >> >> </persistence> >> >> >> Can I send attachments to the mailing list? If so I'll just send the sample >> bundle. >> >> Regards, >> Aaron Whiteside >> Director of Technical Architecture >> MOBILEMESSENGER >> >> >> -----Original Message----- >> From: Richard S. Hall [mailto:[email protected]] >> Sent: Thursday, January 26, 2012 12:54 PM >> To: [email protected] >> Subject: Re: NPE in BundleWiringImpl >> >> First things first, if you are running 4.0.1, you should try with 4.0.2 >> since that addressed some NPE situations in the resolver due to >> refactoring that occurred in 4.0.0. To use it with GF you should just be >> able to copy the 4.0.2 felix.jar file over the existing felix.jar file. >> >> If that doesn't resolve the issue and if it is easily repeatable, then >> please describe the precise set of steps to reproduce and I can try to >> look into it. >> >> -> richard >> >> On 1/26/12 12:02, Aaron Whiteside wrote: >>> Thought I might let the felix guys know about this... >>> >>> http://www.eclipse.org/forums/index.php/m/783881/#msg_783881 >>> >>> >>> Running in Glassfish 3.1.2-b19 (Felix 4.0.1 I think..) >>> >>> Stacktrace below.. >>> >>> [#|2012-01-26T11:37:55.594-0500|INFO|glassfish3.1.2|javax.enterprise.system.std.com.sun.enterprise.server.logging|_ThreadID=81;_ThreadName=Thread-2;|[EL >>> Severe]: 2012-01-26 11:37:55.594--ServerSession(1197114060)--Local >>> Exception Stack: >>> Exception [EclipseLink-7060] (Eclipse Persistence Services - >>> 2.3.2.v20111125-r10461): >>> org.eclipse.persistence.exceptions.ValidationException >>> Exception Description: Cannot acquire data source [jdbc/osgi-example]. >>> Internal Exception: javax.naming.NamingException: Lookup failed for >>> 'jdbc/osgi-example' in >>> SerialContext[myEnv={java.naming.factory.state=com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl, >>> java.naming.factory.url.pkgs=com.sun.enterprise.naming} [Root exception is >>> javax.naming.NamingException: Unable to lookup resource : jdbc/osgi-example >>> [Root exception is javax.naming.CommunicationException: Communication >>> exception for >>> SerialContext[myEnv={java.naming.factory.state=com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl, >>> java.naming.factory.url.pkgs=com.sun.enterprise.naming} [Root exception is >>> java.lang.NullPointerException]]] >>> at >>> org.eclipse.persistence.exceptions.ValidationException.cannotAcquireDataSource(ValidationException.java:497) >>> at >>> org.eclipse.persistence.sessions.JNDIConnector.connect(JNDIConnector.java:109) >>> at >>> org.eclipse.persistence.sessions.DatasourceLogin.connectToDatasource(DatasourceLogin.java:162) >>> at >>> org.eclipse.persistence.internal.databaseaccess.DatasourceAccessor.connectInternal(DatasourceAccessor.java:330) >>> at >>> org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.connectInternal(DatabaseAccessor.java:293) >>> at >>> org.eclipse.persistence.internal.databaseaccess.DatasourceAccessor.connect(DatasourceAccessor.java:418) >>> at >>> org.eclipse.persistence.sessions.server.ConnectionPool.buildConnection(ConnectionPool.java:216) >>> at >>> org.eclipse.persistence.sessions.server.ExternalConnectionPool.startUp(ExternalConnectionPool.java:146) >>> at >>> org.eclipse.persistence.sessions.server.ServerSession.connect(ServerSession.java:484) >>> at >>> org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.login(DatabaseSessionImpl.java:633) >>> at >>> org.eclipse.persistence.internal.jpa.EntityManagerFactoryProvider.login(EntityManagerFactoryProvider.java:208) >>> at >>> org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.deploy(EntityManagerSetupImpl.java:488) >>> at >>> org.eclipse.persistence.internal.jpa.EntityManagerFactoryDelegate.getDatabaseSession(EntityManagerFactoryDelegate.java:188) >>> at >>> org.eclipse.persistence.internal.jpa.EntityManagerFactoryDelegate.createEntityManagerImpl(EntityManagerFactoryDelegate.java:277) >>> at >>> org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManagerImpl(EntityManagerFactoryImpl.java:294) >>> at >>> org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:272) >>> at >>> com.mm.osgiexample.OSGiEntityManagerFactoryFactory.create(OSGiEntityManagerFactoryFactory.java:32) >>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >>> at >>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) >>> at >>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) >>> at java.lang.reflect.Method.invoke(Method.java:601) >>> at >>> org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:145) >>> at >>> org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:570) >>> at >>> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:982) >>> at >>> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:878) >>> at >>> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:484) >>> at >>> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:455) >>> at >>> org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:293) >>> at >>> org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) >>> at >>> org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:290) >>> at >>> org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:192) >>> at >>> org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:585) >>> at >>> org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:895) >>> at >>> org.eclipse.gemini.blueprint.context.support.AbstractDelegatedExecutionApplicationContext.access$1600(AbstractDelegatedExecutionApplicationContext.java:60) >>> at >>> org.eclipse.gemini.blueprint.context.support.AbstractDelegatedExecutionApplicationContext$4.run(AbstractDelegatedExecutionApplicationContext.java:325) >>> at >>> org.eclipse.gemini.blueprint.util.internal.PrivilegedUtils.executeWithCustomTCCL(PrivilegedUtils.java:85) >>> at >>> org.eclipse.gemini.blueprint.context.support.AbstractDelegatedExecutionApplicationContext.completeRefresh(AbstractDelegatedExecutionApplicationContext.java:290) >>> at >>> org.eclipse.gemini.blueprint.extender.internal.dependencies.startup.DependencyWaiterApplicationContextExecutor$CompleteRefreshTask.run(DependencyWaiterApplicationContextExecutor.java:137) >>> at java.lang.Thread.run(Thread.java:722) >>> Caused by: javax.naming.NamingException: Lookup failed for >>> 'jdbc/osgi-example' in >>> SerialContext[myEnv={java.naming.factory.state=com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl, >>> java.naming.factory.url.pkgs=com.sun.enterprise.naming} [Root exception is >>> javax.naming.NamingException: Unable to lookup resource : jdbc/osgi-example >>> [Root exception is javax.naming.CommunicationException: Communication >>> exception for >>> SerialContext[myEnv={java.naming.factory.state=com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl, >>> java.naming.factory.url.pkgs=com.sun.enterprise.naming} [Root exception is >>> java.lang.NullPointerException]]] >>> at >>> com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:518) >>> at >>> com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:455) >>> at >>> com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:654) >>> at javax.naming.InitialContext.lookup(InitialContext.java:415) >>> at javax.naming.InitialContext.lookup(InitialContext.java:415) >>> at >>> org.eclipse.persistence.sessions.JNDIConnector.connect(JNDIConnector.java:103) >>> ... 37 more >>> Caused by: javax.naming.NamingException: Unable to lookup resource : >>> jdbc/osgi-example [Root exception is javax.naming.CommunicationException: >>> Communication exception for >>> SerialContext[myEnv={java.naming.factory.state=com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl, >>> java.naming.factory.url.pkgs=com.sun.enterprise.naming} [Root exception is >>> java.lang.NullPointerException]] >>> at >>> org.glassfish.javaee.services.ResourceProxy.throwResourceNotFoundException(ResourceProxy.java:119) >>> at org.glassfish.javaee.services.ResourceProxy.create(ResourceProxy.java:95) >>> at >>> com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:507) >>> ... 42 more >>> Caused by: javax.naming.CommunicationException: Communication exception for >>> SerialContext[myEnv={java.naming.factory.state=com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl, >>> java.naming.factory.url.pkgs=com.sun.enterprise.naming} [Root exception is >>> java.lang.NullPointerException] >>> at >>> com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:542) >>> at >>> com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:455) >>> at javax.naming.InitialContext.lookup(InitialContext.java:411) >>> at javax.naming.InitialContext.lookup(InitialContext.java:411) >>> at >>> com.sun.appserv.connectors.internal.api.ResourceNamingService.lookup(ResourceNamingService.java:221) >>> at org.glassfish.javaee.services.ResourceProxy.create(ResourceProxy.java:93) >>> ... 43 more >>> Caused by: java.lang.NullPointerException >>> at >>> org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1432) >>> at >>> org.apache.felix.framework.BundleWiringImpl.access$400(BundleWiringImpl.java:72) >>> at >>> org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1843) >>> at java.lang.ClassLoader.loadClass(ClassLoader.java:356) >>> at java.lang.Class.forName0(Native Method) >>> at java.lang.Class.forName(Class.java:264) >>> at >>> com.sun.naming.internal.VersionHelper12.loadClass(VersionHelper12.java:63) >>> at >>> javax.naming.spi.NamingManager.getObjectFactoryFromReference(NamingManager.java:146) >>> at javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:319) >>> at >>> com.sun.enterprise.naming.impl.SerialContext.getObjectInstance(SerialContext.java:556) >>> at >>> com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:514) >>> ... 48 more >>> |#] >>> >>> --------------------------------------------------------------------- >>> To unsubscribe, e-mail: [email protected] >>> For additional commands, e-mail: [email protected] >>> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: [email protected] >> For additional commands, e-mail: [email protected] >> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: [email protected] >> For additional commands, e-mail: [email protected] >> > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected] > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected] > --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]

