http://www.csdn.net/develop/Read_Article.asp?Id=11868

解决方案 »

  1.   

    在new -->Web Application(如果你的项目 server不支持Web,将无法选择此项目)   输入web application的名字,自己定义,如interestweb 以后访问这个web应用,就是http://localhost:8080/interestweb/   完成后,在左边栏目中多出一个interestweb的目录. 建立一个Web Servlet,由于interest源程序中,是靠servlet来调用EJB的,当然你也可以用你的JSp调用EJB,那么我们要增加一个Web Servlet应用。   选择new-->Servlet --->package 选择package
    classname:自己定义,如InterestServlet 其他都是欠缺,
      rebuild检查这个servlet有无问题。 一个简单的J2EE框架已经出来了,现在我们要作些配置工作,让Web应用的Servlet能够访问到EJB:   展开interestweb 展开deployment desciptors,双击web.xml 我们来编辑web.xml   web.xml是用来定义web应用的,在本web应用中,关键是要让应用程序找寻到EJB,也就是关键是JNDI的配置。这里我们使用JNDI的欠缺配置,直接引用<ejb-name>的值,这要求web应用程序和EJB程序在一个EAR文件中。 
      在左边右下角出现webApp deployment descriptor的DTD 就是语法。   首先,我们要解决和EJB的联系,选择EJB References, 增加一个EJB reference: Reference Name:   这个EJB的名字很重要,由于interest程序中是用InterestServlet调用EJB的,我们要打开InterestServlet,寻找到Object ref = jndiContext.lookup("java:comp/env/ejb/Interest");   其中ejb/Interest就是Reference Name   link: 由于上面提到,我们使用欠缺的JNDI机制,所以这里link一定要定义,定义成<ejb-name>,本例中是Interest Home Interfcae:
    org.jboss.docs.interest.InterestHome Remote Interfcae:
    org.jboss.docs.interest.Interest   打开source 可以看到: <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
    <web-app>
    <servlet>
    <servlet-name>interestservlet</servlet-name>
    <servlet-class>org.jboss.docs.interest.InterestServlet</servlet-class>
    </servlet>
    <servlet-mapping>
    <servlet-name>interestservlet</servlet-name>
    <url-pattern>/interestservlet</url-pattern>
    </servlet-mapping>
    <ejb-ref>
    <ejb-ref-name>ejb/Interest</ejb-ref-name>
    <ejb-ref-type>Session</ejb-ref-type>
    <home>org.jboss.docs.interest.InterestHome</home>
    <remote>org.jboss.docs.interest.Interest</remote>
    <ejb-link>Interest</ejb-link>
    </ejb-ref>
    </web-app>   注意: <url-pattern>/interestservlet</url-pattern>是访问InterestServlet的Jsp或html页面中的form action的值,有大小写区分,现在是: <form action="interestservlet" > ... </form>   但是本例中,有一个home.html是用来调用InterestServlet的,我们看看home.html的代码发现:   <form action="InterestServlet" method="POST" >   所以现在有两种选择,要么修改这里的<url-pattern> 要么修改home.html中action   我们修改<url-pattern>吧。注意: <servlet-name>interestservlet</servlet-name>中是servlet的名字,也区分大小写,我们servlet的程序是InterestServlet,如果你有不符合的地方要修改过来   配置welcome files为home.jsp 在本例中,第一个文件不是index.html 或index.jsp 是home.jsp   否则测试键入http://localhost:8084/interestweb/将出错。   rebuild或make这个web应用,会自动生成一个war文件