2 Replies Latest reply on Dec 14, 2006 3:07 PM by jcummings

    Microcontainer jboss-beans.xml configuration with 10g

    jcummings

      I am unable to set up my microcontainer to work with oracle 10g. I believe it was working with 9i. The exception I'm getting is around the connectionURL property. Below is a chunk of my configuration in the jboss-beans.xml file:

      <bean name="myDatasourceBootstrap" class="org.jboss.seam.microcontainer.DataSourceFactory">
       <property name="driverClass">oracle.jdbc.driver.OracleDriver</property>
       <property name="connectionURL">jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=oraexample1-vip1)(PORT=9999))(ADDRESS=(PROTOCOL=TCP)(HOST=oraexample2-vip1)(PORT=9999))(ADDRESS=(PROTOCOL=TCP)(HOST=oraexample3-vip1)(PORT = 9999))(ADDRESS=(PROTOCOL=TCP)(HOST=oraexample4-vip1)(PORT=9999))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=exampledev)(FAILOVER_MODE=(TYPE=SELECT)(METHOD=BASIC))))</property>

      ...ect


      Here is my exception.

      Tests run: 5, Failures: 1, Errors: 0, Skipped: 4, Time elapsed: 3.875 sec <<< FAILURE!
      init Time elapsed: 1,166,113,226.089 sec <<< FAILURE!
      java.lang.RuntimeException: java.lang.IllegalStateException: Incompletely deployed:
      *** DEPLOYMENTS IN ERROR: Name -> Error
      myDatasourceBootstrap -> org.jboss.joinpoint.spi.JoinpointException: Property connectionURL not found for AbstractBeanInfo@a45a24{name=org.jboss.seam.microcontainer.DataSourceFactory classInfo= properties=[password, transactionManager, userName, minSize, maxSize, jndiName, class, connectionUrl, dataSource, blockingTimeout, preparedStatementCacheSize, driverClass, idleTimeout, checkValidConnectionSql] methods=[hashCode, getBlockingTimeout, getDriverClass, getClass, getIdleTimeout, toString, setMaxSize, clone, notifyAll, setMinSize, getJndiName, setPassword, getTransactionManager, getPassword, getPreparedStatementCacheSize, setTransactionManager, setIdleTimeout, setJndiName, getUserName, finalize, getDataSource, setConnectionUrl, setCheckValidConnectionSql, setPreparedStatementCacheSize, getMaxSize, setDriverClass, getMinSize, equals, getCheckValidConnectionSql, getConnectionUrl, wait, wait, wait, setBlockingTimeout, registerNatives, setUserName, notify] constructors=[] events=}
      *** DEPLOYMENTS MISSING DEPENDENCIES: Name -> Dependency{Required State:Actual State}
      myDatasource -> myDatasourceBootstrap{Instantiated:**ERROR**}

      at org.jboss.ejb3.embedded.EJB3StandaloneBootstrap.deployXmlResource(EJB3StandaloneBootstrap.java:95)
      at org.jboss.seam.core.Ejb.deploy(Ejb.java:58)
      at org.jboss.seam.core.Ejb.startup(Ejb.java:40)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
      at java.lang.reflect.Method.invoke(Unknown Source)
      at org.jboss.seam.util.Reflections.invoke(Reflections.java:13)
      at org.jboss.seam.util.Reflections.invokeAndWrap(Reflections.java:32)
      at org.jboss.seam.Component.callComponentMethod(Component.java:1335)
      at org.jboss.seam.Component.callCreateMethod(Component.java:1323)
      at org.jboss.seam.Component.newInstance(Component.java:1313)
      at org.jboss.seam.Component.getInstance(Component.java:1264)
      at org.jboss.seam.Component.getInstance(Component.java:1254)
      at org.jboss.seam.contexts.Lifecycle.startup(Lifecycle.java:125)
      at org.jboss.seam.contexts.Lifecycle.endInitialization(Lifecycle.java:104)
      at org.jboss.seam.init.Initialization.init(Initialization.java:196)
      at org.jboss.seam.mock.SeamTest.init(SeamTest.java:321)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
      at java.lang.reflect.Method.invoke(Unknown Source)
      at org.testng.internal.MethodHelper.invokeMethod(MethodHelper.java:552)
      at org.testng.internal.Invoker.invokeConfigurationMethod(Invoker.java:318)
      at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:152)
      at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:88)
      at org.testng.TestRunner.privateRun(TestRunner.java:682)
      at org.testng.TestRunner.run(TestRunner.java:566)
      at org.testng.SuiteRunner.privateRun(SuiteRunner.java:220)
      at org.testng.SuiteRunner.run(SuiteRunner.java:146)
      at org.testng.TestNG.createAndRunSuiteRunners(TestNG.java:713)
      at org.testng.TestNG.runSuitesLocally(TestNG.java:676)
      at org.apache.maven.surefire.testng.TestNGExecutor.executeTestNG(TestNGExecutor.java:64)
      at org.apache.maven.surefire.testng.TestNGXmlTestSuite.execute(TestNGXmlTestSuite.java:75)
      at org.apache.maven.surefire.Surefire.run(Surefire.java:129)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
      at java.lang.reflect.Method.invoke(Unknown Source)
      at org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(SurefireBooter.java:225)
      at org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:747)
      Caused by: java.lang.IllegalStateException: Incompletely deployed:
      *** DEPLOYMENTS IN ERROR: Name -> Error
      myDatasourceBootstrap -> org.jboss.joinpoint.spi.JoinpointException: Property connectionURL not found for AbstractBeanInfo@a45a24{name=org.jboss.seam.microcontainer.DataSourceFactory classInfo= properties=[password, transactionManager, userName, minSize, maxSize, jndiName, class, connectionUrl, dataSource, blockingTimeout, preparedStatementCacheSize, driverClass, idleTimeout, checkValidConnectionSql] methods=[hashCode, getBlockingTimeout, getDriverClass, getClass, getIdleTimeout, toString, setMaxSize, clone, notifyAll, setMinSize, getJndiName, setPassword, getTransactionManager, getPassword, getPreparedStatementCacheSize, setTransactionManager, setIdleTimeout, setJndiName, getUserName, finalize, getDataSource, setConnectionUrl, setCheckValidConnectionSql, setPreparedStatementCacheSize, getMaxSize, setDriverClass, getMinSize, equals, getCheckValidConnectionSql, getConnectionUrl, wait, wait, wait, setBlockingTimeout, registerNatives, setUserName, notify] constructors=[] events=}
      *** DEPLOYMENTS MISSING DEPENDENCIES: Name -> Dependency{Required State:Actual State}
      myDatasource -> myDatasourceBootstrap{Instantiated:**ERROR**}

      at org.jboss.kernel.plugins.deployment.AbstractKernelDeployer.internalValidate(AbstractKernelDeployer.java:241)
      at org.jboss.kernel.plugins.deployment.AbstractKernelDeployer.validate(AbstractKernelDeployer.java:161)
      at org.jboss.ejb3.embedded.EJB3StandaloneBootstrap.deployXmlResource(EJB3StandaloneBootstrap.java:90)
      ... 40 more


        • 1. Re: Microcontainer jboss-beans.xml configuration with 10g
          jcummings

          Found the problem.

          In jboss-beans.xml the property to use is
          connectionUrl.

          In embedded-jboss-beans.xml the property to use is
          connectionURL.

          Guess the caps differ here.

          • 2. Re: Microcontainer jboss-beans.xml configuration with 10g
            jcummings

            Soon after the above typo difference was fixed I noticed another one.
            When using various DataSources the method cases differ. Here they differ in the method for DataSource. Notice one is getDatasource, and the other is getDataSource.

            The DefaultDSBootstrap class is org.jboss.resource.adapter.jdbc.local.LocalTxDataSource

            <bean name="DefaultDS" class="java.lang.Object">
             <constructor factoryMethod="getDatasource">
             <factory bean="DefaultDSBootstrap"/>
             </constructor>
             </bean>


            The myDatasourceBootstrap class is org.jboss.seam.microcontainer.DataSourceFactory

            <bean name="hxpDatasource" class="java.lang.Object">
             <constructor factoryMethod="getDataSource">
             <factory bean="myDatasourceBootstrap"/>
             </constructor>
             </bean>