CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  J2EE / EJB / JMS

如何编译测试ejb的客户端程序

楼主brawnen(who love me?)2002-05-21 20:08:19 在 Java / J2EE / EJB / JMS 提问

我的ejb的类文件是在如下目录:f:\java-beans\test\simplebean;  
   
  而我的测试文件是在如下目录:f:\java-beans\test,文件叫:SalaryClient.java  
  大家都知道,在这个的引进的包里面有:import   simpleBean.*;  
  但是我在用命令行编译这个文件的时候,javac   SalaryClinet.java  
  出现了四个类似于如下的错误:  
  就是说不能解析的符号。  
  而这些符号就是在这个包里面。  
  问题点数:100、回复次数:5Top

1 楼brawnen(who love me?)回复于 2002-05-21 20:32:48 得分 0

大虾是不是都睡觉去了阿?  
  这么简单的问题都没有人回答?  
   
  Top

2 楼Javatomchen()回复于 2002-05-21 20:45:32 得分 100

Jbuilder5+weblogic6.1编写EJB的成功例子  
  1.安装Jbuilder5   enterprise   到c:\jbuider5\  
      BAS   安装到c:\BAS\  
  2.安装weblogic6.1   到C:\bea  
      weblogic   在C:\bea\wlserver6.1   下  
  3.配置jbuidler5(否则会发现创建ejb的选项是灰色的)  
      Tools\Enterprise   setup  
          Application   Server  
          BAS   4.5:   选择BAS安装目录c:\BAS  
          Weblogic6.0:  
          weblogic   installation   directory   选择C:\bea\wlserver6.1                    
          bea   home   directory   选择   C:\bea  
  4.编写EJB  
      package:ejbpro  
      ejb   group   name:ejbgroup  
      包文件:ejbgroup.jar,包含ejb-jar.xml,manifest.mf,weblogic-ejb-jar.xml,以及ejbpro下的所有编译过的类文件  
      类文件:  
   
  1)远程接口  
  //myFirst.java//remote   interface  
  package   ejbpro;  
   
  import   java.rmi.*;  
  import   javax.ejb.*;  
   
  /**  
    *   Title:  
    *   Description:  
    *   Copyright:         Copyright   (c)   2002  
    *   Company:  
    *   @author  
    *   @version   1.0  
    */  
   
  public   interface   myFirst   extends   EJBObject   {  
      public   String   message(String   str)   throws   RemoteException;  
  }  
  2)Bean类  
  //myFirstBean.java//bean   object  
   
  package   ejbpro;  
   
  import   java.rmi.*;  
  import   javax.ejb.*;  
   
  /**  
    *   Title:  
    *   Description:  
    *   Copyright:         Copyright   (c)   2002  
    *   Company:  
    *   @author  
    *   @version   1.0  
    */  
   
  public   class   myFirstBean   implements   SessionBean   {  
      private   SessionContext   sessionContext;  
      public   void   ejbCreate()   {  
      }  
      public   void   ejbRemove()   throws   RemoteException   {  
      }  
      public   void   ejbActivate()   throws   RemoteException   {  
      }  
      public   void   ejbPassivate()   throws   RemoteException   {  
      }  
      public   void   setSessionContext(SessionContext   sessionContext)   throws   RemoteException   {  
          this.sessionContext   =   sessionContext;  
      }  
      public   String   message(String   str)throws   RemoteException{  
          System.out.println("Remote   Object   Received   From   Client:   \""+str+"\"");   //打印(从客户端)接收到的字符串。  
          return   "Hello,I'm   Remote   Object";   //返回一应答字符串。  
      }  
   
  }      
  3)HOME接口  
  //myFirstHome.java//remote   home  
   
  package   ejbpro;  
   
  import   java.rmi.*;  
  import   javax.ejb.*;  
   
  /**  
    *   Title:  
    *   Description:  
    *   Copyright:         Copyright   (c)   2002  
    *   Company:  
    *   @author  
    *   @version   1.0  
    */  
   
  public   interface   myFirstHome   extends   EJBHome   {  
      public   myFirst   create()   throws   RemoteException,   CreateException;  
  }      
  4)客户端javaBean  
  //Client.java//java   Bean  
  package   ejbpro;  
   
  /**Client   side   JavaBean   to   call   EJB  
    *   By   TomChen  
    *   2002-4-26  
    */  
  public   class   Client   {  
      public   String   message(){  
          String   receiveFromRemote="Error";  
          try{  
                  javax.naming.Context   initContext=new   javax.naming.InitialContext();  
                  Object   obj=initContext.lookup("myj2ee");   //远程查找,由名字得到对应的对象。  
                  myFirstHome   home=(myFirstHome)javax.rmi.PortableRemoteObject.narrow(obj,myFirstHome.class);  
                  myFirst   remote=home.create();  
                  receiveFromRemote=remote.message("Hello,Remote   Object!");   //远程方法调用  
                  //System.out.println("Received   From   Remote   Object:   \""+receiveFromRemote+"\"");  
          }  
          catch(Exception   e){  
              e.printStackTrace();  
          }  
          return   receiveFromRemote;  
      }  
      public   static   void   main(String[]   args){  
          try{  
                  javax.naming.Context   initContext=new   javax.naming.InitialContext();  
                  Object   obj=initContext.lookup("myj2ee");   //远程查找,由名字得到对应的对象。  
                  myFirstHome   home=(myFirstHome)javax.rmi.PortableRemoteObject.narrow(obj,myFirstHome.class);  
                  myFirst   remote=home.create();  
                  String   receiveFromRemote=remote.message("Hello,Remote   Object!");   //远程方法调用  
                  System.out.println("Received   From   Remote   Object:   \""+receiveFromRemote+"\"");  
          }  
          catch(Exception   e){  
              e.printStackTrace();  
          }  
      }  
  }    
  5.部署EJB  
      1)将ejbgroup.jar   copy   到C:\bea\wlserver6.1\config\mydomain\applications\  
      2)将ejbpro   copy   到   C:\bea\wlserver6.1\config\mydomain\applications\DefaultWebApp\WEB-INF\classes  
      3)启动weblogic   default   server  
          进入控制台http://localhost:7001/console  
          点击左面的操作目录   Deployement   下的EJB,点击右框架中的Install   a   new   EJB...Upload   ejbgroup.jar  
          上传后左边的EJB下出现ejbgroup,点击,在右边的框架中选中   Deployed,点击Apply  
      finised.  
  6.编写index.jsp  
      <html>  
      <head>  
      <title>EJB测试   </title>  
      <meta   http-equiv="Content-Type"   content="text/html;   charset=gb2312">  
      </head>  
      <body   bgcolor="#FFFFFF">  
      <jsp:useBean   id="ejb"   class="ejbpro.Client"/>  
      <%  
        String   str=ejb.message();  
        out.println(str);  
      %>  
    </body>  
    </html>                  
  放在C:\bea\wlserver6.1\config\mydomain\applications\DefaultWebApp\下  
  7.开始测试   http://localhost:7001/index.jsp                
   
  Top

3 楼SuperZhao(超人)回复于 2002-05-21 21:07:16 得分 0

问题说得不明不白Top

4 楼broze()回复于 2002-05-21 21:13:31 得分 0

能贴代码吗?Top

5 楼brawnen(who love me?)回复于 2002-05-21 21:38:16 得分 0

SalaryHome.java如下:  
  package   simpleBean;  
   
  public   interface   SalaryHome   extends   javax.ejb.EJBHome{  
  Salary   create()   throws   java.rmi.RemoteException,javax.ejb.CreateException;  
   
  }  
  Salary.java的代码如下;  
   
  package   simpleBean;  
   
  public   interface   Salary   extends   javax.ejb.EJBObject{  
  double   calculateSalary(int   annualSalary,int   pensionContrib,double   bonus)throws    
  java.rmi.RemoteException;  
  }  
   
  package   simpleBean;  
   
  SalaryEJB.java的代码如下  
   
  import   javax.ejb.*;  
  public   class   SalaryEJB   implements   SessionBean{  
  public   void   ejbCreate(){}  
  public   void   ejbRemove(){}  
  public   void   ejbActivate(){}  
  public   void   ejbPassivate(){}  
  public   void   setSessionContext(SessionContext   ctx){}  
  private   static   double   taxRate=28;  
  public   double   calculateSalary(int   annualSalary,int   pensionContrib,double   bonus)throws    
  java.rmi.RemoteException  
  {  
  double   monthly=0;  
  monthly=annualSalary/12;  
  monthly=monthly+bonus;  
  monthly=monthly-(monthly*(pensionContrib/100));  
  monthly=monthly-(monthly*(taxRate/100));  
  return   monthly;  
  }  
  }  
  以上三个文件编译完成后的类文件在如下目录中:f:\java-beans\test\simpleBean  
   
  客户端的测试带如下文件名SalaryClient.java,目录在:f:\java-beans\test,其中的代码如下:  
  import   javax.ejb.*;  
  import   simpleBean.*;//  
  import   javax.naming.InitialContext;  
  //in   j2ee   package   the   package   to   import   is   seted   up   into   the   classpath  
  public   class   SalaryClient{  
  public   static   void   main(String[]   args)  
  {  
  try  
  {  
        InitialContext   ctx=new   InitialContext();  
        Object   objRef=ctx.lookup("Salary");  
        SalaryHome   home=(SalaryHome)javax.rmi.PortableRemoteObject.narrow(objRef,SalaryHome.class);  
        Salary   bean=home.create();  
        System.out.println("monthly   net   salary:"+bean.calculateSalary(29000,2,500));  
  }catch(javax.naming.NamingException   ne)  
  {  
  System.out.println(ne);  
  }  
  catch(javax.ejb.CreateException   ce)  
  {  
  System.out.println(ce);  
  }  
  catch(java.rmi.RemoteException   re)  
  {  
  System.out.println(re);  
  }  
  }  
  }  
   
  我启动的sun的J2EE而没有用那些高级的集成Application   serve,  
  现在的问题时我的客户端测试代码编译不了。更不用提运行了,各位大虾,如如何编译,如何运行啊!?救命啊!!!!!!  
  我在系统的环将变量里面设置了:JAVA_HOME   为e:\j2ee  
  classpath里面也加了e:\j2ee\lib\j2ee.jar  
   
   
   
  Top

相关问题

  • 程序编译
  • 编译程序
  • vc编译 程序
  • 写了一个库,在测试程序中包含库的.h文件,但是编译时说unresolved external...急!!!
  • 都说VC编译出来的程序效率比BC高,但简单测试一下,大吃一惊!
  • foxbase的反编译程序
  • PFC程序的编译?
  • 如何编译ASP程序。
  • JAVA程序的编译
  • Java程序编译成???

关键词

  • j2ee

得分解答快速导航

  • 帖主:brawnen
  • Javatomchen

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo