[jboss-user] [EJB 3.0] - Re: Missing comprehension in EJB3 and JBoss in Elcipse
hispeedsurfer
do-not-reply at jboss.com
Tue Sep 12 04:39:22 EDT 2006
Hello,
her is my solution tot he problem above, solved with JBoss Seam and Facelets
1.) First I follow the discription http://wiki.jboss.org/wiki/Wiki.jsp?page=JBossSeamGettingStartedGuide and installed JBoss IDE and SEAM as described.
2.) Now the steps in Eclipse for an new ?Enterprise Application Project?
Project Name: statelessSb
J2EE Modules -> New Module: statelessSbEJB, statelessSbWeb
The Workspace is defined as V:\seam-workspace
Under Win CMD type as follow: (the same like 1.)
V:\seam-workspace\jboss-seam-1.0.1.GA\seam-gen>seam new-wtp-project statelessSb
V:\seam-workspace\jboss-seam-1.0.1.GA\seam-gen>seam new-stateless-action statelessSb StatelessCalculator
V:\seam-workspace\jboss-seam-1.0.1.GA\seam-gen>seam new-action-page statelessSb home StatelessCalculator
Now Refresh statelssSb, statelessSbEJB and statelessWeb in Eclipse and set ?Configure Buildpath? from statelessSbEJB (also see in 1.)
Code for home.xhtml:
| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
| "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
| <html 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"
| xmlns:h="http://java.sun.com/jsf/html">
| <body>
| <ui:composition template="/WEB-INF/layout/template.xhtml">
|
| <ui:define name="body">
| <h1>Seam Generated Page named: "Calculator"</h1>
| <h:form>
| <div>
| <fieldset>
| <div>
| <div><h:outputLabel for="start">Start age: </h:outputLabel></div>
| <div><h:inputText value="#{StatelessCalculator.start}"/><br /></div>
| </div>
| <div>
| <div><h:outputLabel>End age: </h:outputLabel></div>
| <div><h:inputText value="#{StatelessCalculator.end}"/><br /></div>
| </div>
| <div>
| <div><h:outputLabel>Growth Rate: </h:outputLabel></div>
| <div><h:inputText value="#{StatelessCalculator.growthrate}"/><br /></div>
| </div>
| <div>
| <div><h:outputLabel>saving: </h:outputLabel></div>
| <div><h:inputText value="#{StatelessCalculator.saving}"/><br /></div>
| </div>
| <div>
| <div><h:commandButton type="submit" value="Calculate" action="#{StatelessCalculator.calculate}"/></div>
| </div>
| <div>
| <div><h:outputText>Result: "#{StatelessCalculator.resultString}"</h:outputText></div>
| </div>
|
| </fieldset>
| </div>
| </h:form>
| </ui:define>
|
| </ui:composition>
| </body>
| </html>
|
Code for StatelessCalculator.java:
| package org.jboss.business;
|
| import javax.ejb.Local;
|
| @Local
| public interface StatelessCalculator {
|
| //seam-gen method
| public String doAction();
|
| //add additional interface methods here
| public String calculate ();
|
| public double calculate(int start, int end, double growth, double saving);
|
| public int getEnd();
|
| public void setEnd(int end);
|
| public double getGrowthrate();
|
| public void setGrowthrate(double growthrate);
|
| public double getSaving();
|
| public void setSaving(double saving);
|
| public int getStart();
|
| public void setStart(int start);
|
| public double getResult();
|
| public void setResult(double result);
|
| public String getResultString();
|
| public void setResultString(String resultString);
| }
|
Code for StatelessCalculatorAction.java:
| package org.jboss.business;
|
| import static org.jboss.seam.ScopeType.SESSION;
|
| import java.io.Serializable;
| import java.text.NumberFormat;
|
| import javax.ejb.Stateless;
| import org.jboss.seam.annotations.Name;
| import org.jboss.seam.annotations.Scope;
|
| @Stateless
| @Name("StatelessCalculator")
| @Scope(SESSION)
| public class StatelessCalculatorAction implements StatelessCalculator,
| Serializable {
|
| private int start = 25;
| private int end = 65;
| private double growthrate = 0.08;
| private double saving = 300.0;
| private double result = 0;
| private String resultString = null;
| /**
| *
| */
| private static final long serialVersionUID = 1L;
|
| // seam-gen method
| public String doAction() {
| return "success";
| }
|
| // add additional action methods
| public double calculate(int start, int end, double growth, double saving){
| double tmp = Math.pow(1. + growthrate / 12., 12. * (end - start) + 1);
| return saving * 12. * (tmp - 1) / growth;
| }
|
| public String calculate() {
| NumberFormat nf = NumberFormat.getInstance();
| nf.setMaximumFractionDigits(2);
| result = calculate(start, end, growthrate, saving);
| resultString = nf.format(result);
| return "success";
| }
|
|
|
| public int getEnd() {
| return end;
| }
|
| public void setEnd(int end) {
| this.end = end;
| }
|
| public double getGrowthrate() {
| return growthrate;
| }
|
| public void setGrowthrate(double growthrate) {
| this.growthrate = growthrate;
| }
|
| public double getSaving() {
| return saving;
| }
|
| public void setSaving(double saving) {
| this.saving = saving;
| }
|
| public int getStart() {
| return start;
| }
|
| public void setStart(int start) {
| this.start = start;
| }
|
| public double getResult() {
| return result;
| }
|
| public void setResult(double result) {
| this.result = result;
| }
|
| public String getResultString() {
| return resultString;
| }
|
| public void setResultString(String resultString) {
| this.resultString = resultString;
| }
|
| }
|
Finally ADD the Project to JBoss Server, start and see the result by typing http://localhost:8080/statelessSb in browser
Have fun
Andreas
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3970928#3970928
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3970928
More information about the jboss-user
mailing list