jackyrong

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

1  jboss 默认在DOS下启动是default的,这个要记得,要用all启动的话,可以这样 run -c all,否则dos下每次ant后的东西都会放错位置的了

2  一个简单的编译ejb服务端的脚本,用的是sun的J2EE SDK下的lib
 <?xml version="1.0"?>

<project name="ejb" basedir="." default="">
 <property name="jdk.root" value="C:\Sun\SDK"/>
  <path id="classpath">
      <fileset dir="${jdk.root}\lib">
          <include name="*.jar"/>
        </fileset>
      <pathelement path="."/>
   </path>
  <target name="compile">
       <javac destdir=".\build" debug="true"  deprecation="false" optimize="false" failonerror="true">
           <src path="."/>
          <classpath refid="classpath"/>
        </javac>
  </target>
</project>

3 EJB组件打包
    进入build目录下,jar -cvf XXX.jar ./*.,之后把jar文件COPY到jboss的default\deploy目录下即可.

 

4  EJB客户端的一个典型ant 脚本
    <?xml version="1.0"?>
<project name="ejb" basedir="." default="">
<property name="jboss.root" value="C:\jboss421"/>
 <property name="jdk.root" value="C:\Sun\SDK"/>
    <path id="classpath">
        <fileset dir="${jdk.root}\lib">
            <include name="*.jar"/>
        </fileset>
        <fileset dir="${jboss.root}\server\default\lib">
            <include name="*.jar"/>
        </fileset>
        <fileset dir="${jboss.root}\server\default\deploy\ejb3.deployer">
            <include name="*.jar"/>
        </fileset>   
        <fileset dir="${jboss.root}\server\default\deploy\jboss-aop-jdk50.deployer">
            <include name="*.jar"/>
        </fileset>               
        <fileset dir="${jboss.root}\lib">
            <include name="*.jar"/>
       </fileset>
        <fileset dir="..\ejb\build">
           <include name="*.jar"/>
       </fileset>        
      <pathelement path="."/>
  </path>
  <target name="compile">
       <javac destdir="." debug="true" deprecation="false" optimize="false" failonerror="true">
           <src path="."/>             
            <classpath refid="classpath"/>
        </javac>                        
    </target>                           
  <target name="run" depends="compile ">
      <java  classname="Client" fork="true">                      
           <classpath refid="classpath"/>
      </java>                         
    </target>                          
</project>                             

 

5 关于标注的问题:
  分三类:
  A 标注在接口里,比如
    @Local
public interface HelloWorldLocal extends HelloWorld{}
 

   B 在实现接口的类前加标记
   @Stateless
    @Local(HelloWorldLocal.class)
@Remote({HelloWorldRemote.clas,ICalc.class})
public class HelloWorldBean1

   这里指出了从本地,从远程能够访问的接口类型

 

  C  纯洁型
      单纯用部署文件,象EJB2那样 

6  无状态会话BEAN的三个状态
   不存在,放在池里,被调用状态.比较重要的事件有@PostConstruct,@PreDestroy,分别是组件创始时和被销毁时

7 有状态的会话bean
      同样,第一次调用时,是postconstruct事件,当被销毁时,则是predestroy事件了.而EJB2中的钝化事件,则这里
用prepassivate事件了,即一个EJB活动对象长时间不被使用了,当从活动状态切换到休眠状态时则激活这个事件了.

而postactive事件,则是从休眠状态再激活之的.

 

 


     


posted on 2008-07-29 19:12  jackyrong的世界  阅读(371)  评论(0编辑  收藏  举报