当Client端调用一个EJB的时候,如果这个EJB长时间没有返回值。是否会出现类似于通讯超时的异常?如果没有这种异常的话,如何来处理这种情况?
例如:一个Client端调用EJB的时间太长了,依然没有返回结果。那么,我通过什么方式来通知Client超时了呢?

解决方案 »

  1.   

    我只知道javabean中的自省机制,例如
     <jsp:useBean id="mysend" class="JavaMail.SendHtmlMail"></jsp:useBean>
    <jsp:setProperty property="*" name="mysend"/>
    JavaBean:
    String smtphost="SMTP.qq.com";//smtp服务器
    String user="[email protected]";//登录smtp服务器的账号
    String password="liuguangqing0714"; //登录服务器的密码
    String from="[email protected]";// 发送人邮箱
    String to="[email protected]";//接受人邮箱
    String title=" 这是测试邮件不要回复!!";//邮件标题
    String content="这是测试邮件不要回复!!";//邮件内容
    对应HTML中的字段:
    SMTP服务器:<input type="text" id="SMTPHost" name="SMTPHost"><br>
    登录帐号:<input type="text" id="user" name="user"><br>
    登录密码:<input type="password" id="password" name="password"><br>& lt;br>
    发件人邮箱:<input type="text" id="from" name="from">< br>
    收件人邮箱:<input type="text" id="to" name="to"><br>
    邮件标题:<input type="text" id="title" name="title"><br>
    邮件内容 HTML代码:<textarea id="content" name="content" rows="5" cols="40">& lt;/textarea><br> 
      

  2.   


    你这段代码,我到是在网上见到过。但是,这段代码怎么用,以及是什么意思呢?
    还有就是这段代码与EJB的超时这个问题,有什么联系呢?
    希望你能指点一下,谢谢
      

  3.   

    按我的理解,EJB里如果有死循环,就永远不能返回。如果由于事务被挂起,有超时返回异常。
      

  4.   

    <weblogic-ejb-jar>
      <weblogic-enterprise-bean>
        <ejb-name>******</ejb-name>
        <stateless-session-descriptor>
        </stateless-session-descriptor>
        <transaction-descriptor>
          <trans-timeout-seconds>420</trans-timeout-seconds>
        </transaction-descriptor>
        <enable-call-by-reference>True</enable-call-by-reference>
        <jndi-name>***********</jndi-name>
      </weblogic-enterprise-bean>
    </weblogic-ejb-jar>
    <trans-timeout-seconds>就是配置超时的标签,超时了就会抛exception
      

  5.   


    你这个配置我试过了。他是报错了,但是只是在Weblogic端,在Client端却没有任何的异常信息
      

  6.   

    EJB其实使用了远程调用,因此就会有timeout超时的情况。
      

  7.   


    首先,非常感谢你的回答。
    如果有这种timeout的情况,那么中间件会怎么处理,client端是否会收到此类的异常信息。
    因为,我在实际的测试中,在client端并没有接收到任何的异常信息。