0

私はJ2EE/EJB分野の初心者であり、いくつかの基本的な例に従っています。私は2つの数を合計する非常に単純なクラスを実装しました。ホームインターフェイスとリモートインターフェイス、およびEnterprise Bean(ステートレス)自体があります。

Adder.java //Remote interface
AdderHome.java //Home interface
AdderBean.java //The EJB class

それをEJBアプリケーションとしてテストする場合、すべてが完全に機能します。しかし、今はそれをJSPページとしてテストしたいのですが、リモートインターフェイスがホームインターフェイスからインスタンス化された時点でエラーが発生します(実際には出力がありません)。

時間内に:JBoss4でJ2EE1.4を使用しています。

これがJSPページのコードです。1行だけを印刷することになっています。

<%@page import="javax.naming.*" %>
<%@page import="javax.rmi.PortableRemoteObject" %>
<%@page import="java.util.Properties" %>
<%@page import="com.lucasmariano.*" %>

<%
        //Preparing the properting to be put in the InitialContext
        Properties properties = new Properties();
        properties.put(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory");
        properties.put(Context.PROVIDER_URL, "localhost:1099");

        try {
            //Get an Initial Context               
            InitialContext jndiContext = new InitialContext(properties);
            System.out.println("got context");               

            //get a reference to the bean
            Object ref = jndiContext.lookup("Adder");
            System.out.println("got reference");


            //Get a reference to this to the bean's home interface
            AdderHome home = (AdderHome) PortableRemoteObject.narrow(ref, AdderHome.class);
            out.println("GETTING OBJECT <BR />");

            //create an Adder object from the Home interface

            //######  HERE IS THE PROBLEM!!!  #######
            Adder adder = home.create();
            out.println("ADDER OBJECT CREATED <BR />");
            out.println("2 + 5 = " + adder.add(2,5));

        }catch(Exception e ){
            System.out.println(e.toString());
        }
  %>

web.xmlに新しい値を追加する必要がありますか?

4

2 に答える 2

1

Duffymoに同意します。あなたがしているのはただ間違っている。

EJBは優れたテクノロジーですが、EJB2は実に悪でした。これは、開発者の生活を可能な限り困難にするという1つの目標のみを備えた象牙の塔で設計されました。

この時間帯では、EJB2から始める理由はありません。EJB2を学ぶ唯一の理由は、EJB2で作成された古いレガシーアプリを維持する必要がある場合です(ただし、別の仕事を探すことをお勧めします)。

バージョンが1つだけ高いにもかかわらず、EJB3はまったく別のものです。それは簡単で、軽量で、非常に論理的であり、多くのコミュニティのフィードバックがありました。しかし、EJB3でさえかなり古いものです。現在のバージョンはEJB3.1で、Glassfish v3.1、JBoss AS 6、またはResin 4で使用できます(Resinを使用するとEJB3.1 lite +を入手できます)。

于 2011-03-05T17:04:23.797 に答える
0

この方法はお勧めしません。JSPのスクリプトレットは嫌われています。

どのJavaEEアプリサーバーを使用していますか?JavaEE5以降だといいのですが。古いEJB標準から始めているのではないかと思います。

于 2011-03-05T16:00:16.297 に答える