EJB3的例外情况

时间:2013-04-05 18:56:47

标签: java eclipse

我在会话bean中使用一个方法,该会话bean被一个带有IOException的try和catch块包围,看起来它正在产生问题,因为当我尝试从java项目客户端调用一个方法时,这里是我的bean代码

package com.et;
import com.gestionfichier.gestion.*;
import java.io.IOException;
import javax.ejb.ApplicationException;
import javax.ejb.Stateless;

@Stateless
public class PremierEJB3Bean implements PremierEJB3 {

    public String envoicode(String Code)  {
       String s = null;
       try {
           s = GestionFichier.CopierCode(Code);
       } catch (IOException e) {
           e.printStackTrace();
       }
       CompilerFichierC.CompilerFichier(s,s);
       return "Compilation réussie !";
    }
}

这是我的客户端bean代码:

package com.et;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;

public class PremierEJB3Client {

    public static void main(String[] args)   {
        try {
           Context context = new InitialContext();
           PremierEJB3 beanRemote = (PremierEJB3)
           context.lookup("PremierEJB3Bean/remote");
           System.out.println(beanRemote.envoicode("somthing"));
       } catch (NamingException e) {
           e.printStackTrace();
       }
    }
}

这是我在控制台中得到的内容

    Exception in thread "main" java.lang.reflect.UndeclaredThrowableException
at $Proxy0.envoicode(Unknown Source)
at com.et.PremierEJB3Client.main(PremierEJB3Client.java:15)
    Caused by: java.lang.ClassNotFoundException: [Ljava.lang.StackTraceElement;
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
    And more....

所以我很安静,我的bean中的异常导致我这个问题,但我不知道如何解决这个问题

1 个答案:

答案 0 :(得分:1)

为了从独立客户端对EJB进行JNDI查找,需要添加上下文属性。

类似于下面的东西。

Hashtable<String, String> ht = new Hashtable<String, String>();
ht.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory");
Context ct=new InitialContext(ht);