Seam SVN: r9234 - in trunk: examples/ui/view and 1 other directory.
by seam-commits@lists.jboss.org
Author: danielc.roth
Date: 2008-10-08 15:41:02 -0400 (Wed, 08 Oct 2008)
New Revision: 9234
Modified:
trunk/doc/Seam_Reference_Guide/en-US/Controls.xml
trunk/examples/ui/view/template.xhtml
Log:
Spelling...
Modified: trunk/doc/Seam_Reference_Guide/en-US/Controls.xml
===================================================================
--- trunk/doc/Seam_Reference_Guide/en-US/Controls.xml 2008-10-08 19:37:15 UTC (rev 9233)
+++ trunk/doc/Seam_Reference_Guide/en-US/Controls.xml 2008-10-08 19:41:02 UTC (rev 9234)
@@ -476,7 +476,7 @@
<section>
- <title><literal><s:equalityValidator></literal></title>
+ <title><literal><s:validateEquality></literal></title>
<para><emphasis>Description</emphasis></para>
<para>
Modified: trunk/examples/ui/view/template.xhtml
===================================================================
--- trunk/examples/ui/view/template.xhtml 2008-10-08 19:37:15 UTC (rev 9233)
+++ trunk/examples/ui/view/template.xhtml 2008-10-08 19:41:02 UTC (rev 9234)
@@ -99,7 +99,7 @@
</s:link></li>
<li><s:link view="/equalityValidator.xhtml">
- <code>s:equalityValidator</code>
+ <code>s:validateEquality</code>
</s:link></li>
</ul>
16 years, 1 month
Seam SVN: r9233 - in trunk: examples/ui/src/org/jboss/seam/example/ui and 3 other directories.
by seam-commits@lists.jboss.org
Author: danielc.roth
Date: 2008-10-08 15:37:15 -0400 (Wed, 08 Oct 2008)
New Revision: 9233
Added:
trunk/examples/ui/src/org/jboss/seam/example/ui/EqualityValidatorBean.java
trunk/examples/ui/view/equalityValidator.xhtml
trunk/ui/src/main/config/component/equalityValidator.xml
trunk/ui/src/main/java/org/jboss/seam/ui/validator/EqualityValidator.java
Modified:
trunk/doc/Seam_Reference_Guide/en-US/Controls.xml
trunk/examples/ui/view/template.xhtml
Log:
JBSEAM-2809
EqualityValidator + example + docs
Modified: trunk/doc/Seam_Reference_Guide/en-US/Controls.xml
===================================================================
--- trunk/doc/Seam_Reference_Guide/en-US/Controls.xml 2008-10-08 18:43:43 UTC (rev 9232)
+++ trunk/doc/Seam_Reference_Guide/en-US/Controls.xml 2008-10-08 19:37:15 UTC (rev 9233)
@@ -474,7 +474,47 @@
</h:outputText>]]></programlisting>
</section>
+
<section>
+ <title><literal><s:equalityValidator></literal></title>
+
+ <para><emphasis>Description</emphasis></para>
+ <para>
+ Tag to nest inside an input control to validate that its parent's
+ value is the same as the referenced control's id.
+ </para>
+
+ <para><emphasis>Attributes</emphasis></para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <literal>for</literal> — The id of a control to validate against.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <literal>message</literal> — Message to show on failure.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <literal>messageId</literal> — Message id to show on failure.
+ </para>
+ </listitem>
+ </itemizedlist>
+
+ <para><emphasis>Usage</emphasis></para>
+ <programlisting><![CDATA[<h:inputText id="name" value="#{bean.name}"/>
+<h:inputText id="nameVerification" >
+ <s:validateEquality for="name" />
+</h:inputText>]]></programlisting>
+ </section>
+
+
+
+
+
+ <section>
<title><literal><s:validate></literal></title>
<para><emphasis>Description</emphasis></para>
@@ -933,6 +973,7 @@
</section>
+
<section>
<title><literal><s:fileUpload></literal></title>
Added: trunk/examples/ui/src/org/jboss/seam/example/ui/EqualityValidatorBean.java
===================================================================
--- trunk/examples/ui/src/org/jboss/seam/example/ui/EqualityValidatorBean.java (rev 0)
+++ trunk/examples/ui/src/org/jboss/seam/example/ui/EqualityValidatorBean.java 2008-10-08 19:37:15 UTC (rev 9233)
@@ -0,0 +1,59 @@
+package org.jboss.seam.example.ui;
+
+import org.jboss.seam.ScopeType;
+import org.jboss.seam.annotations.In;
+import org.jboss.seam.annotations.Name;
+import org.jboss.seam.annotations.Scope;
+import org.jboss.seam.international.StatusMessages;
+import org.jboss.seam.international.StatusMessage.Severity;
+import org.jboss.seam.util.Strings;
+
+@Name("equalityValidatorBean")
+(a)Scope(ScopeType.SESSION)
+public class EqualityValidatorBean
+{
+
+ private String name;
+
+ private String nameVerification;
+
+ @In
+ private StatusMessages statusMessages;
+
+ public String getName()
+ {
+ return name;
+ }
+
+ public void setName(String name)
+ {
+ this.name = name;
+ }
+
+ public String getNameVerification()
+ {
+ return nameVerification;
+ }
+
+ public void setNameVerification(String nameVerification)
+ {
+ this.nameVerification = nameVerification;
+ }
+
+ public void check()
+ {
+ if (Strings.isEmpty(name))
+ {
+ statusMessages.addToControl("name", Severity.WARN, "Enter a name!");
+ }
+ if (Strings.isEmpty(nameVerification))
+ {
+ statusMessages.addToControl("nameVerification", Severity.WARN, "Enter a name verification!");
+ }
+ if (name != null && nameVerification != null && !name.equals(nameVerification))
+ {
+ statusMessages.addToControl("nameVerification", Severity.WARN, "Name and Name Verification not equal (should have been caught by equality validator!)");
+ }
+ }
+
+}
Added: trunk/examples/ui/view/equalityValidator.xhtml
===================================================================
--- trunk/examples/ui/view/equalityValidator.xhtml (rev 0)
+++ trunk/examples/ui/view/equalityValidator.xhtml 2008-10-08 19:37:15 UTC (rev 9233)
@@ -0,0 +1,25 @@
+<!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:f="http://java.sun.com/jsf/core"
+ xmlns:h="http://java.sun.com/jsf/html"
+ xmlns:s="http://jboss.com/products/seam/taglib"
+ template="template.xhtml">
+ <ui:param name="tagName" value="s:validateEquality" />
+ <ui:define name="body">
+ <p>Validates that two inputs are equal</p>
+ <h:form>
+ <h:panelGrid columns="3">
+ <s:label for="name">Name</s:label>
+ <h:inputText id="name" value="#{equalityValidatorBean.name}" />
+ <h:message for="name" />
+ <s:label for="nameVerification">Name Verification</s:label>
+ <h:inputText id="nameVerification" value="#{equalityValidatorBean.nameVerification}">
+ <s:validateEquality for="name" />
+ </h:inputText>
+ <h:message for="nameVerification" />
+ <h:commandButton action="#{equalityValidatorBean.check}" value="Check name" />
+ </h:panelGrid>
+ </h:form>
+ </ui:define>
+</ui:composition>
Modified: trunk/examples/ui/view/template.xhtml
===================================================================
--- trunk/examples/ui/view/template.xhtml 2008-10-08 18:43:43 UTC (rev 9232)
+++ trunk/examples/ui/view/template.xhtml 2008-10-08 19:37:15 UTC (rev 9233)
@@ -97,6 +97,11 @@
<code>s:graphicImage</code>
<f:param name="personId" value="1" />
</s:link></li>
+
+ <li><s:link view="/equalityValidator.xhtml">
+ <code>s:equalityValidator</code>
+ </s:link></li>
+
</ul>
</s:div>
<s:div styleClass="content">
Added: trunk/ui/src/main/config/component/equalityValidator.xml
===================================================================
--- trunk/ui/src/main/config/component/equalityValidator.xml (rev 0)
+++ trunk/ui/src/main/config/component/equalityValidator.xml 2008-10-08 19:37:15 UTC (rev 9233)
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE components PUBLIC "-//AJAX4JSF//CDK Generator config/EN" "http://jboss.org/jbossrichfaces/component-config.dtd" >
+<components>
+ <validator generate="false">
+ <id>org.jboss.seam.ui.EqualityValidator</id>
+ <classname>org.jboss.seam.ui.validator.EqualityValidator</classname>
+ <description>
+ <![CDATA[Validate that the value of two components are equal]]>
+ </description>
+ <tag>
+ <name>validateEquality</name>
+ <classname>org.jboss.seam.ui.taglib.ModelValidatorTag</classname>
+ <superclass>javax.faces.webapp.ValidatorELTag</superclass>
+ </tag>
+ </validator>
+</components>
Added: trunk/ui/src/main/java/org/jboss/seam/ui/validator/EqualityValidator.java
===================================================================
--- trunk/ui/src/main/java/org/jboss/seam/ui/validator/EqualityValidator.java (rev 0)
+++ trunk/ui/src/main/java/org/jboss/seam/ui/validator/EqualityValidator.java 2008-10-08 19:37:15 UTC (rev 9233)
@@ -0,0 +1,295 @@
+package org.jboss.seam.ui.validator;
+
+import javax.el.ELException;
+import javax.el.ValueExpression;
+import javax.faces.FacesException;
+import javax.faces.application.Application;
+import javax.faces.component.EditableValueHolder;
+import javax.faces.component.StateHolder;
+import javax.faces.component.UIComponent;
+import javax.faces.context.FacesContext;
+import javax.faces.convert.Converter;
+import javax.faces.convert.ConverterException;
+import javax.faces.render.Renderer;
+import javax.faces.validator.Validator;
+import javax.faces.validator.ValidatorException;
+
+import org.jboss.seam.faces.FacesMessages;
+import org.jboss.seam.log.LogProvider;
+import org.jboss.seam.log.Logging;
+
+/**
+ * Validate two fields are equal
+ *
+ * @author pmuir
+ *
+ */
+public class EqualityValidator implements Validator, StateHolder
+{
+
+ private static LogProvider log = Logging.getLogProvider(EqualityValidator.class);
+
+ public static final String MESSAGE_ID = "org.jboss.seam.ui.validator.NOT_EQUAL";
+
+ public static final String VALIDATOR_ID = "org.jboss.seam.ui.validator.Equality";
+
+ private String forId;
+
+ private String message;
+ private String messageId;
+
+ public EqualityValidator()
+ {
+ this.message = "Value does not equal that in #0";
+ this.messageId = MESSAGE_ID;
+ }
+
+ public EqualityValidator(String forId)
+ {
+ this();
+ setFor(forId);
+ }
+
+ public EqualityValidator(String forId, String message, String messageId)
+ {
+ this(forId);
+ if (message != null)
+ {
+ setMessage(message);
+ }
+ if (messageId != null)
+ {
+ setMessageId(messageId);
+ }
+ }
+
+ public void validate(FacesContext context, UIComponent component, Object value) throws ValidatorException
+ {
+ if (!(component instanceof EditableValueHolder))
+ {
+ throw new FacesException("Must attach an equality validator to an input component");
+ }
+ String forId = getFor();
+ if (forId == null)
+ {
+ throw new FacesException("Must specify a component to validate equality against");
+ }
+ UIComponent otherComponent = component.findComponent(forId);
+ Object other = new OtherComponent(context, otherComponent).getValue();
+ if (value == null && other == null)
+ {
+ // Thats fine
+ }
+ else if (value != null)
+ {
+ if (!value.equals(other))
+ {
+ String otherComponentId = otherComponent.getId();
+ throw new ValidatorException(FacesMessages.createFacesMessage(javax.faces.application.FacesMessage.SEVERITY_ERROR, getMessageId(), getMessage(), otherComponentId, value, other));
+ }
+ }
+ }
+
+ public String getFor()
+ {
+ return forId;
+ }
+
+ public void setFor(String forId)
+ {
+ this.forId = forId;
+ }
+
+ public String getMessage()
+ {
+ return message;
+ }
+
+ public void setMessage(String message)
+ {
+ this.message = message;
+ }
+
+ public String getMessageId()
+ {
+ return messageId;
+ }
+
+ public void setMessageId(String messageId)
+ {
+ this.messageId = messageId;
+ }
+
+ public boolean isTransient()
+ {
+ return false;
+ }
+
+ public void restoreState(FacesContext context, Object state)
+ {
+ Object[] fields = (Object []) state;
+ forId = (String) fields[0];
+ message = (String) fields[1];
+ messageId = (String) fields[2];
+ }
+
+ public Object saveState(FacesContext context)
+ {
+ Object[] state = new Object[3];
+ state[0] = forId;
+ state[1] = message;
+ state[2] = messageId;
+ return state;
+ }
+
+ public void setTransient(boolean newTransientValue)
+ {
+ // No-op
+ }
+
+
+ /**
+ * Simple data strcuture to hold info on the "other" component
+ * @author pmuir
+ *
+ */
+ private class OtherComponent
+ {
+
+ private FacesContext context;
+ private UIComponent component;
+ private EditableValueHolder editableValueHolder;
+
+ private Renderer renderer;
+ private Converter converter;
+
+ public OtherComponent(FacesContext facesContext, UIComponent component)
+ {
+ this.component = component;
+ this.context = facesContext;
+ if (!(component instanceof EditableValueHolder))
+ {
+ throw new IllegalStateException("forId must reference an EditableValueHolder (\"input\") component");
+ }
+ editableValueHolder = (EditableValueHolder) component;
+ initRenderer();
+ initConverter();
+ }
+
+ private void initRenderer()
+ {
+ if (renderer == null)
+ {
+ String rendererType = component.getRendererType();
+ if (rendererType != null)
+ {
+ renderer = context.getRenderKit().getRenderer(component.getFamily(), rendererType);
+ if (null == renderer)
+ {
+ log.trace("Can't get Renderer for type " + rendererType);
+ }
+ }
+ else
+ {
+ if (log.isTraceEnabled())
+ {
+ String id = component.getId();
+ id = (null != id) ? id : component.getClass().getName();
+ log.trace("No renderer-type for component " + id);
+ }
+ }
+ }
+ }
+
+ private void initConverter() {
+ converter = editableValueHolder.getConverter();
+ if (converter != null) {
+ return;
+ }
+
+ ValueExpression valueExpression = component.getValueExpression("value");
+ if (valueExpression == null) {
+ return;
+ }
+
+ Class converterType;
+ try {
+ converterType = valueExpression.getType(context.getELContext());
+ }
+ catch (ELException e) {
+ throw new FacesException(e);
+ }
+
+ // if converterType is null, String, or Object, assume
+ // no conversion is needed
+ if (converterType == null || converterType == String.class || converterType == Object.class)
+ {
+ return;
+ }
+
+ // if getType returns a type for which we support a default
+ // conversion, acquire an appropriate converter instance.
+ try
+ {
+ Application application = context.getApplication();
+ converter = application.createConverter(converterType);
+ }
+ catch (Exception e)
+ {
+ throw new FacesException(e);
+ }
+ }
+
+ private Object getConvertedValue(Object newSubmittedValue) throws ConverterException
+ {
+
+ Object newValue;
+
+ if (renderer != null)
+ {
+ newValue = renderer.getConvertedValue(context, component, newSubmittedValue);
+ }
+ else if (newSubmittedValue instanceof String)
+ {
+ // If there's no Renderer, and we've got a String, run it through the Converter (if any)
+ if (converter != null) {
+ newValue = converter.getAsObject(context, component,
+ (String) newSubmittedValue);
+ }
+ else
+ {
+ newValue = newSubmittedValue;
+ }
+ }
+ else
+ {
+ newValue = newSubmittedValue;
+ }
+ return newValue;
+ }
+
+ public Object getValue()
+ {
+ Object submittedValue = editableValueHolder.getLocalValue();
+ if (submittedValue == null)
+ {
+ return null;
+ }
+
+ Object newValue = null;
+
+ try
+ {
+ newValue = getConvertedValue(submittedValue);
+ }
+ catch (ConverterException ce)
+ {
+ // Any errors will be attached by JSF
+ return null;
+ }
+
+ return newValue;
+ }
+
+ }
+}
16 years, 1 month
Seam SVN: r9232 - in branches/community/Seam_2_0: examples/jee5 and 1 other directory.
by seam-commits@lists.jboss.org
Author: jbalunas(a)redhat.com
Date: 2008-10-08 14:43:43 -0400 (Wed, 08 Oct 2008)
New Revision: 9232
Modified:
branches/community/Seam_2_0/doc/Seam_Reference_Guide/en-US/Weblogic.xml
branches/community/Seam_2_0/examples/jee5/readme.txt
Log:
JBSEAM-3076
Modified: branches/community/Seam_2_0/doc/Seam_Reference_Guide/en-US/Weblogic.xml
===================================================================
--- branches/community/Seam_2_0/doc/Seam_Reference_Guide/en-US/Weblogic.xml 2008-10-08 18:31:00 UTC (rev 9231)
+++ branches/community/Seam_2_0/doc/Seam_Reference_Guide/en-US/Weblogic.xml 2008-10-08 18:43:43 UTC (rev 9232)
@@ -1,52 +1,50 @@
<chapter id="weblogic">
<title>Seam on BEA's Weblogic</title>
- <para> Weblogic 10.X is BEA's JEE5 server offering, currently 10.0.MP1 is
- their stable release, and 10.3.TP is their latest tech preview release.
- Seam applications can be deployed and developed on Weblogic servers, and
+ <para> Weblogic 10.3 is BEA's latest stable JEE5 server offering. Seam
+ applications can be deployed and developed on Weblogic servers, and
this chapter will show you how. There are some known issues with the
Weblogic servers that will need to be worked around, and configuration
- changes that are needed. </para>
+ changes that are needed specific to Weblogic. </para>
- <para> First step is to get Weblogic downloaded, installed and running (no
- small feat). Then we'll talk about Seam's JEE5 example and the hurdles to
+ <para> First step is to get Weblogic downloaded, installed and running. Then
+ we'll talk about Seam's JEE5 example and the hurdles to
getting it running. After that, the JPA example will
- be modified and deployed to the server. Then finally we will create a
+ be deployed to the server. Then finally we will create a
<literal>seam-gen</literal> application and get it up and running to
provide a jump start to your own application. </para>
<section>
<title>Installation and operation of Weblogic</title>
- <para> First things first we need to get the server installed - and there
- is a choice to be made. Weblogic 10.0.MP1 is the most recent stable
- release, while 10.3.TP is a technical preview version that fixes some
- things and breaks others. </para>
+ <para> First things first we need to get the server installed. There are
+ some outstanding issues that were not addressed in 10.3, but it does
+ solve some of the issues discussed below without the need for BEA
+ patches. The previous release 10.0.MP1 is also available, but
+ requires some BEA patches to function correctly. </para>
<itemizedlist>
<listitem>
<para><literal>Weblogic 10.0.MP1</literal>
— <ulink
-url="http://commerce.bea.com/showproduct.jsp?family=WLS&major=10&minor=1">
+url="http://www.oracle.com/technology/software/products/ias/htdocs/wls_main.html">
Download page </ulink></para>
- <para> 10.0.MP1 has a known issue with EJBs that use
+ <para> 10.0.MP1 has some known issues with EJBs that use
<literal>varargs</literal> in their methods (it confuses them
- as <literal>transient</literal> ). This causes exceptions
- when Weblogic attempts to compile the Seam EJBs. There is a BEA
- support patch available to fix this issue, but BEA is currently
- working on a second issue related to the EJBs. See the
- <literal>jee5/booking</literal> example for more details. </para>
+ as <literal>transient</literal> ), as well as some others.
+ See <xref linkend="weblogic-ejb-issues" /> for full details on
+ the issues and the work around.</para>
</listitem>
<listitem>
- <para><literal>Weblogic 10.3.TP</literal>
+ <para><literal>Weblogic 10.3</literal>
— <ulink
-url="http://commerce.bea.com/showproduct.jsp?family=WLS&major=10.3Tech&...">
+url="http://www.oracle.com/technology/software/products/ias/htdocs/wls_main.html">
Download page </ulink></para>
- <para> This version still has not fixed the
- <literal>varargs</literal> bug, and there is a new issue with
- EJBs that do not use <literal>kodo</literal> (BEA's
- implementation of JPA). BEA has said that the <literal>varargs
- </literal> issue will be resolved in the final version of 10.3,
- but the <literal>kodo</literal> issue is a blocker for getting
- the <literal>jee5/booking</literal> working.
+ <para> This is the latest stable release of the Weblogic server,
+ and the one that will be used with the examples below. This
+ version has addressed some of the issues with EJBs that were in
+ 10.0.MP1. However one of the changes did not make it into this
+ release. See <xref linkend="weblogic-ejb-issues" /> for the
+ details, but because of this we still need to use the special
+ Weblogic seam jar discussed below.
</para>
</listitem>
</itemizedlist>
@@ -58,20 +56,20 @@
been created that does not contain the <literal>TimerServiceDispatcher
</literal>. This is the EJB that uses <literal>varargs</literal> and
exposes the second EJB issue. We will be using this jar for the
- <literal>jee5/booking</literal> example, as it avoids both known BEA
+ <literal>jee5/booking</literal> example, as it avoids the known BEA
issues.
</para>
</note>
<section>
- <title>Installing 10.0.MP1</title>
+ <title>Installing 10.3</title>
<para>
- Here are the quick steps to installing Weblogic 10.1.MP1.
+ Here are the quick steps to installing Weblogic 10.3.
For more details or if you are having any issues please
check with the BEA docs at the
- <ulink url="http://e-docs.bea.com/wls/docs100/index.html">
- Weblogic 10.0 Doc Center
+ <ulink url="http://edocs.bea.com/wls/docs103/">
+ Weblogic 10.3 Doc Center
</ulink>
. Here we install the RHEL 5 version using the graphical
installer:
@@ -79,19 +77,19 @@
<orderedlist>
<listitem>
- <para> Follow the link given above for 10.0.MP1 and download the
+ <para> Follow the link given above for 10.3 and download the
correct version for your environment. You will need to sign up
- for an account with BEA in order to do this. </para>
+ for an account with Oracle in order to do this. </para>
</listitem>
<listitem>
<para> You may need to change the the
- <literal>server1001_XX.bin</literal> file to be
+ <literal>server103_XX.bin</literal> file to be
executable: </para>
- <programlisting>chmod a+x server1001_XX.bin</programlisting>
+ <programlisting>chmod a+x server103_XX.bin</programlisting>
</listitem>
<listitem>
<para> Execute the install: </para>
- <programlisting>./server1001_XX.bin</programlisting>
+ <programlisting>./server103_XX.bin</programlisting>
</listitem>
<listitem>
<para> When the graphical install loads, you need to set the BEA
@@ -108,9 +106,8 @@
it will not hurt. </para>
</listitem>
<listitem>
- <para> Then you need to tell it where to install the server
- components: </para>
- <programlisting>$BEA_HOME/wlserver_10.0</programlisting>
+ <para> You can leave the defaults for the component installation
+ locations on the next page.</para>
</listitem>
</orderedlist>
</section>
@@ -124,7 +121,7 @@
<orderedlist>
<listitem>
<para> Start up the Weblogic configuration wizard:</para>
- <programlisting>$BEA_HOME/wlserver_10.0/common/bin/config.sh
+ <programlisting>$BEA_HOME/wlserver_10.3/common/bin/config.sh
</programlisting>
</listitem>
<listitem>
@@ -204,10 +201,6 @@
or <literal>Force shutdown now</literal>
as appropriate. </para>
</listitem>
- <listitem>
- <para> Then finally confirm that you want to
- shut this server down. </para>
- </listitem>
</orderedlist> </para>
</listitem>
<listitem>
@@ -223,17 +216,77 @@
<para><note>
<title>A note on Weblogic classloading</title>
<para>When using the
- <literal>@DOMAIN/autodeploy</literal> directory as
+ <literal>/autodeploy</literal> directory as
described in this chapter you may see
- <literal>NoClassDefFound</literal> exceptions. If
- you see this try restarting the Weblogic server. If you
- still see it remove the auto-deployed EAR/WAR files,
- restart the server, and redeploy. We could not find a
- specific reason for this, but others seem to be having this
- issue as well. </para> </note></para>
+ <literal>NoClassDefFound</literal> exceptions during
+ redeployment's. If you see this try restarting the Weblogic
+ server. If you still see it remove the auto-deployed
+ EAR/WAR files, restart the server, and redeploy. We could
+ not find a specific reason for this, but others seem to be
+ having this issue as well. </para> </note></para>
</listitem>
</itemizedlist>
- </section>
+ </section>
+ <section id="weblogic-jsf-deploy">
+ <title>Setting up Weblogic's JSF Support</title>
+ <para>These are the instructions to deploy and configure Weblogic's
+ JSF 1.2 libraries. Out of the box Weblogic does not come with its
+ own JSF libraries active. For complete details see
+ <ulink url="http://edocs.bea.com/wls/docs103/webapp/configurejsfandjtsl.html">
+ Weblogic 10.3 Configuring JSF and JSTL Libraries
+ </ulink></para>
+
+ <orderedlist>
+ <listitem>
+ <para>In the administration console navigate to the
+ <literal>Deployments</literal> page using the left hand
+ menu.</para>
+ </listitem>
+ <listitem>
+ <para>Then select the <literal>Install</literal>
+ button at the top of the deployments table</para>
+ </listitem>
+ <listitem>
+ <para>Using the directory browser navigate to the
+ <literal>$BEA_HOME/wlserver_10.3/common/deployable-libraries
+ </literal>
+ directory. Then select the <literal>jsf-1.2.war</literal>
+ archive, and click the <literal>Next</literal> button.</para>
+ </listitem>
+ <listitem>
+ <para>Make sure that the <literal>Install this deployment
+ as a library</literal> is selected. Click the <literal>
+ Next </literal> button on the <literal>Install Application
+ Assistant</literal> page.</para>
+ </listitem>
+ <listitem>
+ <para>Click the <literal>Next</literal> button on the
+ <literal> Optional Settings</literal> page.</para>
+ </listitem>
+ <listitem>
+ <para>Make sure that the <literal>Yes, take me to the
+ deployment's configuration screen.</literal> is selected.
+ Click the <literal>Finish</literal> button on the <literal>
+ Review your choices and click Finish</literal> page.</para>
+ </listitem>
+ <listitem>
+ <para>On the <literal>Settings for jsf(1.2,1.2.3.1)</literal>
+ page set the <literal>Deployment Order</literal> to
+ <literal>99</literal> so that it is deployed prior to
+ auto deployed applications. Then click the <literal>
+ Save</literal> button.</para>
+ </listitem>
+ </orderedlist>
+
+ <para>There is another step that is needed for this to work. For
+ some reason, even with the steps above classes in the <literal>
+ jsf-api.jar</literal> are not found during application deployment.
+ The only way for this to work is to put the <literal>
+ javax.jsf_1.2.0.0.jar</literal> (the jsf-api.jar) from
+ <literal>jsf-1.2.war</literal> in the domains shared library.
+ This requires a restart of the server.
+ </para>
+ </section>
</section>
<section>
@@ -241,32 +294,36 @@
<para>
Do you want to run Seam using EJB's on Weblogic? If so there
- are some obstacles that you will have to avoid. This section
- describes those obstacles and what changes are needed to the
- <literal>jee5/booking</literal>
+ are some obstacles that you will have to avoid, or some patches that
+ are needed from BEA. This section describes those obstacles and what
+ changes are needed to the <literal>jee5/booking</literal>
example to get it deployed and functioning.
</para>
<section id="weblogic-ejb-issues">
<title>EJB3 Issues with Weblogic</title>
+
<para>
For several releases of Weblogic there has been an issue
- with how Weblogic compiles EJB's that use variable arguments
- in their methods. This is confirmed in the Weblogic 9.X and
- 10.X versions. Seam uses variable arguments in one of its
- internal EJB's (
- <literal>TimerServiceDispatcher</literal>
- ). So Seam will not function correctly without
- modifications.
+ with how Weblogic generates stubs and compiles EJB's that use
+ variable arguments in their methods. This is confirmed in the
+ Weblogic 9.X and 10.0.MP1 versions. Unfortunately the 10.3 version
+ only partially addresses the issue as detailed below.
</para>
-
- <para>
+
+ <section>
+ <title>The <literal>varargs</literal> Issue</title>
+ <para>
The basic explanation of the issue is that the Weblogic EJB
- compiler believes that methods that use
- <literal>varargs</literal>
- are
- <literal>transient</literal>
- and the deployment will fail with exceptions like below:
+ compiler mistakes methods that use <literal>varargs</literal>
+ as having the <literal>transient</literal> modifier. When
+ BEA generates its own stub class from those classes during
+ deployment it fails and the deployment does not succeed. Seam uses
+ variable arguments in one of its internal EJB's (
+ <literal>TimerServiceDispatcher</literal>). If you see exceptions
+ like below during deployment you are running an unpatched version
+ of 10.0.MP1.
+ </para>
<programlisting><![CDATA[java.io.IOException: Compiler failed executable.exec:
/jboss/apps/bea/wlserver_10.0/user_projects/domains/seam_examples/servers/AdminServer
@@ -283,25 +340,54 @@
public transient javax.ejb.Timer scheduleTimedEvent(java.lang.String arg0,
org.jboss.seam.async.TimerSchedule arg1, java.lang.Object[] arg2)]]></programlisting>
<para>
- BEA has created a patch (
+ This issue has been fixed in Weblogic 10.3, and BEA has created
+ a patch for Weblogic 10.0.MP1 (
<literal>CR327275</literal>
) for this issue that can be requested from their
- support. It is rumored that it will be included in the
- final release of Weblogic 10.3, although not confirmed.
+ support.
</para>
<para>
Unfortunately a second issue has been reported and
- verified by BEA (
- <literal>CR363182</literal>
- ). This issue has to do with certain EJB methods
- incorrectly left out of Weblogic's generated internal
- stub classes. At the time of this writing the status of
- this issue is not known. When this issue has been
- patched, and tested with Seam this reference guide
- chapter will be updated.
+ verified by BEA.
</para>
+ </section>
+ <section>
+ <title>Missing EJB Methods Issue</title>
+
+ <para>
+ This issue was only found once the <literal>CR327275</literal>
+ patch had been applied to 10.0.MP1. This new issue has been
+ confirmed by BEA and they created a patch for 10.0.MP1 that
+ addresses this issue. This patch has been referred to as both
+ <literal>CR370259</literal> and <literal>CR363182</literal>. As
+ with the other patch this can be requested through the BEA support.
+ </para>
+ <para>
+ This issue causes certain EJB methods to be
+ incorrectly left out of Weblogic's generated internal stub
+ classes. This results in the following error messages during
+ deployment.
+ </para>
+
+ <programlisting><![CDATA[<<Error> <EJB> <BEA-012036> <Compiling generated EJB classes produced the following Java compiler error message:
+<Compilation Error> TimerServiceDispatcher_qzt5w2_Impl.java: The type TimerServiceDispatcher_qzt5w2_Impl must implement the inherited abstract method TimerServiceDispatcher_qzt5w2_Intf.scheduleTimedEvent(String, Schedule, Object[])
+<Compilation Error> TimerServiceDispatcher_qzt5w2_LocalTimerServiceDispatcherImpl.java: Type mismatch: cannot convert from Object to Timer
+<Compilation Error> TimerServiceDispatcher_qzt5w2_LocalTimerServiceDispatcherImpl.java: Type mismatch: cannot convert from Object to Timer>
+<Error> <Deployer> <BEA-149265> <Failure occurred in the execution of deployment request with ID '1223409267344' for task '0'. Error is: 'weblogic.application.ModuleException: Exception preparing module: EJBModule(jboss-seam.jar)]]></programlisting>
<para>
+ It appears that when Weblogic 10.3 was released the neglected to
+ include this fix!! This means that Weblogic 10.0.MP1 with patches
+ will function correctly, but 10.3 will still require the special
+ Seam jar described below. Not all users have seen this and there
+ may be certain combinations of OS/JRE that do not see this,
+ however is has been seen many times. Hopefully Oracle/BEA will
+ release an updated patch for this issue on 10.3. When they do we
+ will update this reference guide as needed.
+ </para>
+
+ </section>
+ <para>
So that Seam's users can deploy an EJB application to
Weblogic a special Weblogic specific jar has been
created, starting with Seam 2.0.2.CR2. It is located in
@@ -321,9 +407,10 @@
<literal>EAR</literal>
file. The
<literal>jee5/booking</literal>
- example demonstrates this.
+ example demonstrates this. Obviously with this jar you will not
+ be able to use the <literal>TimerServiceDispatcher</literal>
+ functionality.
</para>
- </para>
</section>
<section>
@@ -341,8 +428,8 @@
<listitem>
<para>Copy <literal>hsqldb.jar</literal> to the Weblogic
domain's shared library directory: <literal> cp
- ../../../lib/hsqldb.jar
- /jboss/apps/bea/user_projects/domains/seam_examples/lib
+ $SEAM_HOME/lib/hsqldb.jar
+ $BEA_HOME/user_projects/domains/seam_examples/lib
</literal>
</para>
</listitem>
@@ -357,10 +444,6 @@
Sources</literal>.</para>
</listitem>
<listitem>
- <para>You must lock the domain configuration using the
- button in the upper left box.</para>
- </listitem>
- <listitem>
<para>Then select the <literal>New</literal>
button at the top of the data source table</para>
</listitem>
@@ -413,6 +496,9 @@
empty password fields.</para>
</listitem>
<listitem>
+ <para>Password: leave empty.</para>
+ </listitem>
+ <listitem>
<para>Select <literal>Next</literal>
button</para>
</listitem>
@@ -433,10 +519,12 @@
</para>
</listitem>
<listitem>
- <para>Username: <literal>sa</literal> will
- empty password fields.</para>
+ <para>Username: <literal>sa</literal></para>
</listitem>
<listitem>
+ <para>Password: leave empty.</para>
+ </listitem>
+ <listitem>
<para>Leave the rest of the fields
as is.</para>
</listitem>
@@ -451,105 +539,9 @@
case the only one <literal>AdminServer</literal>.
Click <literal>Next</literal>.</para>
</listitem>
- <listitem>
- <para>Finally - apply the changes by selecting the
- <literal>Apply Changes</literal> button in the
- upper left corner.</para>
- </listitem>
</orderedlist> </para>
</section>
- <section id="weblogic-jsf-deploy">
- <title>Setting up Weblogics JSF Support</title>
- <para>These are the instructions to deploy and configure Weblogic's
- JSF 1.2 libraries. Out of the box Weblogic does not come with its
- own JSF libraries active, and unfortunately when deploying an
- <literal>EAR</literal> based application Weblogic requires its
- own JSF libraries to function. This appears to be caused by
- classloader issues. The assumption being that JSF libraries
- in the application are not visible to Weblogic during deployment of
- the <literal>EAR</literal> application. Why this does not effect
- <literal>WAR</literal> based applications is not known.</para>
-
- <orderedlist>
- <listitem>
- <para>In the administration console navigate to the
- <literal>Deployments</literal> page using the left hand
- menu.</para>
- </listitem>
- <listitem>
- <para>You must lock the domain configuration using the
- button in the upper left box.</para>
- </listitem>
- <listitem>
- <para>Then select the <literal>Install</literal>
- button at the top of the deployments table</para>
- </listitem>
- <listitem>
- <para>Using the directory browser navigate to the
- <literal>/jboss/apps/bea/wlserver_10.0/common/deployable-libraries
- </literal>
- directory. Then select the <literal>jsj-1.2.war</literal>
- archive, and click the <literal>Next</literal> button.</para>
- </listitem>
- <listitem>
- <para>Make sure that the <literal>Install this deployment
- as a library</literal> is selected. Click the <literal>Next
- </literal> button on the <literal>Install Application
- Assistant</literal> page.</para>
- </listitem>
- <listitem>
- <para>Click the <literal>Next</literal> button on the
- <literal> Optional Settings</literal> page.</para>
- </listitem>
- <listitem>
- <para>Make sure that the <literal>Yes, take me to the
- deployment's configuration screen.</literal> is selected.
- Click the <literal>Finish</literal> button on the <literal>
- Review your choices and click Finish</literal> page.</para>
- </listitem>
- <listitem>
- <para>On the <literal>Settings for jsf(1.2,1.2.3.1)</literal>
- page set the <literal>Deployment Order</literal> to
- <literal>99</literal> so that it is deployed prior to
- autodeployed applications. Then click the <literal>
- Save</literal> button.</para>
- </listitem>
- <listitem>
- <para>Then activate the changes by clicking the green
- button in the upper left.</para>
- </listitem>
- </orderedlist>
-
- <para>There is another step that is needed for this to work. For
- some reason, even with the steps above classes in the <literal>
- jsf-api.jar</literal> are not found during application deployment.
- The only way I found for this to work is to put the <literal>
- jsf-api.jar</literal> from <literal>$SEAM/lib</literal> directory
- in the domains shared library
- <literal>/jboss/apps/bea/user_projects/domains/seam_domain/lib</literal>
- </para>
-
- <orderedlist>
- <listitem>
- <para>Shutdown the server following <xref
- linkend="bea_start_stop_access"/></para>
- </listitem>
- <listitem>
- <para>Then execute
- <literal>
-cp ../../../lib/jsf-api.jar /jboss/apps/bea/user_projects/domains/seam_examples/lib
- </literal>. Verify the jar was copied correctly.</para>
- </listitem>
- <listitem>
- <para>Start up the server and navigate to the
- administration console following <xref
- linkend="bea_start_stop_access"/></para>
- </listitem>
- <listitem>
- <para>Then verify a clean start up of the server.</para>
- </listitem>
- </orderedlist>
- </section>
+
<section>
<title>Configuration and Build changes</title>
<para>
@@ -745,30 +737,6 @@
</itemizedlist>
</listitem>
</varlistentry>
- <varlistentry>
- <term>
- <literal>resources/WEB-INF/web.xml</literal>
- </term>
- <listitem>
- <itemizedlist>
- <listitem>
- <para>
- Because the
- <literal>jsf-impl.jar</literal>
- is not going to be in the
- <literal>$WAR/WEB_INF/lib</literal>
- directory we need to add a configuration
- listener to this file.
- </para>
- <programlisting role="XML"><![CDATA[
- <listener>
- <listener-class>com.sun.faces.config.ConfigureListener</listener-class>
- </listener>
-]]></programlisting>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
</variablelist>
</section>
<section>
@@ -784,27 +752,10 @@
<literal>build.xml</literal>
</term>
<listitem>
- <itemizedlist>
+ <itemizedlist>
<listitem>
<para>
- Add the following to the
- <literal>build.xml</literal>
- . Note that
- <literal>richfaces-api.jar</literal>
- is only needed if using the admin console
- to deploy. For some reason Weblogic needs
- it in the
- <literal>WAR</literal>
- when it scans the application.
- </para>
- <programlisting role="XML"><![CDATA[
-<fileset id="war.lib.extras" dir="${seam.dir}">
- <include name="lib/richfaces-api.jar" />
-</fileset>]]></programlisting>
- </listitem>
- <listitem>
- <para>
- Next we need to add the follow so that the
+ We need to add the follow so that the
<literal>
weblogic-application.xml
</literal>
@@ -890,7 +841,7 @@
<programlisting>
cp ./dist/jboss-seam-jee5.ear
- /jboss/apps/bea/user_projects/domains/seam_examples/autodeploy
+ $BEA_HOME/user_projects/domains/seam_examples/autodeploy
</programlisting>
</para>
@@ -905,7 +856,7 @@
<section>
<title> The <literal>jpa</literal> booking example </title>
- <para>This is the Hotel Booking example implemented in Seam POJO and
+ <para>This is the Hotel Booking example implemented with Seam POJOs and
Hibernate JPA and does not require EJB3 support to run. The example
already has a breakout of configurations and build scripts for many of
the common containers including Weblogic 10.X </para>
@@ -971,9 +922,7 @@
Building it only requires running the correct ant
command:
- <programlisting>
- ant weblogic10.xml
- </programlisting>
+ <programlisting>ant weblogic10.xml</programlisting>
This will create a container specific distribution and
exploded archive directories.
</para>
@@ -989,10 +938,8 @@
it into the autodeploy directory.
</para>
- <programlisting>
- cp ./dist-weblogic10/jboss-seam-jpa.war
- /jboss/apps/bea/user_projects/domains/seam_examples/autodeploy
- </programlisting>
+ <programlisting>cp ./dist-weblogic10/jboss-seam-jpa.war
+$BEA_HOME/user_projects/domains/seam_examples/autodeploy</programlisting>
<para>
Check out the application at the following
@@ -1435,7 +1382,7 @@
<varlistentry>
<term>
<literal>
- resources/WEB-INF/jboss-app.xml
+ resources/WEB-INF/jboss-web.xml
</literal>
</term>
<listitem>
@@ -1496,14 +1443,12 @@
</copy>]]></programlisting>
</listitem>
</itemizedlist>
-
</section>
-
<section>
<title><literal>seam-gen</literal> development profile
issue</title>
<para>There is currently an issue with the behavior of the
- <literal>seam-gen WAR</literal> application when built using
+ <literal>seam-gen</literal> application when built using
the development profile (the default) and deployed to Weblogic.
The symptom is that the login page of the application will always
show a <literal>login failed</literal> message.</para>
@@ -1512,21 +1457,18 @@
the <literal>action</literal> class files are placed in the
<literal>WEB-INF/dev</literal> directory. Normally these
class files are hot deployable and managed by Seam. This does not
- happen on Weblogic (see <ulink
- url="http://jira.jboss.com/jira/browse/JBSEAM-2455">
- jira JBSEAM-2455</ulink> for details and status).</para>
+ happen on Weblogic. This is fixed in 2.1.0.GA and above</para>
<para>To workaround this you need to modify the
<literal>build-dev.properties</literal> file. Simply
remove the property
<literal>action.dir=WEB-INF/dev</literal>.</para>
</section>
-
</section>
<section>
<title>Building and Deploying your application</title>
- <para>Finally all that's left is deploying the application. This
+ <para>All that's left is deploying the application. This
involves setting up a data source, building the app, and deploying
it.</para>
@@ -1568,5 +1510,4 @@
</section>
</section>
</section>
-
</chapter>
Modified: branches/community/Seam_2_0/examples/jee5/readme.txt
===================================================================
--- branches/community/Seam_2_0/examples/jee5/readme.txt 2008-10-08 18:31:00 UTC (rev 9231)
+++ branches/community/Seam_2_0/examples/jee5/readme.txt 2008-10-08 18:43:43 UTC (rev 9232)
@@ -125,18 +125,18 @@
http://hibernate.org/250.html#A23). You can also work around this by putting the hibernate
jars in $ORACLE_HOME/j2ee/home/applib/
-WebLogic 10.MP1
+WebLogic 10.3
---------------------------
Weblogic support requires some specific patches from Oracle/BEA so that their
EJB3 support fuctions correctly. Please refer to the Seam reference guide for
additional information.
-- http://docs.jboss.com/seam/2.0.3.CR1/reference/en-US/html/weblogic.html
+- http://seamframework.org/Documentation
WebSphere 6.1.0.13 with EJB3 feature pack
---------------------------
The instructions for integration with Websphere are fairly verbose. Please
refer to the Seam reference guide for additional information.
-- http://docs.jboss.com/seam/2.0.3.CR1/reference/en-US/html/websphere.html
+- http://seamframework.org/Documentation
\ No newline at end of file
16 years, 1 month
Seam SVN: r9231 - in trunk: examples/jee5 and 1 other directory.
by seam-commits@lists.jboss.org
Author: jbalunas(a)redhat.com
Date: 2008-10-08 14:31:00 -0400 (Wed, 08 Oct 2008)
New Revision: 9231
Modified:
trunk/doc/Seam_Reference_Guide/en-US/Weblogic.xml
trunk/examples/jee5/readme.txt
Log:
JBSEAM-3076 updated weblogic reference guide
Modified: trunk/doc/Seam_Reference_Guide/en-US/Weblogic.xml
===================================================================
--- trunk/doc/Seam_Reference_Guide/en-US/Weblogic.xml 2008-10-08 17:51:27 UTC (rev 9230)
+++ trunk/doc/Seam_Reference_Guide/en-US/Weblogic.xml 2008-10-08 18:31:00 UTC (rev 9231)
@@ -1,52 +1,50 @@
<chapter id="weblogic">
<title>Seam on BEA's Weblogic</title>
- <para> Weblogic 10.X is BEA's JEE5 server offering, currently 10.0.MP1 is
- their stable release, and 10.3.TP is their latest tech preview release.
- Seam applications can be deployed and developed on Weblogic servers, and
+ <para> Weblogic 10.3 is BEA's latest stable JEE5 server offering. Seam
+ applications can be deployed and developed on Weblogic servers, and
this chapter will show you how. There are some known issues with the
Weblogic servers that will need to be worked around, and configuration
- changes that are needed. </para>
+ changes that are needed specific to Weblogic. </para>
- <para> First step is to get Weblogic downloaded, installed and running (no
- small feat). Then we'll talk about Seam's JEE5 example and the hurdles to
+ <para> First step is to get Weblogic downloaded, installed and running. Then
+ we'll talk about Seam's JEE5 example and the hurdles to
getting it running. After that, the JPA example will
- be modified and deployed to the server. Then finally we will create a
+ be deployed to the server. Then finally we will create a
<literal>seam-gen</literal> application and get it up and running to
provide a jump start to your own application. </para>
<section>
<title>Installation and operation of Weblogic</title>
- <para> First things first we need to get the server installed - and there
- is a choice to be made. Weblogic 10.0.MP1 is the most recent stable
- release, while 10.3.TP is a technical preview version that fixes some
- things and breaks others. </para>
+ <para> First things first we need to get the server installed. There are
+ some outstanding issues that were not addressed in 10.3, but it does
+ solve some of the issues discussed below without the need for BEA
+ patches. The previous release 10.0.MP1 is also available, but
+ requires some BEA patches to function correctly. </para>
<itemizedlist>
<listitem>
<para><literal>Weblogic 10.0.MP1</literal>
— <ulink
-url="http://commerce.bea.com/showproduct.jsp?family=WLS&major=10&minor=1">
+url="http://www.oracle.com/technology/software/products/ias/htdocs/wls_main.html">
Download page </ulink></para>
- <para> 10.0.MP1 has a known issue with EJBs that use
+ <para> 10.0.MP1 has some known issues with EJBs that use
<literal>varargs</literal> in their methods (it confuses them
- as <literal>transient</literal> ). This causes exceptions
- when Weblogic attempts to compile the Seam EJBs. There is a BEA
- support patch available to fix this issue, but BEA is currently
- working on a second issue related to the EJBs. See the
- <literal>jee5/booking</literal> example for more details. </para>
+ as <literal>transient</literal> ), as well as some others.
+ See <xref linkend="weblogic-ejb-issues" /> for full details on
+ the issues and the work around.</para>
</listitem>
<listitem>
- <para><literal>Weblogic 10.3.TP</literal>
+ <para><literal>Weblogic 10.3</literal>
— <ulink
-url="http://commerce.bea.com/showproduct.jsp?family=WLS&major=10.3Tech&...">
+url="http://www.oracle.com/technology/software/products/ias/htdocs/wls_main.html">
Download page </ulink></para>
- <para> This version still has not fixed the
- <literal>varargs</literal> bug, and there is a new issue with
- EJBs that do not use <literal>kodo</literal> (BEA's
- implementation of JPA). BEA has said that the <literal>varargs
- </literal> issue will be resolved in the final version of 10.3,
- but the <literal>kodo</literal> issue is a blocker for getting
- the <literal>jee5/booking</literal> working.
+ <para> This is the latest stable release of the Weblogic server,
+ and the one that will be used with the examples below. This
+ version has addressed some of the issues with EJBs that were in
+ 10.0.MP1. However one of the changes did not make it into this
+ release. See <xref linkend="weblogic-ejb-issues" /> for the
+ details, but because of this we still need to use the special
+ Weblogic seam jar discussed below.
</para>
</listitem>
</itemizedlist>
@@ -58,20 +56,20 @@
been created that does not contain the <literal>TimerServiceDispatcher
</literal>. This is the EJB that uses <literal>varargs</literal> and
exposes the second EJB issue. We will be using this jar for the
- <literal>jee5/booking</literal> example, as it avoids both known BEA
+ <literal>jee5/booking</literal> example, as it avoids the known BEA
issues.
</para>
</note>
<section>
- <title>Installing 10.0.MP1</title>
+ <title>Installing 10.3</title>
<para>
- Here are the quick steps to installing Weblogic 10.1.MP1.
+ Here are the quick steps to installing Weblogic 10.3.
For more details or if you are having any issues please
check with the BEA docs at the
- <ulink url="http://e-docs.bea.com/wls/docs100/index.html">
- Weblogic 10.0 Doc Center
+ <ulink url="http://edocs.bea.com/wls/docs103/">
+ Weblogic 10.3 Doc Center
</ulink>
. Here we install the RHEL 5 version using the graphical
installer:
@@ -79,19 +77,19 @@
<orderedlist>
<listitem>
- <para> Follow the link given above for 10.0.MP1 and download the
+ <para> Follow the link given above for 10.3 and download the
correct version for your environment. You will need to sign up
- for an account with BEA in order to do this. </para>
+ for an account with Oracle in order to do this. </para>
</listitem>
<listitem>
<para> You may need to change the the
- <literal>server1001_XX.bin</literal> file to be
+ <literal>server103_XX.bin</literal> file to be
executable: </para>
- <programlisting>chmod a+x server1001_XX.bin</programlisting>
+ <programlisting>chmod a+x server103_XX.bin</programlisting>
</listitem>
<listitem>
<para> Execute the install: </para>
- <programlisting>./server1001_XX.bin</programlisting>
+ <programlisting>./server103_XX.bin</programlisting>
</listitem>
<listitem>
<para> When the graphical install loads, you need to set the BEA
@@ -108,9 +106,8 @@
it will not hurt. </para>
</listitem>
<listitem>
- <para> Then you need to tell it where to install the server
- components: </para>
- <programlisting>$BEA_HOME/wlserver_10.0</programlisting>
+ <para> You can leave the defaults for the component installation
+ locations on the next page.</para>
</listitem>
</orderedlist>
</section>
@@ -124,7 +121,7 @@
<orderedlist>
<listitem>
<para> Start up the Weblogic configuration wizard:</para>
- <programlisting>$BEA_HOME/wlserver_10.0/common/bin/config.sh
+ <programlisting>$BEA_HOME/wlserver_10.3/common/bin/config.sh
</programlisting>
</listitem>
<listitem>
@@ -204,10 +201,6 @@
or <literal>Force shutdown now</literal>
as appropriate. </para>
</listitem>
- <listitem>
- <para> Then finally confirm that you want to
- shut this server down. </para>
- </listitem>
</orderedlist> </para>
</listitem>
<listitem>
@@ -223,17 +216,77 @@
<para><note>
<title>A note on Weblogic classloading</title>
<para>When using the
- <literal>@DOMAIN/autodeploy</literal> directory as
+ <literal>/autodeploy</literal> directory as
described in this chapter you may see
- <literal>NoClassDefFound</literal> exceptions. If
- you see this try restarting the Weblogic server. If you
- still see it remove the auto-deployed EAR/WAR files,
- restart the server, and redeploy. We could not find a
- specific reason for this, but others seem to be having this
- issue as well. </para> </note></para>
+ <literal>NoClassDefFound</literal> exceptions during
+ redeployment's. If you see this try restarting the Weblogic
+ server. If you still see it remove the auto-deployed
+ EAR/WAR files, restart the server, and redeploy. We could
+ not find a specific reason for this, but others seem to be
+ having this issue as well. </para> </note></para>
</listitem>
</itemizedlist>
- </section>
+ </section>
+ <section id="weblogic-jsf-deploy">
+ <title>Setting up Weblogic's JSF Support</title>
+ <para>These are the instructions to deploy and configure Weblogic's
+ JSF 1.2 libraries. Out of the box Weblogic does not come with its
+ own JSF libraries active. For complete details see
+ <ulink url="http://edocs.bea.com/wls/docs103/webapp/configurejsfandjtsl.html">
+ Weblogic 10.3 Configuring JSF and JSTL Libraries
+ </ulink></para>
+
+ <orderedlist>
+ <listitem>
+ <para>In the administration console navigate to the
+ <literal>Deployments</literal> page using the left hand
+ menu.</para>
+ </listitem>
+ <listitem>
+ <para>Then select the <literal>Install</literal>
+ button at the top of the deployments table</para>
+ </listitem>
+ <listitem>
+ <para>Using the directory browser navigate to the
+ <literal>$BEA_HOME/wlserver_10.3/common/deployable-libraries
+ </literal>
+ directory. Then select the <literal>jsf-1.2.war</literal>
+ archive, and click the <literal>Next</literal> button.</para>
+ </listitem>
+ <listitem>
+ <para>Make sure that the <literal>Install this deployment
+ as a library</literal> is selected. Click the <literal>
+ Next </literal> button on the <literal>Install Application
+ Assistant</literal> page.</para>
+ </listitem>
+ <listitem>
+ <para>Click the <literal>Next</literal> button on the
+ <literal> Optional Settings</literal> page.</para>
+ </listitem>
+ <listitem>
+ <para>Make sure that the <literal>Yes, take me to the
+ deployment's configuration screen.</literal> is selected.
+ Click the <literal>Finish</literal> button on the <literal>
+ Review your choices and click Finish</literal> page.</para>
+ </listitem>
+ <listitem>
+ <para>On the <literal>Settings for jsf(1.2,1.2.3.1)</literal>
+ page set the <literal>Deployment Order</literal> to
+ <literal>99</literal> so that it is deployed prior to
+ auto deployed applications. Then click the <literal>
+ Save</literal> button.</para>
+ </listitem>
+ </orderedlist>
+
+ <para>There is another step that is needed for this to work. For
+ some reason, even with the steps above classes in the <literal>
+ jsf-api.jar</literal> are not found during application deployment.
+ The only way for this to work is to put the <literal>
+ javax.jsf_1.2.0.0.jar</literal> (the jsf-api.jar) from
+ <literal>jsf-1.2.war</literal> in the domains shared library.
+ This requires a restart of the server.
+ </para>
+ </section>
</section>
<section>
@@ -241,32 +294,36 @@
<para>
Do you want to run Seam using EJB's on Weblogic? If so there
- are some obstacles that you will have to avoid. This section
- describes those obstacles and what changes are needed to the
- <literal>jee5/booking</literal>
+ are some obstacles that you will have to avoid, or some patches that
+ are needed from BEA. This section describes those obstacles and what
+ changes are needed to the <literal>jee5/booking</literal>
example to get it deployed and functioning.
</para>
<section id="weblogic-ejb-issues">
<title>EJB3 Issues with Weblogic</title>
+
<para>
For several releases of Weblogic there has been an issue
- with how Weblogic compiles EJB's that use variable arguments
- in their methods. This is confirmed in the Weblogic 9.X and
- 10.X versions. Seam uses variable arguments in one of its
- internal EJB's (
- <literal>TimerServiceDispatcher</literal>
- ). So Seam will not function correctly without
- modifications.
+ with how Weblogic generates stubs and compiles EJB's that use
+ variable arguments in their methods. This is confirmed in the
+ Weblogic 9.X and 10.0.MP1 versions. Unfortunately the 10.3 version
+ only partially addresses the issue as detailed below.
</para>
-
- <para>
+
+ <section>
+ <title>The <literal>varargs</literal> Issue</title>
+ <para>
The basic explanation of the issue is that the Weblogic EJB
- compiler believes that methods that use
- <literal>varargs</literal>
- are
- <literal>transient</literal>
- and the deployment will fail with exceptions like below:
+ compiler mistakes methods that use <literal>varargs</literal>
+ as having the <literal>transient</literal> modifier. When
+ BEA generates its own stub class from those classes during
+ deployment it fails and the deployment does not succeed. Seam uses
+ variable arguments in one of its internal EJB's (
+ <literal>TimerServiceDispatcher</literal>). If you see exceptions
+ like below during deployment you are running an unpatched version
+ of 10.0.MP1.
+ </para>
<programlisting><![CDATA[java.io.IOException: Compiler failed executable.exec:
/jboss/apps/bea/wlserver_10.0/user_projects/domains/seam_examples/servers/AdminServer
@@ -283,25 +340,54 @@
public transient javax.ejb.Timer scheduleTimedEvent(java.lang.String arg0,
org.jboss.seam.async.TimerSchedule arg1, java.lang.Object[] arg2)]]></programlisting>
<para>
- BEA has created a patch (
+ This issue has been fixed in Weblogic 10.3, and BEA has created
+ a patch for Weblogic 10.0.MP1 (
<literal>CR327275</literal>
) for this issue that can be requested from their
- support. It is rumored that it will be included in the
- final release of Weblogic 10.3, although not confirmed.
+ support.
</para>
<para>
Unfortunately a second issue has been reported and
- verified by BEA (
- <literal>CR363182</literal>
- ). This issue has to do with certain EJB methods
- incorrectly left out of Weblogic's generated internal
- stub classes. At the time of this writing the status of
- this issue is not known. When this issue has been
- patched, and tested with Seam this reference guide
- chapter will be updated.
+ verified by BEA.
</para>
+ </section>
+ <section>
+ <title>Missing EJB Methods Issue</title>
+
+ <para>
+ This issue was only found once the <literal>CR327275</literal>
+ patch had been applied to 10.0.MP1. This new issue has been
+ confirmed by BEA and they created a patch for 10.0.MP1 that
+ addresses this issue. This patch has been referred to as both
+ <literal>CR370259</literal> and <literal>CR363182</literal>. As
+ with the other patch this can be requested through the BEA support.
+ </para>
+ <para>
+ This issue causes certain EJB methods to be
+ incorrectly left out of Weblogic's generated internal stub
+ classes. This results in the following error messages during
+ deployment.
+ </para>
+
+ <programlisting><![CDATA[<<Error> <EJB> <BEA-012036> <Compiling generated EJB classes produced the following Java compiler error message:
+<Compilation Error> TimerServiceDispatcher_qzt5w2_Impl.java: The type TimerServiceDispatcher_qzt5w2_Impl must implement the inherited abstract method TimerServiceDispatcher_qzt5w2_Intf.scheduleTimedEvent(String, Schedule, Object[])
+<Compilation Error> TimerServiceDispatcher_qzt5w2_LocalTimerServiceDispatcherImpl.java: Type mismatch: cannot convert from Object to Timer
+<Compilation Error> TimerServiceDispatcher_qzt5w2_LocalTimerServiceDispatcherImpl.java: Type mismatch: cannot convert from Object to Timer>
+<Error> <Deployer> <BEA-149265> <Failure occurred in the execution of deployment request with ID '1223409267344' for task '0'. Error is: 'weblogic.application.ModuleException: Exception preparing module: EJBModule(jboss-seam.jar)]]></programlisting>
<para>
+ It appears that when Weblogic 10.3 was released the neglected to
+ include this fix!! This means that Weblogic 10.0.MP1 with patches
+ will function correctly, but 10.3 will still require the special
+ Seam jar described below. Not all users have seen this and there
+ may be certain combinations of OS/JRE that do not see this,
+ however is has been seen many times. Hopefully Oracle/BEA will
+ release an updated patch for this issue on 10.3. When they do we
+ will update this reference guide as needed.
+ </para>
+
+ </section>
+ <para>
So that Seam's users can deploy an EJB application to
Weblogic a special Weblogic specific jar has been
created, starting with Seam 2.0.2.CR2. It is located in
@@ -321,9 +407,10 @@
<literal>EAR</literal>
file. The
<literal>jee5/booking</literal>
- example demonstrates this.
+ example demonstrates this. Obviously with this jar you will not
+ be able to use the <literal>TimerServiceDispatcher</literal>
+ functionality.
</para>
- </para>
</section>
<section>
@@ -341,8 +428,8 @@
<listitem>
<para>Copy <literal>hsqldb.jar</literal> to the Weblogic
domain's shared library directory: <literal> cp
- ../../../lib/hsqldb.jar
- /jboss/apps/bea/user_projects/domains/seam_examples/lib
+ $SEAM_HOME/lib/hsqldb.jar
+ $BEA_HOME/user_projects/domains/seam_examples/lib
</literal>
</para>
</listitem>
@@ -357,10 +444,6 @@
Sources</literal>.</para>
</listitem>
<listitem>
- <para>You must lock the domain configuration using the
- button in the upper left box.</para>
- </listitem>
- <listitem>
<para>Then select the <literal>New</literal>
button at the top of the data source table</para>
</listitem>
@@ -413,6 +496,9 @@
empty password fields.</para>
</listitem>
<listitem>
+ <para>Password: leave empty.</para>
+ </listitem>
+ <listitem>
<para>Select <literal>Next</literal>
button</para>
</listitem>
@@ -433,10 +519,12 @@
</para>
</listitem>
<listitem>
- <para>Username: <literal>sa</literal> will
- empty password fields.</para>
+ <para>Username: <literal>sa</literal></para>
</listitem>
<listitem>
+ <para>Password: leave empty.</para>
+ </listitem>
+ <listitem>
<para>Leave the rest of the fields
as is.</para>
</listitem>
@@ -451,105 +539,9 @@
case the only one <literal>AdminServer</literal>.
Click <literal>Next</literal>.</para>
</listitem>
- <listitem>
- <para>Finally - apply the changes by selecting the
- <literal>Apply Changes</literal> button in the
- upper left corner.</para>
- </listitem>
</orderedlist> </para>
</section>
- <section id="weblogic-jsf-deploy">
- <title>Setting up Weblogics JSF Support</title>
- <para>These are the instructions to deploy and configure Weblogic's
- JSF 1.2 libraries. Out of the box Weblogic does not come with its
- own JSF libraries active, and unfortunately when deploying an
- <literal>EAR</literal> based application Weblogic requires its
- own JSF libraries to function. This appears to be caused by
- classloader issues. The assumption being that JSF libraries
- in the application are not visible to Weblogic during deployment of
- the <literal>EAR</literal> application. Why this does not effect
- <literal>WAR</literal> based applications is not known.</para>
-
- <orderedlist>
- <listitem>
- <para>In the administration console navigate to the
- <literal>Deployments</literal> page using the left hand
- menu.</para>
- </listitem>
- <listitem>
- <para>You must lock the domain configuration using the
- button in the upper left box.</para>
- </listitem>
- <listitem>
- <para>Then select the <literal>Install</literal>
- button at the top of the deployments table</para>
- </listitem>
- <listitem>
- <para>Using the directory browser navigate to the
- <literal>/jboss/apps/bea/wlserver_10.0/common/deployable-libraries
- </literal>
- directory. Then select the <literal>jsj-1.2.war</literal>
- archive, and click the <literal>Next</literal> button.</para>
- </listitem>
- <listitem>
- <para>Make sure that the <literal>Install this deployment
- as a library</literal> is selected. Click the <literal>Next
- </literal> button on the <literal>Install Application
- Assistant</literal> page.</para>
- </listitem>
- <listitem>
- <para>Click the <literal>Next</literal> button on the
- <literal> Optional Settings</literal> page.</para>
- </listitem>
- <listitem>
- <para>Make sure that the <literal>Yes, take me to the
- deployment's configuration screen.</literal> is selected.
- Click the <literal>Finish</literal> button on the <literal>
- Review your choices and click Finish</literal> page.</para>
- </listitem>
- <listitem>
- <para>On the <literal>Settings for jsf(1.2,1.2.3.1)</literal>
- page set the <literal>Deployment Order</literal> to
- <literal>99</literal> so that it is deployed prior to
- autodeployed applications. Then click the <literal>
- Save</literal> button.</para>
- </listitem>
- <listitem>
- <para>Then activate the changes by clicking the green
- button in the upper left.</para>
- </listitem>
- </orderedlist>
-
- <para>There is another step that is needed for this to work. For
- some reason, even with the steps above classes in the <literal>
- jsf-api.jar</literal> are not found during application deployment.
- The only way I found for this to work is to put the <literal>
- jsf-api.jar</literal> from <literal>$SEAM/lib</literal> directory
- in the domains shared library
- <literal>/jboss/apps/bea/user_projects/domains/seam_domain/lib</literal>
- </para>
-
- <orderedlist>
- <listitem>
- <para>Shutdown the server following <xref
- linkend="bea_start_stop_access"/></para>
- </listitem>
- <listitem>
- <para>Then execute
- <literal>
-cp ../../../lib/jsf-api.jar /jboss/apps/bea/user_projects/domains/seam_examples/lib
- </literal>. Verify the jar was copied correctly.</para>
- </listitem>
- <listitem>
- <para>Start up the server and navigate to the
- administration console following <xref
- linkend="bea_start_stop_access"/></para>
- </listitem>
- <listitem>
- <para>Then verify a clean start up of the server.</para>
- </listitem>
- </orderedlist>
- </section>
+
<section>
<title>Configuration and Build changes</title>
<para>
@@ -745,30 +737,6 @@
</itemizedlist>
</listitem>
</varlistentry>
- <!-- <varlistentry>
- <term>
- <literal>resources/WEB-INF/web.xml</literal>
- </term>
- <listitem>
- <itemizedlist>
- <listitem>
- <para>
- Because the
- <literal>jsf-impl.jar</literal>
- is not going to be in the
- <literal>$WAR/WEB_INF/lib</literal>
- directory we need to add a configuration
- listener to this file.
- </para>
- <programlisting role="XML"><![CDATA[
- <listener>
- <listener-class>com.sun.faces.config.ConfigureListener</listener-class>
- </listener>
-]]></programlisting>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry> -->
</variablelist>
</section>
<section>
@@ -784,31 +752,10 @@
<literal>build.xml</literal>
</term>
<listitem>
- <itemizedlist>
+ <itemizedlist>
<listitem>
<para>
- Add the following to the
- <literal>build.xml</literal>
- . Note that
- <literal>richfaces-api.jar</literal>
- is only needed if using the admin console
- to deploy. For some reason Weblogic needs
- it in the
- <literal>WAR</literal>
- when it scans the application. There is some weird issue with
- configuration of JSF. As workaround add also jsf-impl.jar from seam
- distribution into WEB-INF/lib directory.
-
- </para>
- <programlisting role="XML"><![CDATA[
-<fileset id="war.lib.extras" dir="${seam.dir}">
- <include name="lib/richfaces-api.jar" />
- <include name="lib/jsf-impl.jar" />
-</fileset>]]></programlisting>
- </listitem>
- <listitem>
- <para>
- Next we need to add the follow so that the
+ We need to add the follow so that the
<literal>
weblogic-application.xml
</literal>
@@ -894,7 +841,7 @@
<programlisting>
cp ./dist/jboss-seam-jee5.ear
- /jboss/apps/bea/user_projects/domains/seam_examples/autodeploy
+ $BEA_HOME/user_projects/domains/seam_examples/autodeploy
</programlisting>
</para>
@@ -909,7 +856,7 @@
<section>
<title> The <literal>jpa</literal> booking example </title>
- <para>This is the Hotel Booking example implemented in Seam POJO and
+ <para>This is the Hotel Booking example implemented with Seam POJOs and
Hibernate JPA and does not require EJB3 support to run. The example
already has a breakout of configurations and build scripts for many of
the common containers including Weblogic 10.X </para>
@@ -975,9 +922,7 @@
Building it only requires running the correct ant
command:
- <programlisting>
- ant weblogic10.xml
- </programlisting>
+ <programlisting>ant weblogic10.xml</programlisting>
This will create a container specific distribution and
exploded archive directories.
</para>
@@ -993,10 +938,8 @@
it into the autodeploy directory.
</para>
- <programlisting>
- cp ./dist-weblogic10/jboss-seam-jpa.war
- /jboss/apps/bea/user_projects/domains/seam_examples/autodeploy
- </programlisting>
+ <programlisting>cp ./dist-weblogic10/jboss-seam-jpa.war
+$BEA_HOME/user_projects/domains/seam_examples/autodeploy</programlisting>
<para>
Check out the application at the following
@@ -1439,7 +1382,7 @@
<varlistentry>
<term>
<literal>
- resources/WEB-INF/jboss-app.xml
+ resources/WEB-INF/jboss-web.xml
</literal>
</term>
<listitem>
@@ -1500,37 +1443,12 @@
</copy>]]></programlisting>
</listitem>
</itemizedlist>
-
</section>
-
- <section>
- <title><literal>seam-gen</literal> development profile
- issue</title>
- <para>There is currently an issue with the behavior of the
- <literal>seam-gen WAR</literal> application when built using
- the development profile (the default) and deployed to Weblogic.
- The symptom is that the login page of the application will always
- show a <literal>login failed</literal> message.</para>
-
- <para>When the application is built using the development profile
- the <literal>action</literal> class files are placed in the
- <literal>WEB-INF/dev</literal> directory. Normally these
- class files are hot deployable and managed by Seam. This does not
- happen on Weblogic (see <ulink
- url="http://jira.jboss.com/jira/browse/JBSEAM-2455">
- jira JBSEAM-2455</ulink> for details and status).</para>
-
- <para>To workaround this you need to modify the
- <literal>build-dev.properties</literal> file. Simply
- remove the property
- <literal>action.dir=WEB-INF/dev</literal>.</para>
- </section>
-
</section>
<section>
<title>Building and Deploying your application</title>
- <para>Finally all that's left is deploying the application. This
+ <para>All that's left is deploying the application. This
involves setting up a data source, building the app, and deploying
it.</para>
@@ -1572,5 +1490,4 @@
</section>
</section>
</section>
-
</chapter>
Modified: trunk/examples/jee5/readme.txt
===================================================================
--- trunk/examples/jee5/readme.txt 2008-10-08 17:51:27 UTC (rev 9230)
+++ trunk/examples/jee5/readme.txt 2008-10-08 18:31:00 UTC (rev 9231)
@@ -125,7 +125,7 @@
http://hibernate.org/250.html#A23). You can also work around this by putting the hibernate
jars in $ORACLE_HOME/j2ee/home/applib/
-WebLogic 10.MP1
+WebLogic 10.3
---------------------------
Weblogic support requires some specific patches from Oracle/BEA so that their
EJB3 support fuctions correctly. Please refer to the Seam reference guide for
16 years, 1 month
Seam SVN: r9230 - in trunk: src/main/org/jboss/seam/deployment and 1 other directories.
by seam-commits@lists.jboss.org
Author: jbalunas(a)redhat.com
Date: 2008-10-08 13:51:27 -0400 (Wed, 08 Oct 2008)
New Revision: 9230
Modified:
trunk/seam-gen/build-scripts/build-dev.properties
trunk/src/main/org/jboss/seam/deployment/HotDeploymentStrategy.java
trunk/src/main/org/jboss/seam/init/Initialization.java
Log:
JBSEAM-2455 - fixed hot deployment on weblogic servers
Modified: trunk/seam-gen/build-scripts/build-dev.properties
===================================================================
--- trunk/seam-gen/build-scripts/build-dev.properties 2008-10-08 10:41:32 UTC (rev 9229)
+++ trunk/seam-gen/build-scripts/build-dev.properties 2008-10-08 17:51:27 UTC (rev 9230)
@@ -1,2 +1,2 @@
debug=true
-action.dir=WEB-INF/dev
+action.dir=/WEB-INF/dev
Modified: trunk/src/main/org/jboss/seam/deployment/HotDeploymentStrategy.java
===================================================================
--- trunk/src/main/org/jboss/seam/deployment/HotDeploymentStrategy.java 2008-10-08 10:41:32 UTC (rev 9229)
+++ trunk/src/main/org/jboss/seam/deployment/HotDeploymentStrategy.java 2008-10-08 17:51:27 UTC (rev 9230)
@@ -22,7 +22,7 @@
/**
* The default path at which hot deployable Seam components are placed
*/
- public static final String DEFAULT_HOT_DEPLOYMENT_DIRECTORY_PATH = "WEB-INF/dev";
+ public static final String DEFAULT_HOT_DEPLOYMENT_DIRECTORY_PATH = "/WEB-INF/dev";
/**
* The contextual variable name this deployment strategy is made available at
Modified: trunk/src/main/org/jboss/seam/init/Initialization.java
===================================================================
--- trunk/src/main/org/jboss/seam/init/Initialization.java 2008-10-08 10:41:32 UTC (rev 9229)
+++ trunk/src/main/org/jboss/seam/init/Initialization.java 2008-10-08 17:51:27 UTC (rev 9230)
@@ -810,7 +810,11 @@
realPath = resourcePath.getPath();
}
}
- catch (MalformedURLException e) {}
+ catch (MalformedURLException e)
+ {
+ log.warn("Unable to determine real path from servlet context for : " + path);
+ log.debug("Caused by MalformedURLException", e);
+ }
}
16 years, 1 month
Seam SVN: r9229 - trunk/examples/spring/resources/WEB-INF.
by seam-commits@lists.jboss.org
Author: shane.bryzak(a)jboss.com
Date: 2008-10-08 06:41:32 -0400 (Wed, 08 Oct 2008)
New Revision: 9229
Modified:
trunk/examples/spring/resources/WEB-INF/pages.xml
Log:
JBSEAM-3528
Modified: trunk/examples/spring/resources/WEB-INF/pages.xml
===================================================================
--- trunk/examples/spring/resources/WEB-INF/pages.xml 2008-10-08 10:37:34 UTC (rev 9228)
+++ trunk/examples/spring/resources/WEB-INF/pages.xml 2008-10-08 10:41:32 UTC (rev 9229)
@@ -2,7 +2,6 @@
<pages xmlns="http://jboss.com/products/seam/pages"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://jboss.com/products/seam/pages http://jboss.com/products/seam/pages-2.1.xsd"
- login-view-id="/home.xhtml"
no-conversation-view-id="/main.xhtml">
<page view-id="/register.xhtml">
@@ -28,8 +27,16 @@
</page>
- <page view-id="/password.xhtml" login-required="true">
+ <page view-id="/password.xhtml">
+ <action execute="#{login.validateLogin}"/>
+
+ <navigation from-action="#{login.validateLogin}">
+ <rule if="#{not login.loggedIn}">
+ <redirect view-id="/home.xhtml"/>
+ </rule>
+ </navigation>
+
<navigation>
<rule if="#{changePassword.changed}">
<redirect view-id="/main.xhtml"/>
16 years, 1 month
Seam SVN: r9227 - trunk/examples/spring.
by seam-commits@lists.jboss.org
Author: shane.bryzak(a)jboss.com
Date: 2008-10-08 04:43:49 -0400 (Wed, 08 Oct 2008)
New Revision: 9227
Modified:
trunk/examples/spring/readme.txt
Log:
Typo
Modified: trunk/examples/spring/readme.txt
===================================================================
--- trunk/examples/spring/readme.txt 2008-10-08 08:39:26 UTC (rev 9226)
+++ trunk/examples/spring/readme.txt 2008-10-08 08:43:49 UTC (rev 9227)
@@ -1,4 +1,4 @@
-SeamBay Example
+Spring Example
===============
This example shows Seam/Spring integration.
Currently it runs on JBoss AS 4.2 only.
16 years, 1 month
Seam SVN: r9226 - trunk/doc/Seam_Reference_Guide/en-US.
by seam-commits@lists.jboss.org
Author: shane.bryzak(a)jboss.com
Date: 2008-10-08 04:39:26 -0400 (Wed, 08 Oct 2008)
New Revision: 9226
Modified:
trunk/doc/Seam_Reference_Guide/en-US/Conversations.xml
Log:
JBSEAM-2680
Modified: trunk/doc/Seam_Reference_Guide/en-US/Conversations.xml
===================================================================
--- trunk/doc/Seam_Reference_Guide/en-US/Conversations.xml 2008-10-08 08:29:48 UTC (rev 9225)
+++ trunk/doc/Seam_Reference_Guide/en-US/Conversations.xml 2008-10-08 08:39:26 UTC (rev 9226)
@@ -132,14 +132,14 @@
request parameter:
</para>
- <programlisting role="XHTML"><![CDATA[<a href="main.jsf?conversationId=#{conversation.id}">Continue</a>]]></programlisting>
+ <programlisting role="XHTML"><![CDATA[<a href="main.jsf?#{manager.conversationIdParameter}=#{conversation.id}">Continue</a>]]></programlisting>
<para>
Or, the more JSF-ish:
</para>
<programlisting role="XHTML"><![CDATA[<h:outputLink value="main.jsf">
- <f:param name="conversationId" value="#{conversation.id}"/>
+ <f:param name="#{manager.conversationIdParameter}" value="#{conversation.id}"/>
<h:outputText value="Continue"/>
</h:outputLink>]]></programlisting>
16 years, 1 month
Seam SVN: r9225 - trunk/doc/Seam_Reference_Guide/en-US.
by seam-commits@lists.jboss.org
Author: dan.j.allen
Date: 2008-10-08 04:29:48 -0400 (Wed, 08 Oct 2008)
New Revision: 9225
Modified:
trunk/doc/Seam_Reference_Guide/en-US/Gettingstarted.xml
trunk/doc/Seam_Reference_Guide/en-US/Groovy.xml
Log:
JBSEAM-3529
Modified: trunk/doc/Seam_Reference_Guide/en-US/Gettingstarted.xml
===================================================================
--- trunk/doc/Seam_Reference_Guide/en-US/Gettingstarted.xml 2008-10-08 08:16:29 UTC (rev 9224)
+++ trunk/doc/Seam_Reference_Guide/en-US/Gettingstarted.xml 2008-10-08 08:29:48 UTC (rev 9225)
@@ -218,10 +218,10 @@
new-action:
[echo] Creating a new stateless session bean component with an action method
- [copy] Copying 1 file to C:\Projects\helloworld\src\action\org\jboss\helloworld
- [copy] Copying 1 file to C:\Projects\helloworld\src\action\org\jboss\helloworld
- [copy] Copying 1 file to C:\Projects\helloworld\src\action\org\jboss\helloworld\test
- [copy] Copying 1 file to C:\Projects\helloworld\src\action\org\jboss\helloworld\test
+ [copy] Copying 1 file to C:\Projects\helloworld\src\hot\org\jboss\helloworld
+ [copy] Copying 1 file to C:\Projects\helloworld\src\hot\org\jboss\helloworld
+ [copy] Copying 1 file to C:\Projects\helloworld\src\hot\org\jboss\helloworld\test
+ [copy] Copying 1 file to C:\Projects\helloworld\src\hot\org\jboss\helloworld\test
[copy] Copying 1 file to C:\Projects\helloworld\view
[echo] Type 'seam restart' and go to http://localhost:8080/helloworld/ping.seam
@@ -274,11 +274,11 @@
new-form:
[echo] Creating a new stateful session bean component with an action method
- [copy] Copying 1 file to C:\Projects\hello\src\com\hello
- [copy] Copying 1 file to C:\Projects\hello\src\com\hello
- [copy] Copying 1 file to C:\Projects\hello\src\com\hello\test
+ [copy] Copying 1 file to C:\Projects\hello\src\hot\com\hello
+ [copy] Copying 1 file to C:\Projects\hello\src\hot\com\hello
+ [copy] Copying 1 file to C:\Projects\hello\src\hot\com\hello\test
[copy] Copying 1 file to C:\Projects\hello\view
- [copy] Copying 1 file to C:\Projects\hello\src\com\hello\test
+ [copy] Copying 1 file to C:\Projects\hello\src\hot\com\hello\test
[echo] Type 'seam restart' and go to http://localhost:8080/hello/hello.seam
BUILD SUCCESSFUL
@@ -307,7 +307,7 @@
<section>
<title>Generating an application from existing JPA/EJB3 entities</title>
- <para>Place your existing, valid entity classes inside the <literal>src/model</literal>. Now type</para>
+ <para>Place your existing, valid entity classes inside the <literal>src/main</literal>. Now type</para>
<programlisting>seam generate-ui</programlisting>
@@ -403,7 +403,7 @@
</itemizedlist>
<para>If you create a WAR project using seam-gen, incremental hot deployment is available out of the box for
- classes in the <literal>src/action</literal> source directory. However, seam-gen does not support
+ classes in the <literal>src/hot</literal> source directory. However, seam-gen does not support
incremental hot deployment for EAR projects.</para>
</section>
Modified: trunk/doc/Seam_Reference_Guide/en-US/Groovy.xml
===================================================================
--- trunk/doc/Seam_Reference_Guide/en-US/Groovy.xml 2008-10-08 08:16:29 UTC (rev 9224)
+++ trunk/doc/Seam_Reference_Guide/en-US/Groovy.xml 2008-10-08 08:29:48 UTC (rev 9225)
@@ -141,9 +141,9 @@
<para>Seam gen has a transparent integration with Groovy. You can write Groovy code in seam-gen backed
projects without any additional infrastructure requirement. When writing a Groovy entity, simply place
- your <filename>.groovy</filename> files in <filename>src/model</filename>. Unsurprisingly, when writing
+ your <filename>.groovy</filename> files in <filename>src/main</filename>. Unsurprisingly, when writing
an action, simply place your <filename>.groovy</filename> files in
- <filename>src/action</filename>.</para>
+ <filename>src/hot</filename>.</para>
</section>
</section>
@@ -208,7 +208,7 @@
<para>Seam-gen transparently supports Groovy files deployment and compilation. This includes the native
<filename>.groovy</filename> file deployment in development mode (compilation-less). If you create a
- seam-gen project of type WAR, Java and Groovy classes in <filename>src/action</filename> will
+ seam-gen project of type WAR, Java and Groovy classes in <filename>src/hot</filename> will
automatically be candidate for the incremental hot deployment. If you are in production mode, the Groovy
files will simply be compiled before deployment.</para>
16 years, 1 month