01: package com.sun.portal.sample.j2ee.count.provider;
02:
03: import com.sun.portal.providers.context.ProviderContext;
04: import com.sun.portal.providers.jsp.JSPProvider;
05: import com.sun.portal.providers.ProviderException;
06:
07: import com.sun.portal.sample.j2ee.count.ejb.Count;
08: import com.sun.portal.sample.j2ee.count.ejb.CountHome;
09:
10: import javax.servlet.http.HttpSession;
11: import javax.servlet.http.HttpServletRequest;
12: import javax.servlet.http.HttpServletResponse;
13:
14: import javax.ejb.CreateException;
15: import javax.naming.InitialContext;
16: import javax.naming.NamingException;
17: import javax.rmi.PortableRemoteObject;
18: import java.rmi.RemoteException;
19:
20: public class CountProvider extends JSPProvider {
21:
22: public StringBuffer getContent(HttpServletRequest req,
23: HttpServletResponse res) throws ProviderException {
24:
25: Count count = null;
26: String errMsg = null;
27: try {
28: InitialContext ic = new InitialContext();
29: Object objRef = ic.lookup("java:comp/env/ejb/counter");
30: CountHome home = (CountHome) PortableRemoteObject.narrow(
31: objRef, CountHome.class);
32: count = home.create();
33: } catch (RemoteException ex) {
34: errMsg = "Couldn't create count bean." + ex.getMessage();
35: } catch (CreateException ex) {
36: errMsg = "Couldn't create count bean." + ex.getMessage();
37: } catch (NamingException ex) {
38: errMsg = "Unable to lookup home: " + "ejb/counter "
39: + ex.getMessage();
40: }
41:
42: ProviderContext ctx = getProviderContext();
43: if (count != null) {
44: try {
45: ctx.setSessionProperty("ejbcounter", new Integer(count
46: .getCount()));
47: } catch (java.rmi.RemoteException ex) {
48: errMsg = "Failed to access counter bean method. "
49: + ex.getMessage();
50: ctx.setSessionProperty("ejbcounter", errMsg);
51: }
52: } else {
53: ctx.setSessionProperty("ejbcounter", errMsg);
54: }
55:
56: return super.getContent(req, res);
57:
58: }
59: }
|