EJB3 Study

ejb project: cust
public class StatelessCounterBean implements StatelessCounterBeanRemote, StatelessCounterBeanLocal {

    /**
     * Default constructor. 
     */
    public StatelessCounterBean() {
    }

	@Override
	public int getTheValue() {
		System.out.println("Say Hello!!");
		return 0;
	}

	@Override
	public int increment(int a, int b) {
		return a+b;
	}

	@Override
	public String sayHello() {
		return "Hello world!\n Counter Test";
	}

}


ejb-jar.xml
<?xml version="1.0" encoding="UTF-8"?>
<ejb-jar version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd">
  <display-name> cust </display-name>
 
  <enterprise-beans>  
  	<session>
  		<ejb-name>StatelessCounterBean</ejb-name>
  		<ejb-class>com.ibm.example.websphere.ejb3sample.counter.StatelessCounterBean</ejb-class>  
        <session-type>Stateless</session-type>  
  	</session>
  </enterprise-beans>
  
   <ejb-client-jar>custClient.jar</ejb-client-jar> 
 </ejb-jar>


ejb client project: custClient
@Local
public interface StatelessCounterBeanLocal {
	public int increment(int a, int b);
    public int getTheValue();
}

@Remote
public interface StatelessCounterBeanRemote {
	public int increment(int a, int b);
    public int getTheValue();
    public String sayHello();
}


custWeb, test the EJB project


public class CounterTest3 {
	/**
	 * @param args
	 */
	public int go(int a, int b) {
//		Properties props = new Properties();
//		props.setProperty("java.naming.factory.initial", "com.ibm.websphere.naming.WsnInitialContextFactory");
//		props.setProperty("java.naming.provider.url", "iiop://127.0.0.1:2809");
//		props.setProperty("java.naming.factory.url.pkgs", "com.ibm.ws.naming");
		InitialContext ctx;
		int result = 0;
		try {
		  //ctx = new InitialContext(props);
		  ctx = new InitialContext();
		  System.out.println("1");
		  StatelessCounterBeanRemote counter = (StatelessCounterBeanRemote) ctx.lookup("com.ibm.example.websphere.ejb3sample.counter.StatelessCounterBeanRemote");
		  //StatelessCounterBeanRemote counter = (StatelessCounterBeanRemote) ctx.lookup("StatelessCounter");//java:comp/env/StatelessCounter
			
		  System.out.println("2");
		  if (null != counter) {
			  result = counter.increment(a, b);
		  
		  } else {
		   System.out.println("lookup fail!");
		  }
		  System.out.println(result);
		  
		} catch (NamingException e) {
		  e.printStackTrace();
		}
		return result;

	}
	
	public static void main(String[] args) {
		Properties props = new Properties();
		props.setProperty("java.naming.factory.initial", "com.ibm.websphere.naming.WsnInitialContextFactory");
		props.setProperty("java.naming.provider.url", "iiop://127.0.0.1:2810");
		props.setProperty("java.naming.factory.url.pkgs", "com.ibm.ws.naming");
		InitialContext ctx;
		int result = 0;
		try {
		  ctx = new InitialContext(props);
		 
		  System.out.println("1");
		  StatelessCounterBeanRemote counter = (StatelessCounterBeanRemote) ctx.lookup("com.ibm.example.websphere.ejb3sample.counter.StatelessCounterBeanRemote");

		  System.out.println("2");
		  if (null != counter) {
			  result = counter.increment(2, 3);
		  
		  } else {
		   System.out.println("lookup fail!");
		  }
		  System.out.println(result);
		  
		} catch (NamingException e) {
		  e.printStackTrace();
		}
	}

}


test.jsp
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><%@page
	language="java" contentType="text/html; charset=GB18030"
	pageEncoding="GB18030"%>
	<%@ page import="com.ibm.example.websphere.ejb3sample.counter.*, javax.naming.*
	, java.util.Properties, com.test.*" %>
<html>
<head>
<title>countertest2</title>
<meta http-equiv="Content-Type" content="text/html; charset=GB18030">
<meta name="GENERATOR"
	content="Rational® Application Developer™ for WebSphere® Software">
</head>
<body>
	<%
		out.println("StatelessCounterBeanRemote Start...<br/>");
			InitialContext ctx = new InitialContext();
			StatelessCounterBeanRemote counter = (StatelessCounterBeanRemote)ctx.lookup("com.ibm.example.websphere.ejb3sample.counter.StatelessCounterBeanRemote");
			out.println("1+5=" + counter.increment(1,5));
			out.println("<br/>StatelessCounterBeanRemote End.<br/>");
			
			CounterTest3 test = new CounterTest3();
			int result = test.go(2, 3);
			out.println("Result is: "+ result);
	%>
</body>
</html>

你可能感兴趣的:(ejb,websphere)