其实对于EJB来说,不管是JSP还是其它client,都无所谓了,你用appliction测试通过,jsp也不需要测试了。我用JB开发,所以一般是利用它自动生成的TestClient来测试,如果要用jsp,我也是直接在jsp中引用这个testclient类,就是把它作为一个java类来使用即可。至于你帖的代码,其实在jsp中访问ejb如果jsp和ejb处于同一个服务中,可以不用properties的,直接 new InitialContext() 即可。能否再提供一点错误信息?

解决方案 »

  1.   

    D:\bea\user_projects\mydomain\myserver\.wlnotdelete\DefaultWebApp_DefaultWebApp_113467\jsp_servlet\__test.java:98: cannot resolve symbol
    symbol  : class HelloHome  
    location: class jsp_servlet.__test
                HelloHome shMain = null; //[ /test.jsp; Line: 12]
                ^
    D:\bea\user_projects\mydomain\myserver\.wlnotdelete\DefaultWebApp_DefaultWebApp_113467\jsp_servlet\__test.java:101: cannot resolve symbol
    symbol  : class Context  
    location: class jsp_servlet.__test
                    Context ctx=new InitialContext(); //[ /test.jsp; Line: 15]
                    ^
    D:\bea\user_projects\mydomain\myserver\.wlnotdelete\DefaultWebApp_DefaultWebApp_113467\jsp_servlet\__test.java:101: cannot resolve symbol
    symbol  : class InitialContext  
    location: class jsp_servlet.__test
                    Context ctx=new InitialContext(); //[ /test.jsp; Line: 15]
                                    ^
    D:\bea\user_projects\mydomain\myserver\.wlnotdelete\DefaultWebApp_DefaultWebApp_113467\jsp_servlet\__test.java:102: cannot resolve symbol
    symbol  : class HelloHome  
    location: class jsp_servlet.__test
                    shMain = ( HelloHome ) PortableRemoteObject.narrow( ctx.lookup("HelloHome")); //[ /test.jsp; Line: 16]
                               ^
    D:\bea\user_projects\mydomain\myserver\.wlnotdelete\DefaultWebApp_DefaultWebApp_113467\jsp_servlet\__test.java:102: cannot resolve symbol
    symbol  : variable PortableRemoteObject  
    location: class jsp_servlet.__test
                    shMain = ( HelloHome ) PortableRemoteObject.narrow( ctx.lookup("HelloHome")); //[ /test.jsp; Line: 16]
                                           ^
    D:\bea\user_projects\mydomain\myserver\.wlnotdelete\DefaultWebApp_DefaultWebApp_113467\jsp_servlet\__test.java:104: cannot resolve symbol
    symbol  : class NamingException  
    location: class jsp_servlet.__test
                catch( NamingException ne ) //[ /test.jsp; Line: 18]
                       ^
    D:\bea\user_projects\mydomain\myserver\.wlnotdelete\DefaultWebApp_DefaultWebApp_113467\jsp_servlet\__test.java:108: cannot resolve symbol
    symbol  : class Hello  
    location: class jsp_servlet.__test
                Hello hello = shMain.create(); //[ /test.jsp; Line: 22]
                ^
    7 errors
    我是刚开始写EJB,对EJB不是很了解,以上是错误信息,请指教
      

  2.   

    是不是你的部署有问题,给你1. 首先需要把
    d:\bea\wlserver6.0\lib\weblogic.jar;d:\bea\utils\utils.jar设置到CLASSPATH里面2. 编译三个源文件(见附件),
    myString.java
    myStringEJB.java
    myStringHome.java比如此3个源文件在d:\ambow下,
    cd d:\ambow
    javac my*.java生成3个类文件,
    myString.class
    myStringEJB.class
    myStringHome.class3。在与三个class文件同级的目录下新建目录META-INF,即d:\ambow\META-INF
    4。将附件中的两个xml文件拷贝到新建的META-INF目录下,xml文件中语法的相关含义,请参考weblogic6.0相关文档
    5。打包文件使用jar命令
       
    jar cvf myString.jar myStri*.class -C META-INF/ weblogic-ejb-jar.xml META-INF/ejb-jar.xml                                    注意此前有一空格运行完该命令后在D:\AMBOW目录下生成myString.jar6。 使用weblogic的Ejbc命令生成相关代理类
    在d:\运行
     java weblogic.ejbc ambow\myString.jar d:\myString.jar
    这样就会在d:\下生成我们可以直接发布的jar文件7。 Deploy
    请大家使用Weblogic console来deploy Ejb
    Deployments->EJB->Install a new EJB...
    暂时不用下面的方法来deploy
    d:\ java weblogic.deploy -host 127.0.0.1 -port 7001 deploy yourpassword myString.jar
    经过Ejbc处理过的jar文件8。 测试Ejb使用附件中的一个InvEjb.java(Servlet)编译此文件时,需要Home和Remote两个InterFace, 
    即myString.class和myStringHome.class两个文件,只要这两个文件在classpath里面就可以。可以把InvEjb.java放到d:\ambow下进行编译,因为所需要的两个接口文件就在那里,或者把任何一个(不管是否已经被Ejbc处理过)myString.jar设置到classpath里.把InvEjb.class拷贝到
    D:\bea\wlserver6.0\config\mydomain\applications\bbb\WEB-INF\classes下
    修改mydomain\applications\bbb\WEB-INF下的web.xml;文件
    增加如下语句
    <servlet>
        <servlet-name>InvocateEjb</servlet-name>
        <servlet-class>InvEjb</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>InvocateEjb</servlet-name>
        <url-pattern>/InvEjb/*</url-pattern>
    </servlet-mapping>
    9。 将myString.class和myStringHome.class拷贝到
        D:\bea\wlserver6.0\config\mydomain\serverclasses目录下10。 保存相关文件后,启动Webloigic,访问如下地址http://127.0.0.1:7001/bbb/InvEjb
    一篇文章参考,你可以把它改成自己的类文件。