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>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值