[JBoss Seam] - test configuring joss embedded
by laksu
Hi,
I am trying to convert a seam-gen generated project to use hibernate instead of jpa. I am almost done except getting testing work. In the reference documentation it is stated that "jboss-beans.xml" file is generated by seam-gen, but I cannot seem to find it. And creating one like the following does not help configuring the data source:
<deployment xmlns="urn:jboss:bean-deployer:2.0">
| <bean name="TransactionManagerFactory" class="org.jboss.seam.microcontainer.TransactionManagerFactory"/>
| <bean name="TransactionManager" class="java.lang.Object">
| <constructor factoryMethod="getTransactionManager">
| <factory bean="TransactionManagerFactory"/>
| </constructor>
| </bean>
| <bean name="payrollDatasourceFactory" class="org.jboss.seam.microcontainer.DataSourceFactory">
| <property name="driverClass">org.postgresql.ds.PGSimpleDataSource</property>
| <property name="connectionUrl">jdbc:postgresql://192.168.10.79:5432/payroll_levent</property>
| <property name="userName">postgres</property>
| <property name="password">postgres</property>
| <property name="jndiName">java:/payroll</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>
| </bean>
| <bean name="payrollDatasource" class="java.lang.Object">
| <constructor factoryMethod="getDataSource">
| <factory bean="payrollDatasourceFactory"/>
| </constructor>
| </bean>
| </deployment>
Either I have the file above or not I get the following:
[testng] FAILED CONFIGURATION: @BeforeClass init
| [testng] org.hibernate.HibernateException: Could not find datasource
| [testng] at org.hibernate.connection.DatasourceConnectionProvider.configure(DatasourceConnectionProvider.java:56)
| [testng] at org.hibernate.connection.ConnectionProviderFactory.newConnectionProvider(ConnectionProviderFactory.java:124)
| [testng] at org.hibernate.connection.ConnectionProviderFactory.newConnectionProvider(ConnectionProviderFactory.java:56)
| [testng] at org.hibernate.cfg.SettingsFactory.createConnectionProvider(SettingsFactory.java:397)
| [testng] at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:62)
| [testng] at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2006)
| [testng] at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1289)
| [testng] at org.jboss.seam.persistence.HibernateSessionFactory.createSessionFactory(HibernateSessionFactory.java:165)
| [testng] at org.jboss.seam.persistence.HibernateSessionFactory.startup(HibernateSessionFactory.java:79)
| [testng] at org.jboss.seam.util.Reflections.invoke(Reflections.java:21)
| [testng] at org.jboss.seam.util.Reflections.invokeAndWrap(Reflections.java:125)
| [testng] at org.jboss.seam.Component.callComponentMethod(Component.java:2074)
| [testng] at org.jboss.seam.Component.callCreateMethod(Component.java:1997)
| [testng] at org.jboss.seam.Component.newInstance(Component.java:1968)
| [testng] at org.jboss.seam.contexts.Contexts.startup(Contexts.java:304)
| [testng] at org.jboss.seam.contexts.Contexts.startup(Contexts.java:278)
| [testng] at org.jboss.seam.contexts.ServletLifecycle.endInitialization(ServletLifecycle.java:95)
| [testng] at org.jboss.seam.init.Initialization.init(Initialization.java:555)
| [testng] at org.jboss.seam.mock.BaseSeamTest.init(BaseSeamTest.java:939)
| [testng] at org.jboss.seam.mock.SeamTest.init(SeamTest.java:42)
| [testng] Caused by: javax.naming.NameNotFoundException: payrollDatasource not bound
| [testng] at org.jnp.server.NamingServer.getBinding(NamingServer.java:542)
| [testng] at org.jnp.server.NamingServer.getBinding(NamingServer.java:550)
| [testng] at org.jnp.server.NamingServer.getObject(NamingServer.java:556)
| [testng] at org.jnp.server.NamingServer.lookup(NamingServer.java:296)
| [testng] at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:628)
| [testng] at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:590)
| [testng] at javax.naming.InitialContext.lookup(InitialContext.java:351)
| [testng] at org.hibernate.connection.DatasourceConnectionProvider.configure(DatasourceConnectionProvider.java:52)
| [testng] ... 45 more
| [testng] ... Removed 26 stack frames
|
Here is my components.xml:
<core:init debug="@debug@" jndi-pattern="@jndiPattern@" />
|
| <core:manager concurrent-request-timeout="500"
| conversation-timeout="120000"
| conversation-id-parameter="cid"/>
|
| <persistence:hibernate-session-factory name="hibernateSessionFactory"/>
| <persistence:managed-hibernate-session name="hibernateSession"
| auto-create="true"
| session-factory-jndi-name="java:/payrollSessionFactory"/>
|
| <persistence:hibernate-transaction session="#{hibernateSession}"/>
|
|
and payroll-test-ds || payroll-dev-ds.xml
<?xml version="1.0" encoding="UTF-8"?>
|
| <!DOCTYPE datasources
| PUBLIC "-//JBoss//DTD JBOSS JCA Config 1.5//EN"
| "http://www.jboss.org/j2ee/dtd/jboss-ds_1_5.dtd">
|
| <datasources>
| <local-tx-datasource>
| <jndi-name>payrollDatasource</jndi-name>
| <connection-url>jdbc:postgresql://192.168.10.79:5432/payroll_levent</connection-url>
| <driver-class>org.postgresql.Driver</driver-class>
| <user-name>postgres</user-name>
| <password>postgres</password>
| <metadata>
| <type-mapping>PostgreSQL 8.0</type-mapping>
| </metadata>
| <new-connection-sql>select 1</new-connection-sql>
| <check-valid-connection-sql>select 1</check-valid-connection-sql>
|
| </local-tx-datasource>
| </datasources>
|
How do I configure the embedded container?
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4112206#4112206
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4112206
18 years, 4 months
[JBoss Seam] - selectOneMenu preselection
by berna
Hi all,
I want to have my drop down value pre-selected with appropriate option when user visit the page.
The following is my page for showing role selection dropdown.
| <s:decorate id="role" template="layout/display.xhtml">
| <ui:define name="label">role</ui:define>
| #{wiseUser.wiseUserRole.roleName}
| </s:decorate>
|
| <s:decorate id="valueDecoration" template="layout/edit.xhtml">
| <ui:define name="label">Title</ui:define>
| <h:selectOneMenu value="#{wiseUser.wiseUserRole}">
| <s:selectItems value="#{wurList}" var="wur" label="#{wur.roleName}" noSelectionLabel="Please select" />
| <s:convertEntity />
| </h:selectOneMenu>
| </s:decorate>
|
My WiseUser entity has a mapping to WiseUserRole
| @ManyToOne(fetch = FetchType.LAZY)
| //@ManyToOne(fetch = FetchType.EAGER)
| @JoinColumn(name = "UserRole")
| public WiseUserRole getWiseUserRole() {
| return this.wiseUserRole;
| }
|
When use FetchType.EAGER, then the dropdown box is correctly preselected with the user's role, however when FetchType.LAZY it's always present "Please select" option.
How to get the dropdown correctly preselected without using the EAGER fetching?
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4112193#4112193
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4112193
18 years, 4 months