[JBoss Seam] - Need help with SeamTest
by francof
I'm writing my first SeamTest class. I like the idea of TDD, but I'm kinda frustrated with getting my first test working perfectly. I'm struggling with this problem for 2 days now. I also combed the forum/google for an answer.
META-INF/persistence.xml, hibernate.cfg.xml
| <persistence>
| <persistence-unit name="cast">
| <properties>
| <property name="hibernate.ejb.cfgfile"
| value="/hibernate.cfg.xml"/>
| </properties>
| </persistence-unit>
| </persistence>
|
| <hibernate-configuration>
| <session-factory>
|
| <!-- Hibernate settings -->
| <property name="hibernate.connection.driver_class" >oracle.jdbc.driver.OracleDriver </property>
| <property name="hibernate.connection.url" >jdbc:oracle:thin:@localhost:1521:ORCL </property>
| <property name="hibernate.connection.username" >scarduser</property>
| <property name="hibernate.connection.password"> scarduser</property>
| <property name="hibernate.dialect" >org.hibernate.dialect.Oracle9Dialect</property>
|
| <!-- JDBC connection pool -->
| <property name="connection.pool_size" >15</property>
|
| <property name="hibernate.hbm2ddl.auto">update</property>
|
| <!-- Enable Hibernate's automatic session context management -->
| <property name="current_session_context_class">thread</property>
|
| <property name="format_sql">true</property>
| <property name="use_sql_comments">false</property>
| <property name="generate_statistics">false</property>
| <!-- SQL logging configuration -->
| <!-- NOTE: to show sql, use DEBUG log level for org.hibernate.SQL category -->
| <!--
| <property name="show_sql">true</property>
| -->
|
| <!-- Query configuration -->
| <property name="hibernate.query.substitutions">true 1, false 0</property>
| <property name="hibernate.max_fetch_depth">2</property>
|
| <!-- Batch configuration -->
| <property name="hibernate.default_batch_fetch_size">8</property>
| <property name="hibernate.jdbc.batch_size">20</property>
|
| <mapping class="com.ibm.dw.open18.Course"/>
| <mapping class="com.cmsc.sonycard.model.Catalog"/>
| </session-factory>
| </hibernate-configuration>
|
My seamtest class - CatalogTest
| package com.cmsc.sonycard.model;
|
| /** Imports omitted ***/
| public class CatalogTest extends SeamTest {
| private Catalog catalog;
|
| /* START SECTION A
| private EntityManagerFactory emf;
|
| public EntityManagerFactory getEntityManagerFactory() {
| return emf;
| }
|
| @Configuration(beforeTestClass = true)
| public void init() {
| emf = Persistence
| .createEntityManagerFactory("cast");
| }
|
| @Configuration(afterTestClass = true)
| public void destroy() {
| emf.close();
|
| }
| END SECTION A */
|
| @Test
| public void testPersist() {
| EntityManagerFactory emf =
| Persistence.createEntityManagerFactory("cast");
| EntityManager em = emf.createEntityManager();
| catalog = new Catalog();
| catalog.setName("Blah Blah");
| catalog.setActive("Y");
| em.getTransaction().begin();
| em.persist(catalog);
| em.getTransaction().commit();
|
| em.close();
| }
|
| }
|
|
|
My tests run fine with the above code as is. The problem is when I uncomment "Section A" and run my test again -
my testPersist() still runs successfully but I get these errors.
[testng] 10:50:38,202 WARN [DriverManagerConnectionProvider] problem closing pooled connection
[testng] java.sql.SQLException: Io exception: Socket closed
[testng] at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
[testng] at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:179)
[testng] at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:333)
[testng] at oracle.jdbc.driver.OracleConnection.close(OracleConnection.java:1442)
[testng] at org.hibernate.connection.DriverManagerConnectionProvider.close(DriverManagerConnectionProvider.java:152)
[testng] at org.hibernate.connection.DriverManagerConnectionProvider.finalize(DriverManagerConnectionProvider.java:142)
[testng] at java.lang.ref.Finalizer.invokeFinalizeMethod(Native Method)
[testng] at java.lang.ref.Finalizer.runFinalizer(Finalizer.java:83)
[testng] at java.lang.ref.Finalizer.access$100(Finalizer.java:14)
[testng] at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:160)
[testng] 10:50:38,202 INFO [TableMetadata] columns: [phone, type, street, postal_code, id, county, longitude, country, uri, description, state, latitude, na
me, city]
[testng] 10:50:38,202 INFO [DriverManagerConnectionProvider] cleaning up connection pool: jdbc:oracle:thin:@localhost:1521:ORCL
[testng] 10:50:38,202 WARN [DriverManagerConnectionProvider] problem closing pooled connection
[testng] java.sql.SQLException: Io exception: Socket closed
[testng] at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
[testng] at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:179)
[testng] at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:333)
[testng] at oracle.jdbc.driver.OracleConnection.close(OracleConnection.java:1442)
[testng] at org.hibernate.connection.DriverManagerConnectionProvider.close(DriverManagerConnectionProvider.java:152)
[testng] at org.hibernate.connection.DriverManagerConnectionProvider.finalize(DriverManagerConnectionProvider.java:142)
[testng] at java.lang.ref.Finalizer.invokeFinalizeMethod(Native Method)
[testng] at java.lang.ref.Finalizer.runFinalizer(Finalizer.java:83)
[testng] at java.lang.ref.Finalizer.access$100(Finalizer.java:14)
[testng] at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:160)
[testng] 10:50:38,202 INFO [TableMetadata] foreign keys: []
[testng] 10:50:38,202 INFO [TableMetadata] indexes: [sys_c005286]
[testng] 10:50:38,202 INFO [SchemaUpdate] schema update complete
[testng] Creating C:\source\cast\build\testout\CatalogTest.html
[testng] PASSED: testPersist
[testng] FAILED: org.jboss.seam.mock.SeamTest.end()
[testng] java.lang.NullPointerException
[testng] at org.jboss.seam.contexts.WebApplicationContext.get(WebApplicationContext.java:48)
[testng] at org.jboss.seam.Component.forName(Component.java:1579)
[testng] at org.jboss.seam.Component.getInstance(Component.java:1627)
[testng] at org.jboss.seam.Component.getInstance(Component.java:1622)
[testng] at org.jboss.seam.Component.getInstance(Component.java:1599)
[testng] at org.jboss.seam.Component.getInstance(Component.java:1594)
[testng] at org.jboss.seam.core.ConversationEntries.instance(ConversationEntries.java:91)
[testng] at org.jboss.seam.contexts.Lifecycle.endSession(Lifecycle.java:284)
[testng] at org.jboss.seam.mock.SeamTest.end(SeamTest.java:676)
[testng] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
I tried putting the same code block into the registration example and I get similar errors. Am I missing something in the testng configuration.
Sorry for the long post. Thanks for any help, will keep trying, got some free time to play today.
Franco
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4062507#4062507
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4062507
18Â years, 10Â months
[JBoss Seam] - Re: Seam + Eclipse
by enzhao
the jboss tools for eclipse nightly build is still _very_ awkward to use for now. Do not use it. Install a clean Europa SDK (the classic SDK but not the prepackaged one for JEE developers). Then use the Europa discovery site to install the officially signed JEE features, so you get syntax highlighting for xml/xhtml/sql files. Install a subversion plugin if needed. Normally you do not need any more features. As for the server start/shut off thing, you can use a shell( DOS shell or any *nix shell) and run the start up script....I am developing my Seam app this way. You can set up a Seam-gen generated projects in your eclipse following the Seam reference. Disable the auto build. (important. It saves your frustration) When you want to deploy, on the eclipse, just click (project-->clean-->check the "start a build immediately"). The Seam generated build.xml for your project automatically do the deploy to your jboss server. Watch your shell. Have fun....
Ellen
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4062505#4062505
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4062505
18Â years, 10Â months