Topic: 请问在JBoss下面部署的EJB如何在Resin下面使用呢?

  Print this page

1.请问在JBoss下面部署的EJB如何在Resin下面使用呢? Copy to clipboard
Posted by: lvjing79
Posted on: 2005-03-09 12:35

我是用Eclipse+Lomboz+JBoss4.0部署的EJB,现在想在Resin下面使用这个EJB,我该如何做呢?有没有办法在Resin下面直接部署EJB呢?

2.Re:请问在JBoss下面部署的EJB如何在Resin下面使用呢? [Re: lvjing79] Copy to clipboard
Posted by: citybeat
Posted on: 2005-03-27 20:55

Resin自带的文档:

---------------------------------------------------------------------------------------------------

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>


   Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent
Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1
客服电话 18559299278    客服信箱 714923@qq.com    客服QQ 714923