[jboss-user] [JBoss Seam] - Worst possible situation
yuriy_zubarev
do-not-reply at jboss.com
Sun Feb 10 15:56:36 EST 2008
Greeting,
The subject line is grim but true. I was developing Seam app on Windows box and everything worked fine, I put it on a Linux box and it doesn't work and doesn't spit out any exceptions.
Ok, a bit of details. I use Seam 2.0.1 and tomcat 6 on Java 5. Windows and Linux environments have the very same versions of all components. When I started debugging this problem I created a very simple TestWidget entity with two pages to see the list and details for test widgets.
| @Entity
| @Table(name = "test_widgets")
| public class TestWidget implements Serializable {
|
| private int id;
| private String name;
|
| @Id
| @GeneratedValue
| @Column
| public int getId() {
| return id;
| }
|
| public void setId(int id) {
| this.id = id;
| }
|
| @Column
| public String getName() {
| return name;
| }
|
| public void setName(String name) {
| this.name = name;
| }
| }
|
TestWidget class is coming from a maven sub-project and the generated JAR also includes persistence.xml:
| persistence.xml
|
| <?xml version="1.0" encoding="UTF-8"?>
| <persistence version="1.0" 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">
| <persistence-unit name="provisioningDatabase" transaction-type="RESOURCE_LOCAL">
| <provider>org.hibernate.ejb.HibernatePersistence</provider>
| <jta-data-source>java:comp/env/jdbc/ProvisioningDB</jta-data-source>
| <class>mypackage.entity.TestWidget</class>
| <properties>
| <property name="hibernate.hbm2ddl.auto" value="update"/>
| <property name="hibernate.show_sql" value="true"/>
| <property name="hibernate.cache.provider_class" value="org.hibernate.cache.HashtableCacheProvider"/>
| </properties>
| </persistence-unit>
| </persistence>
|
| components.xml
|
| <framework:entity-query name="testWidgets" ejbql="select w from TestWidget w" />
|
| @Name("testWidgetHome")
| public class TestWidgetHome extends EntityHome<TestWidget> {
|
| @Factory("testWidget")
| public TestWidget initModule() {
| return getInstance();
| }
| }
|
| test_widgets.xhtml
|
| <!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:ui="http://java.sun.com/jsf/facelets"
| xmlns:h="http://java.sun.com/jsf/html"
| xmlns:f="http://java.sun.com/jsf/core"
| xmlns:s="http://jboss.com/products/seam/taglib"
| xmlns:a="http://richfaces.org/a4j"
| xmlns:rich="http://richfaces.org/rich" template="layout/template.xhtml">
|
| <ui:define name="content">
| <h1>Test Widgets</h1>
| <h:dataTable id="roles" value="#{testWidgets.resultList}" var="w">
| <h:column>
| <f:facet name="header">ID</f:facet>
| #{w.id}
| </h:column>
| <h:column>
| <f:facet name="header">Name</f:facet>
| #{w.name}
| </h:column>
| <h:column>
| <f:facet name="header">Actions</f:facet>
| <s:link value="edit" view="/test_widget.xhtml">
| <f:param name="twId" value="#{w.id}"/>
| </s:link>
| </h:column>
| </h:dataTable>
|
| <h2>Create Test Widget</h2>
| <h:form styleClass="normal-form">
| <fieldset>
| <s:decorate template="layout/edit.xhtml">
| <ui:define name="label">Name:</ui:define>
| <h:inputText value="#{testWidget.name}" id="name" required="true"/>
| </s:decorate>
| </fieldset>
| <div><h:commandButton value="Create" action="#{testWidgetHome.persist}"/></div>
| </h:form>
|
| </ui:define>
|
| </ui:composition>
|
| test_widget.xhtml
|
| <!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:ui="http://java.sun.com/jsf/facelets"
| xmlns:h="http://java.sun.com/jsf/html"
| xmlns:f="http://java.sun.com/jsf/core"
| xmlns:s="http://jboss.com/products/seam/taglib"
| xmlns:t="http://myfaces.apache.org/tomahawk"
| xmlns:a="http://richfaces.org/a4j"
| xmlns:platform="http://boats.com/platform/taglib"
| xmlns:rich="http://richfaces.org/rich" template="layout/template.xhtml">
|
| <ui:define name="content">
|
| <h1>Test Widget: #{testWidget.id}</h1>
|
| <h:form>
| <s:decorate template="layout/edit.xhtml">
| <ui:define name="label">Name:</ui:define>
| <h:inputText value="#{testWidget.name}" required="true"/>
| </s:decorate>
|
| <h:commandButton action="#{testWidgetHome.update}" value="Save"/>
| </h:form>
|
| </ui:define>
|
| </ui:composition>
|
| test_widget.page.xml
|
| <page>
| <param name="twId" value="#{testWidgetHome.id}" converterId="javax.faces.Integer"/>
| </page>
|
When I run the app on a windows box everything works. When I run it on a Linux box, I can create widgets and see the list of widgets but when I click to see details of a particular widget, I get a screen with no details information. The screen looks like as if I'm trying to create a new widget. #{testWidget.id} shows "0" and "name" textbox is empty. No exception or warnings in a log file. I'm totally puzzled. This is a very basic set-up and everything works fine on a Windows box.
Any clues would be highly appreciated.
Thank you,
Yuriy
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4128196#4128196
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4128196
More information about the jboss-user
mailing list