[JBoss Seam] - doubts with embedded-ejb testNGs
by nico.ben
Hi!
I still have problems running a testNG, after reading docs, forum and wiki. So I bother you with my questions, sorry :)
I just created with seam-gen (seam1.1.5) a project with a reversed from postgres db class (User.java)
Included libs are the ones seam-gen includes.
In my classpath (following the instruction from booking example) I have:
| src
| resources
| test
| embedded-ejb/conf
|
|
| In test folder I have the following test:
|
|
| | import [...]
| | public class UserTest extends SeamTest {
| |
| | @Test
| | public void testUser() throws Exception
| | {
| | EntityManager em = entityManagerFactory.createEntityManager();
| | em.getTransaction().begin();
| |
| | User user = new User();
| | user.setName("AAAA");
| |
| | em.close();
| | }
| |
| | private EntityManagerFactory entityManagerFactory;
| |
| | public EntityManagerFactory getEntityManagerFactory()
| | {
| | return entityManagerFactory;
| | }
| |
| | @Configuration(beforeTestClass=true)
| | public void init()
| | {
| | entityManagerFactory = Persistence.createEntityManagerFactory("myprojectEntityManagerFactory");
| | }
| |
| | @Configuration(afterTestClass=true)
| | public void destroy()
| | {
| | entityManagerFactory.close();
| | }
| | }
| |
| |
|
|
| My persistence-test.xml is:
|
|
| | <persistence 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_1_0.xsd"
| | version="1.0">
| |
| | <persistence-unit name="myproject">
| | <provider>org.hibernate.ejb.HibernatePersistence</provider>
| | <jta-data-source>java:/myprojectTestDatasource</jta-data-source>
| | <properties>
| | <property name="hibernate.hbm2ddl.auto" value="create-drop"/>
| | <property name="hibernate.show_sql" value="true"/>
| | <property name="jboss.entity.manager.factory.jndi.name" value="java:/myprojectEntityManagerFactory"/>
| | </properties>
| | </persistence-unit>
| |
| | </persistence>
| |
|
| And embedded-jboss-beans.xml is
|
| | <?xml version="1.0" encoding="UTF-8"?>
| |
| | <deployment xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
| | xsi:schemaLocation="urn:jboss:bean-deployer bean-deployer_1_0.xsd"
| | xmlns="urn:jboss:bean-deployer">
| | <bean name="Naming" class="org.jnp.server.SingletonNamingServer"/>
| |
| | <bean name="InitialContextProperties" class="java.util.Hashtable">
| | <constructor>
| | <parameter class="java.util.Map">
| | <map keyClass="java.lang.String" valueClass="java.lang.String">
| | <entry>
| | <key>java.naming.factory.initial</key>
| | <value>org.jnp.interfaces.LocalOnlyContextFactory</value>
| | </entry>
| | <entry>
| | <key>java.naming.factory.url.pkgs</key>
| | <value>org.jboss.naming:org.jnp.interfaces</value>
| | </entry>
| | </map>
| | </parameter>
| | </constructor>
| | </bean>
| |
| | <bean name="java:comp/Initializer" class="org.jboss.ejb3.embedded.JavaCompInitializer">
| | <property name="jndiProperties"><inject bean="InitialContextProperties"/></property>
| | </bean>
| |
| | <bean name="XidFactory" class="org.jboss.tm.XidFactoryImpl"/>
| |
| | <bean name="XidFactoryMBean" class="org.jboss.ejb3.embedded.XidFactoryMBean">
| | <constructor>
| | <parameter class="org.jboss.tm.XidFactoryBase">
| | <inject bean="XidFactory"/>
| | </parameter>
| | </constructor>
| | </bean>
| |
| | <bean name="TransactionManagerInitializer" class="org.jboss.tm.TransactionManagerInitializer">
| | <property name="xidFactory"><inject bean="XidFactory"/></property>
| | <property name="initialContextProperties"><inject bean="InitialContextProperties"/></property>
| | </bean>
| |
| | <bean name="UserTransaction" class="org.jboss.ejb3.embedded.UserTransactionImpl">
| | <demand>TransactionManagerInitializer</demand>
| | </bean>
| |
| | <bean name="UserTransactionBinding" class="org.jboss.ejb3.embedded.JndiBinder">
| | <property name="jndiProperties"><inject bean="InitialContextProperties"/></property>
| | <property name="target"><inject bean="UserTransaction"/></property>
| | <property name="bindTo">UserTransaction</property>
| | <property name="serializable">false</property>
| | </bean>
| |
| |
| | <bean name="TransactionManager" class="java.lang.Object">
| | <constructor factoryMethod="getTransactionManager">
| | <factory bean="TransactionManagerInitializer"/>
| | </constructor>
| | </bean>
| | <bean name="CachedConnectionManager" class="org.jboss.resource.connectionmanager.CachedConnectionManagerReference">
| | <property name="transactionManager"><inject bean="TransactionManager"/></property>
| | </bean>
| |
| | <!--
| | <bean class="org.jboss.jdbc.HypersonicDatabase"
| | name="jboss:service=Hypersonic,database=localDB">
| | <property name="database">localDB</property>
| | <property name="inProcessMode">true</property>
| | <property name="dbDataDir">.</property>
| | </bean>
| | -->
| |
| | <bean name="DefaultDSBootstrap" class="org.jboss.resource.adapter.jdbc.local.LocalTxDataSource">
| | <property name="driverClass">org.hsqldb.jdbcDriver</property>
| | <property name="connectionURL">jdbc:hsqldb:.</property>
| | <!-- <property name="connectionURL">jdbc:hsqldb:./hypersonic/localDB</property> -->
| | <property name="userName">sa</property>
| | <property name="jndiName">java:/DefaultDS</property>
| | <property name="minSize">0</property>
| | <property name="maxSize">10</property>
| | <property name="blockingTimeout">1000</property>
| | <property name="idleTimeout">100000</property>
| | <property name="transactionManager"><inject bean="TransactionManager"/></property>
| | <property name="cachedConnectionManager"><inject bean="CachedConnectionManager"/></property>
| | <property name="initialContextProperties"><inject bean="InitialContextProperties"/></property>
| | </bean>
| |
| | <bean name="DefaultDS" class="java.lang.Object">
| | <constructor factoryMethod="getDatasource">
| | <factory bean="DefaultDSBootstrap"/>
| | </constructor>
| | </bean>
| |
| |
| | </deployment>
| |
|
| WEB-INF/Components.xml is:
|
| | <?xml version="1.0" encoding="UTF-8"?>
| | <components xmlns="http://jboss.com/products/seam/components"
| | xmlns:core="http://jboss.com/products/seam/core"
| | xmlns:drools="http://jboss.com/products/seam/drools"
| | xmlns:security="http://jboss.com/products/seam/security"
| | xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
| | xsi:schemaLocation=
| | "http://jboss.com/products/seam/core http://jboss.com/products/seam/core-1.1.xsd
| | http://jboss.com/products/seam/drools http://jboss.com/products/seam/drools-1.1.xsd
| | http://jboss.com/products/seam/security http://jboss.com/products/seam/security-1.1.xsd
| | http://jboss.com/products/seam/components http://jboss.com/products/seam/components-1.1.xsd">
| |
| | <core:init debug="true" jndi-pattern="@jndiPattern@"/>
| |
| | <core:manager concurrent-request-timeout="500"
| | conversation-timeout="120000"
| | conversation-id-parameter="cid"
| | conversation-is-long-running-parameter="clr"/>
| |
| | <core:pages no-conversation-view-id="/home.xhtml"/>
| |
| | <core:managed-persistence-context name="entityManager"
| | persistence-unit-jndi-name="java:/myprojectEntityManagerFactory"/>
| |
| | <core:ejb installed="@embeddedEjb@"/>
| |
| | <drools:rule-base name="securityRules">
| | <drools:rule-files><value>/security.drl</value></drools:rule-files>
| | </drools:rule-base>
| |
| | <security:identity authenticate-method="#{authenticator.authenticate}"/>
| |
| | </components>
| |
|
|
| When I run my test I get the following:
| anonymous wrote :
| | ===============================================
| | myproject
| | Total tests run: 0, Failures: 0, Skips: 0
| | ===============================================
| |
| | org.testng.TestNGException:
| | Cannot find class in classpath: UserTest
| | at org.testng.xml.XmlClass.getSupportClass(XmlClass.java:45)
| | at org.testng.internal.Utils.xmlClassesToClasses(Utils.java:82)
| | at org.testng.TestRunner.initMethods(TestRunner.java:252)
| | at org.testng.TestRunner.init(TestRunner.java:198)
| | at org.testng.TestRunner.init(TestRunner.java:168)
| | at org.testng.TestRunner.(TestRunner.java:135)
| | at org.testng.remote.RemoteTestNG$1.newTestRunner(RemoteTestNG.java:102)
| | at org.testng.remote.RemoteTestNG$DelegatingTestRunnerFactory.newTestRunner(RemoteTestNG.java:152)
| | at org.testng.SuiteRunner$ProxyTestRunnerFactory.newTestRunner(SuiteRunner.java:457)
| | at org.testng.SuiteRunner.privateRun(SuiteRunner.java:212)
| | at org.testng.SuiteRunner.run(SuiteRunner.java:168)
| | at org.testng.TestNG.createAndRunSuiteRunners(TestNG.java:987)
| | at org.testng.TestNG.runSuitesLocally(TestNG.java:951)
| | at org.testng.TestNG.run(TestNG.java:719)
| | at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:73)
| | at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:122)
| |
|
|
|
| My doubts are:
|
| 1) In UserTest.java is it correct to refer to myprojectEntityManagerFactory (mentioned in persistence.xml and components.xml) ?
| anonymous wrote : entityManagerFactory = Persistence.createEntityManagerFactory("myprojectEntityManagerFactory");
|
| 2) embedded-jboss-beans.xml has a DefaultDS that uses hsqldb.....do I have to modify it to postgres datasource? or HSQLDB is used during tests independently by any other database I use ?
|
| 3) Why do I obtain a "Cannot find class in classpath" error when my java file is in the classpath?
|
| Thank you in advance,
| Nico
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4009492#4009492
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4009492
18Â years, 9Â months
[Tomcat, HTTPD, Servlets & JSP] - sequence of execution not followed in seam remoting
by surajmundadaï¼ yahoo.com
Hi,
I was facing a lot of problem in implementation of pop-up in my application.
Eveytime I would invoke a pop-up, the javascript part (written in onclick attribute) would get executed before the my listener method (written in action attribute).
After reading Seam Remoting, I tried to call a listener method from javascript function and was able to do so in the first attempt.
Now my code looks like this:
|
| <script type="text/javascript" src="seam/remoting/resource/remote.js">
| </script>
|
| <script type="text/javascript" src="seam/remoting/interface.js?searchListener">
| </script>
|
| <script type="text/javascript">
| function fun_openSearchWindow(){
| alert('in fun_openSearchWindow()');
| Seam.Component.getInstance("searchListener").resetPage(resetPageCallback);
|
| window.open('search.jsf','search','scrollbars,height=400,width=700');
| }
| </script>
|
|
But my problem is that 'window.open' function gets executed first before my 'resetPage' method gets executed completely, defeating the whole purpose of remoting in my case.
Is there any way to keep the sequence of execution ?
Thanks in advance ...
Suraj
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4009490#4009490
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4009490
18Â years, 9Â months