[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