0

使用したソフトウェア: 1- GlassFish 3.1.2 2- JDK 6.0 3- Eclipse Juno Service Release 1

動的 Web アプリを GlassFish に追加しようとすると、ポップアップ ウィンドウでこの例外が発生します。

SEVERE: Exception while loading the app : java.lang.IllegalStateException:           
ContainerBase.addChild: start: org.apache.catalina.LifecycleException:
java.lang.RuntimeException: java.lang.NoClassDefFoundError:
Lcoreservlets/bean/NumberService;

InitailContext + JNDI を使用して EJB コンポーネントを検索しようとしても無駄でしたが、プレーンな Java プロジェクトから動作しました。

GlassFish 3.1.1 と最後の手段を試しましたが、何もしませんでした。

私のソースコードを見て、何がうまくいかないのか教えてください:

まず、私の POJI :

package coreservlets.bean;
import javax.ejb.*;
@Remote
public interface NumberService {
public double getNumber(double range);
}

次に EJB POJO :

package coreservlets.bean;
import javax.ejb.*;
@Stateless(mappedName="NumberCreator")
public class NumberServiceBean implements NumberService {
public double getNumber(double range) {
return(Math.random() * range);
}
}

最後に管理された Bean :

package beans;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import coreservlets.bean.NumberService;
@ManagedBean
@RequestScoped
public class MyBean {

@EJB private NumberService service;
private Double luckyNumber;
public Double getLuckyNumber() {
    luckyNumber = service.getNumber(Math.random() * 100);
    return luckyNumber;
}   
}

この 混乱 を 整理 する 手を 貸して ください . 私 は これ まで 数 日間 解決 し よう と し て い た .

4

2 に答える 2

1

問題はEclipseのバグなどとは関係ないと思います.EJBプロジェクトを含むWebプロジェクトをglassfishにデプロイするときは、次のようにします:

  1. EJB プロジェクトを作成する
  2. 動的 Web プロジェクト (JSF プロジェクト) を作成します。
  3. ビルド パスの JSF プロジェクトに EJB プロジェクトを追加します。
  4. EAR を作成して 2 つのプロジェクトを統合する

この操作に関する完全なチュートリアルが必要な場合は、これを参照してください ( http://jsfspotlight.blogspot.com/2013/05/ejbjsf-master-detail-web-application-in_25.html )

于 2013-05-26T14:06:59.700 に答える
0

さて、「プロジェクトを EAR に追加する」にチェックを入れて、EJb プロジェクトと Web 動的プロジェクトをゼロから作成しました。これですべてが整理されました。誰もがたまたま私の質問を見たので、私の答えに従うことをお勧めします。なぜなら、例外はコードとは何の関係もないからです。Eclipse 関連のバグか何かである可能性があります。

于 2013-05-23T06:27:32.850 に答える