[JBoss Seam] - Conversation Bug?
by gersonk
My seam application list all books in a dataTable. The user can edit any book simply by clicking on the 'Edit This Book' button placed at the end of each row... it shows the input boxes and the save button in a modal panel.
When the user finishes updating the book information and clicks on save button, I just want to refresh the dataTable to view the changes were made. I tried using reRender, but it didn't work. For some reason, when the application starts a conversation (@Begin), the reRender does not work. How can I refresh the dataTable?
Book.java
| @Name("book")
| @Entity
| public class Book{
|
| @Id @GeneratedValue(strategy=GenerationType.IDENTITY)
| private Long id;
|
| private String title;
| private String isbn;
|
| public Book(){
|
| }
|
| public Long getId() { return id; }
|
| public String getIsbn() { return isbn; }
| public void setIsbn(String isbn) { this.isbn = isbn; }
|
| public String getTitle() { return title; }
| public void setTitle(String title) { this.title = title; }
|
BookingSearchingAction.java
| @Name("bookSearchAction")
| @Stateful
| public class BookSearchingAction implements BookSearching{
|
| @Logger
| private Log log;
|
| @PersistenceContext(type = PersistenceContextType.EXTENDED)
| private EntityManager em;
|
| @DataModel
| private List<Book> books = new ArrayList<Book>();
|
| @Factory(value = "books" )
| public void initBooks() {
| books = em.createQuery("SELECT a from Book a").getResultList();
| }
|
|
| @Remove
| public void destroy() {}
|
| public List<Book> getBooks() { return books; }
| public void setBooks(List<Book> books) { this.books = books; }
|
| }
|
BookEditingAction.java
| @Name(value = "bookEditingAction")
| @Scope(ScopeType.CONVERSATION)
| @Stateful
| public class BookEditingAction implements BookEditing {
|
| @Logger
| private Log log;
|
| @PersistenceContext(type = PersistenceContextType.EXTENDED)
| private EntityManager em;
|
|
| @In(required = false)
| @Out(required = false)
| private Book selectedBook;
|
| @Begin()
| public void selectBook(Book book) {
| this.selectedBook = em.merge(book);
| }
|
| @End
| public void cancelSelection() {
| }
|
|
| @End
| public void removeBook() {
| em.remove(selectedBook);
| }
|
| @End
| public void saveBook() {
| em.merge(selectedBook);
| }
|
|
| @Remove
| public void destroy() {}
|
| public Book getSelectedBook() { return selectedBook; }
| public void setSelectedBook(Book selectedBook) { this.selectedBook = selectedBook;}
|
| }
|
books.xml
| <?xml version="1.0" encoding="ISO-8859-1" ?>
| <!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
| "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
| <ui:composition xmlns="http://www.w3.org/1999/xhtml"
| xmlns:s="http://jboss.com/products/seam/taglib"
| xmlns:ui="http://java.sun.com/jsf/facelets"
| xmlns:f="http://java.sun.com/jsf/core"
| xmlns:h="http://java.sun.com/jsf/html"
| xmlns:rich="http://richfaces.org/rich"
| xmlns:a4j="http://richfaces.org/a4j"
| template="layout/template.xhtml">
|
| <ui:define name="body">
|
|
| <p>Books</p>
|
| <a4j:form>
|
| <!-- Book List -->
| <rich:dataTable id="bookTable" columnClasses="col" value="#{books}" var="thisBook">
|
| <rich:column id="title">
| <f:facet name="header"><h:outputText styleClass="headerText" value="Title"/></f:facet>
| <h:outputText value="#{thisBook.title}"/>
| </rich:column>
|
| <rich:column id="isbn">
| <f:facet name="header"><h:outputText styleClass="headerText" value="ISBN"/></f:facet>
| <h:outputText value="#{thisBook.isbn}"/>
| </rich:column>
|
| <rich:column>
|
| <f:facet name="header">
| <h:outputText styleClass="headerText" value="Operation"/>
| </f:facet>
|
| <a4j:commandButton value="Edit This Book" reRender="tableBookEditing"
| action="#{bookEditingAction.selectBook(thisBook)}"
| oncomplete="javascript:Richfaces.showModalPanel('editBookPanel');"/>
|
| </rich:column>
|
|
| </rich:dataTable>
|
| </a4j:form>
|
|
|
| <!-- Modal Panel for Editing -->
|
| <rich:modalPanel id="editBookPanel" showWhenRendered="false" height="140">
|
| <f:facet name="header"> <h:outputText value="Edit Book"/> </f:facet>
| <f:facet name="controls"> <span style="cursor:pointer" onclick="javascript:Richfaces.hideModalPanel('editBookPanel')">X</span> </f:facet>
|
| <a4j:form>
|
| <rich:dataTable value="#{bookEditingAction.selectedBook}" var="sel" id="tableBookEditing">
|
| <rich:column id="title">
| <f:facet name="header"><h:outputText value="Title"/></f:facet>
| <h:inputText value="#{sel.title}"/>
| </rich:column>
|
| <rich:column id="isbn">
| <f:facet name="header"><h:outputText value="ISBN"/></f:facet>
| <h:inputText value="#{sel.isbn}"/>
| </rich:column>
|
| </rich:dataTable>
|
| <a4j:commandButton value="Save" action="#{bookEditingAction.saveBook()}"
| oncomplete="javascript:Richfaces.hideModalPanel('editBookPanel');"
| reRender="bookTable"/>
|
| </a4j:form>
|
| </rich:modalPanel>
|
| </ui:define>
| </ui:composition>
|
|
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4122311#4122311
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4122311
18 years, 6 months
[JBoss Messaging] - Re: Issues moving from postgresql to oracle
by rbreault
here is a copy of my oracle-ds.xml and oracle-persistence-service.xml files
oracle-ds.xml
<?xml version="1.0" encoding="UTF-8"?>
<!-- ===================================================================== -->
<!-- -->
<!-- JBoss Server Configuration -->
<!-- -->
<!-- ===================================================================== -->
<!-- $Id: oracle-ds.xml 23720 2004-09-15 14:37:40Z loubyansky $ -->
<!-- ==================================================================== -->
<!-- Datasource config for Oracle originally from Steven Coy -->
<!-- ==================================================================== -->
<local-tx-datasource>
<jndi-name>DefaultDS</jndi-name>
<connection-url>jdbc:oracle:thin:@208.67.188.125:1521:orcl</connection-url>
<!--
Here are a couple of the possible OCI configurations.
For more information, see http://otn.oracle.com/docs/products/oracle9i/doc_library/release2/java.92...
<connection-url>jdbc:oracle:oci:@youroracle-tns-name</connection-url>
or
<connection-url>jdbc:oracle:oci:@(description=(address=(host=youroraclehost)(protocol=tcp)(port=1521))(connect_data=(SERVICE_NAME=yourservicename)))</connection-url>
Clearly, its better to have TNS set up properly.
-->
<driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
<user-name>jboss</user-name>
xxxxxxxx
<!-- Uses the pingDatabase method to check a connection is still valid before handing it out from the pool -->
<valid-connection-checker-class-name>org.jboss.resource.adapter.jdbc.vendor.OracleValidConnectionChecker</valid-connection-checker-class-name>
<!-- Checks the Oracle error codes and messages for fatal errors -->
<exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.OracleExceptionSorter</exception-sorter-class-name>
<!-- sql to call when connection is created
<new-connection-sql>some arbitrary sql</new-connection-sql>
-->
<!-- sql to call on an existing pooled connection when it is obtained from pool - the OracleValidConnectionChecker is prefered
<check-valid-connection-sql>some arbitrary sql</check-valid-connection-sql>
-->
<!-- corresponding type-mapping in the standardjbosscmp-jdbc.xml (optional) -->
<type-mapping>Oracle11g</type-mapping>
</local-tx-datasource>
I have a oracle-servers-ds.xml as well
<?xml version="1.0" encoding="UTF-8"?>
<!-- ===================================================================== -->
<!-- -->
<!-- JBoss Server Configuration -->
<!-- -->
<!-- ===================================================================== -->
<!-- $Id: oracle-ds.xml 23720 2004-09-15 14:37:40Z loubyansky $ -->
<!-- ==================================================================== -->
<!-- Datasource config for Oracle originally from Steven Coy -->
<!-- ==================================================================== -->
<local-tx-datasource>
<jndi-name>ServersDS</jndi-name>
<connection-url>jdbc:oracle:thin:@208.67.188.125:1521:orcl</connection-url>
<!--
Here are a couple of the possible OCI configurations.
For more information, see http://otn.oracle.com/docs/products/oracle9i/doc_library/release2/java.92...
<connection-url>jdbc:oracle:oci:@youroracle-tns-name</connection-url>
or
<connection-url>jdbc:oracle:oci:@(description=(address=(host=youroraclehost)(protocol=tcp)(port=1521))(connect_data=(SERVICE_NAME=yourservicename)))</connection-url>
Clearly, its better to have TNS set up properly.
-->
<driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
<user-name>servers</user-name>
xxxxxxxx
<!-- Uses the pingDatabase method to check a connection is still valid before handing it out from the pool -->
<valid-connection-checker-class-name>org.jboss.resource.adapter.jdbc.vendor.OracleValidConnectionChecker</valid-connection-checker-class-name>
<!-- Checks the Oracle error codes and messages for fatal errors -->
<exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.OracleExceptionSorter</exception-sorter-class-name>
<!-- sql to call when connection is created
<new-connection-sql>some arbitrary sql</new-connection-sql>
-->
<!-- sql to call on an existing pooled connection when it is obtained from pool - the OracleValidConnectionChecker is prefered
<check-valid-connection-sql>some arbitrary sql</check-valid-connection-sql>
-->
<!-- corresponding type-mapping in the standardjbosscmp-jdbc.xml (optional) -->
<type-mapping>Oracle11g</type-mapping>
</local-tx-datasource>
and here is the oracle-persistence-service.xml
<?xml version="1.0" encoding="UTF-8"?>
<!--
Orcle persistence deployment descriptor.
$Id: oracle-persistence-service.xml 1569 2006-11-17 02:08:56Z ovidiu.feodorov(a)jboss.com $
-->
<mbean code="org.jboss.messaging.core.plugin.JDBCPersistenceManager"
name="jboss.messaging:service=PersistenceManager"
xmbean-dd="xmdesc/JDBCPersistenceManager-xmbean.xml">
jboss.jca:service=DataSourceBinding,name=DefaultDS
<depends optional-attribute-name="TransactionManager">jboss:service=TransactionManager
<depends optional-attribute-name="ChannelMapper">jboss.messaging:service=ChannelMapper
java:/DefaultDS
true
true
<![CDATA[
CREATE_MESSAGE_REF=CREATE TABLE JMS_MESSAGE_REFERENCE (CHANNELID INTEGER, MESSAGEID INTEGER, TRANSACTIONID INTEGER, STATE CHAR(1), ORD INTEGER, DELIVERYCOUNT INTEGER, RELIABLE CHAR(1), LOADED CHAR(1), PRIMARY KEY(CHANNELID, MESSAGEID))
CREATE_IDX_MESSAGE_REF_TX=CREATE INDEX JMS_MESSAGE_REF_TX ON JMS_MESSAGE_REFERENCE (TRANSACTIONID)
CREATE_IDX_MESSAGE_REF_ORD=CREATE INDEX JMS_MESSAGE_REF_ORD ON JMS_MESSAGE_REFERENCE (ORD)
CREATE_IDX_MESSAGE_REF_MESSAGEID=CREATE INDEX JMS_MESSAGE_REF_MESSAGEID ON JMS_MESSAGE_REFERENCE (MESSAGEID)
CREATE_IDX_MESSAGE_REF_LOADED=CREATE INDEX JMS_MESSAGE_REF_LOADED ON JMS_MESSAGE_REFERENCE (LOADED)
CREATE_IDX_MESSAGE_REF_RELIABLE=CREATE INDEX JMS_MESSAGE_REF_RELIABLE ON JMS_MESSAGE_REFERENCE (RELIABLE)
INSERT_MESSAGE_REF=INSERT INTO JMS_MESSAGE_REFERENCE (CHANNELID, MESSAGEID, TRANSACTIONID, STATE, ORD, DELIVERYCOUNT, RELIABLE, LOADED) VALUES (?, ?, ?, ?, ?, ?, ?, ?)
DELETE_MESSAGE_REF=DELETE FROM JMS_MESSAGE_REFERENCE WHERE MESSAGEID=? AND CHANNELID=? AND STATE='C'
UPDATE_MESSAGE_REF=UPDATE JMS_MESSAGE_REFERENCE SET TRANSACTIONID=?, STATE='-' WHERE MESSAGEID=? AND CHANNELID=? AND STATE='C'
UPDATE_MESSAGE_REF_NOT_LOADED=UPDATE JMS_MESSAGE_REFERENCE SET LOADED='N' WHERE MESSAGEID=? AND CHANNELID=?
COMMIT_MESSAGE_REF1=UPDATE JMS_MESSAGE_REFERENCE SET STATE='C', TRANSACTIONID = NULL WHERE TRANSACTIONID=? AND STATE='+'
COMMIT_MESSAGE_REF2=DELETE FROM JMS_MESSAGE_REFERENCE WHERE TRANSACTIONID=? AND STATE='-'
ROLLBACK_MESSAGE_REF1=DELETE FROM JMS_MESSAGE_REFERENCE WHERE TRANSACTIONID=? AND STATE='+'
ROLLBACK_MESSAGE_REF2=UPDATE JMS_MESSAGE_REFERENCE SET STATE='C', TRANSACTIONID = NULL WHERE TRANSACTIONID=? AND STATE='-'
LOAD_REF_INFO=SELECT MESSAGEID, ORD, DELIVERYCOUNT, RELIABLE FROM JMS_MESSAGE_REFERENCE WHERE CHANNELID=? AND STATE <> '+' AND LOADED = 'N' AND ORD BETWEEN ? AND ? ORDER BY ORD
SELECT_COUNT_REFS=SELECT COUNT(MESSAGEID) FROM JMS_MESSAGE_REFERENCE WHERE CHANNELID=? AND STATE <> '+' AND LOADED='N'
UPDATE_RELIABLE_REFS=UPDATE JMS_MESSAGE_REFERENCE SET LOADED='Y' WHERE ORD BETWEEN ? AND ? AND CHANNELID=? AND RELIABLE='Y' AND STATE <> '+'
UPDATE_RELIABLE_REFS_NOT_LOADED=UPDATE JMS_MESSAGE_REFERENCE SET LOADED='N' WHERE CHANNELID=?
SELECT_MIN_ORDERING=SELECT MIN(ORD) FROM JMS_MESSAGE_REFERENCE WHERE CHANNELID=? AND STATE <> '+' AND LOADED = 'N'
DELETE_UNRELIABLE_REFS=DELETE FROM JMS_MESSAGE_REFERENCE WHERE RELIABLE = 'N'
UPDATE_DELIVERYCOUNT=UPDATE JMS_MESSAGE_REFERENCE SET DELIVERYCOUNT = ? WHERE CHANNELID = ? AND MESSAGEID = ?
CREATE_MESSAGE=CREATE TABLE JMS_MESSAGE (MESSAGEID INTEGER, RELIABLE CHAR(1), EXPIRATION INTEGER, TIMESTAMP INTEGER, PRIORITY INTEGER, COREHEADERS BLOB, PAYLOAD BLOB, CHANNELCOUNT INTEGER, TYPE INTEGER, JMSTYPE VARCHAR2(255), CORRELATIONID VARCHAR2(255), CORRELATIONID_BYTES RAW(254), DESTINATION_ID INTEGER, REPLYTO_ID INTEGER, JMSPROPERTIES BLOB, PRIMARY KEY (MESSAGEID))
LOAD_MESSAGES=SELECT MESSAGEID, RELIABLE, EXPIRATION, TIMESTAMP, PRIORITY, COREHEADERS, PAYLOAD, CHANNELCOUNT, TYPE, JMSTYPE, CORRELATIONID, CORRELATIONID_BYTES, DESTINATION_ID, REPLYTO_ID, JMSPROPERTIES FROM JMS_MESSAGE
INSERT_MESSAGE=INSERT INTO JMS_MESSAGE (MESSAGEID, RELIABLE, EXPIRATION, TIMESTAMP, PRIORITY, COREHEADERS, PAYLOAD, CHANNELCOUNT, TYPE, JMSTYPE, CORRELATIONID, CORRELATIONID_BYTES, DESTINATION_ID, REPLYTO_ID, JMSPROPERTIES) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
UPDATE_MESSAGE_CHANNELCOUNT=UPDATE JMS_MESSAGE SET CHANNELCOUNT=? WHERE MESSAGEID=?
DELETE_MESSAGE=DELETE FROM JMS_MESSAGE WHERE MESSAGEID=?
MESSAGEID_COLUMN=MESSAGEID
UPDATE_UNRELIABLE_CHANNELCOUNT=UPDATE JMS_MESSAGE M SET M.CHANNELCOUNT = M.CHANNELCOUNT - 1 WHERE M.MESSAGEID IN (SELECT MR.MESSAGEID FROM JMS_MESSAGE_REFERENCE MR WHERE MR.RELIABLE = 'N' AND MR.CHANNELID = ?)
DELETE_UNREFFED_MESSAGES=DELETE FROM JMS_MESSAGE WHERE CHANNELCOUNT = 0
CREATE_TRANSACTION=CREATE TABLE JMS_TRANSACTION (TRANSACTIONID INTEGER, BRANCH_QUAL RAW(254), FORMAT_ID INTEGER, GLOBAL_TXID RAW(254), PRIMARY KEY (TRANSACTIONID))
INSERT_TRANSACTION=INSERT INTO JMS_TRANSACTION (TRANSACTIONID, BRANCH_QUAL, FORMAT_ID, GLOBAL_TXID) VALUES(?, ?, ?, ?)
DELETE_TRANSACTION=DELETE FROM JMS_TRANSACTION WHERE TRANSACTIONID = ?
SELECT_PREPARED_TRANSACTIONS=SELECT TRANSACTIONID, BRANCH_QUAL, FORMAT_ID, GLOBAL_TXID FROM JMS_TRANSACTION
DELETE_ALL_TRANSACTIONS=DELETE FROM JMS_TRANSACTION
CREATE_COUNTER=CREATE TABLE JMS_COUNTER (NAME VARCHAR2(255), NEXT_ID INTEGER, PRIMARY KEY(NAME))
UPDATE_COUNTER=UPDATE JMS_COUNTER SET NEXT_ID = ? WHERE NAME=?
SELECT_COUNTER=SELECT NEXT_ID FROM JMS_COUNTER WHERE NAME=?
INSERT_COUNTER=INSERT INTO JMS_COUNTER (NAME, NEXT_ID) VALUES (?, ?)
DELETE_ALL_COUNTERS=DELETE FROM JMS_COUNTER
SELECT_ALL_CHANNELS=SELECT DISTINCT(CHANNELID) FROM JMS_MESSAGE_REFERENCE
]]>
500
<mbean code="org.jboss.jms.server.plugin.JDBCChannelMapper"
name="jboss.messaging:service=ChannelMapper"
xmbean-dd="xmdesc/JDBCChannelMapper-xmbean.xml">
jboss.jca:service=DataSourceBinding,name=DefaultDS
<depends optional-attribute-name="TransactionManager">jboss:service=TransactionManager
java:/DefaultDS
true
<![CDATA[
CREATE_USER_TABLE=CREATE TABLE JMS_USER (USERID VARCHAR2(32) NOT NULL, PASSWD VARCHAR2(32) NOT NULL, CLIENTID VARCHAR2(128), PRIMARY KEY(USERID))
CREATE_ROLE_TABLE=CREATE TABLE JMS_ROLE (ROLEID VARCHAR2(32) NOT NULL, USERID VARCHAR2(32) NOT NULL, PRIMARY KEY(USERID, ROLEID))
SELECT_PRECONF_CLIENTID=SELECT CLIENTID FROM JMS_USER WHERE USERID=?
CREATE_MAPPING_TABLE=CREATE TABLE JMS_CHANNEL_MAPPING (ID INTEGER, TYPE CHAR(1), JMS_DEST_NAME VARCHAR2(1024), JMS_SUB_NAME VARCHAR2(1024), CLIENT_ID VARCHAR2(128), SELECTOR VARCHAR2(1024), NO_LOCAL CHAR(1), PRIMARY KEY(ID))
INSERT_MAPPING=INSERT INTO JMS_CHANNEL_MAPPING (ID, TYPE, JMS_DEST_NAME, JMS_SUB_NAME, CLIENT_ID, SELECTOR, NO_LOCAL) VALUES (?, ?, ?, ?, ?, ?, ?)
DELETE_MAPPING=DELETE FROM JMS_CHANNEL_MAPPING WHERE ID = ?
SELECT_ID_FOR_DESTINATION=SELECT ID FROM JMS_CHANNEL_MAPPING WHERE TYPE=? AND JMS_DEST_NAME=?
SELECT_DURABLE_SUB=SELECT JMS_DEST_NAME, ID, SELECTOR, NO_LOCAL FROM JMS_CHANNEL_MAPPING WHERE CLIENT_ID=? AND JMS_SUB_NAME=?
SELECT_SUBSCRIPTIONS_FOR_TOPIC=SELECT ID, CLIENT_ID, JMS_SUB_NAME, SELECTOR, NO_LOCAL FROM JMS_CHANNEL_MAPPING WHERE TYPE='D' AND JMS_DEST_NAME=?
]]>
I hope that helps
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4122309#4122309
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4122309
18 years, 6 months