| |
From Dave Dribin:
To have a Resin web application use jBoss, do the following:
- Copy "ejb.jar", "jboss-client.jar", and "jnp-client.jar" from
$JBOSS_HOME/client into WEB-INF/lib.
- Copy the EJB jar file that you put in $JBOSS_HOME/deploy into
WEB-INF/lib.
- Put the following <web-app> into resin.conf:
<web-app id='/web-app-path' app-dir='/real/path/of/web-app'>
<jndi-link>
<jndi-name>java:comp/env/ejb</jndi-name>
<jndi-factory>org.jnp.interfaces.NamingContextFactory</jndi-factory>
<init-param java.naming.provider.url="localhost:1099"/>
</jndi-link>
</web-app>
|
Of course change the JNDI URL if you're running jBoss on a different
machine.
-
Make sure you map all of your EJBs to the "ejb/" JNDI
context. For example, I have this in my jboss.xml:
<enterprise-beans>
<entity>
<ejb-name>UserBean</ejb-name>
<jndi-name>ejb/UserHome</jndi-name>
</entity>
.... other beans ....
</enterprise-beans>
|
This way you can lookup all the Home interfaces in the
"java:comp/env/ejb/" context.
I've attached a simple JSP that shows how to access the User EJB.
And don't forget that if you re-deploy your beans to jBoss, you should
copy over the jar file into WEB-INF and restart Resin.
Hope that helps!
-Dave
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>EJB Test</title>
</head>
<body bgcolor="#FFFFFF">
<%@ page import='javax.naming.*' %>
<%@ page import='ejbeans.*' %>
<%@ page import='javax.rmi.*' %>
<h1 align=center>EJB Test</h1>
<%
// Get a naming context
InitialContext jndiContext;
Object ref;
// Get a reference to a UserHome Bean
jndiContext = new InitialContext();
ref = jndiContext.lookup("java:comp/env/ejb/UserHome");
int userPK;
UserHome userHome;
User user;
userHome = (UserHome)
PortableRemoteObject.narrow (ref, UserHome.class);
userPK = Integer.parseInt(request.getParameter("pk"));
user = userHome.findByPrimaryKey(new UserPK(userPK));
%>
<table border="3" width="100%">
<tr>
<th> ID </th>
<th> First Name </th>
<th> Last Name </th>
</tr>
<tr>
<th> <%= user.getId() %> </th>
<th> <%= user.getFirstName() %> </th>
<th> <%= user.getLastName() %> </th>
</tr>
</table>
</body>
</html>
|
Copyright © 1998-2002 Caucho Technology, Inc. All rights reserved.
Resin® is a registered trademark,
and HardCoretm and Quercustm are trademarks of Caucho Technology, Inc. | |
|