2011-11-15 17 views
0

私はEclipse/JSP/Beansにはかなり新しいですが、JSPファイルでBeansを使用するプロジェクトを作成する必要があります。私は2つのプロジェクトを持っています。私はまた、EJBプロジェクトを追加Beanのインポート[JSP/Eclipse]

<%@page import="beans.TestSessionBean"%> 

豆JSPファイル B)EJBプロジェクトを含む A)Mavenプロジェクトは、私は、次の行で自分のJSPファイルにBeanをインポートしようとしましたプロジェクトAのビルドパス(プロジェクトA>ビルドパス>ビルドパスの設定>プロジェクト>追加)を右クリックしてください。しかし、それは役に立たないようです。

だから私は私のJSPファイルを実行しようとするたびに、私は次のメッセージが出ます:プロジェクトAはプロジェクトからファイル(豆)が含まれませんようにインターネットを見回した後

Only a type can be imported. beans.TestSessionBean resolves to a package 

を...それはそうですそのまた右、プロジェクトBから豆のファイルを含めることになっていることを

my-webapp 
|-- META-INF 
| `-- MANIFEST.MF 
|--maven 
| `-- directory 
|  `-- directory 
|   |--pom.properties 
|   |--pom.xml 
|-- WEB-INF 
| |-- classes 
| | |-- files 
| | | `-- some_file.java 
| |-- glassfish-web.xml 
| `-- web.xml 
`-- index.jsp 

しかし、私は別のページで見た?:B.では、私のWARファイルの内容がどのように見えるかthatsの続き(または私はここに何かを混ぜるのですか?)

このようなことをするためにXMLファイルを編集する必要があるかどうかを知りたかったのです。私はWEB.xmlファイルに言及した検索結果に走っていますが、何かを追加するかどうかはわかりません。私のWEB.xmlは次のようになります:

<!DOCTYPE web-app PUBLIC 
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" 
"http://java.sun.com/dtd/web-app_2_3.dtd" > 

    <web-app> 
     <display-name>Archetype Created Web Application</display-name> 
     <servlet> 
     <servlet-name>tesLet</servlet-name> 
     <display-name>tesLet</display-name> 
     <description></description> 
     <servlet-class>servlet.tesLet</servlet-class> 
     </servlet> 
     <servlet-mapping> 
     <servlet-name>tesLet</servlet-name> 
     <url-pattern>/tesLet</url-pattern> 
     </servlet-mapping> 
    </web-app> 

私は2つの質問もありました。プロジェクトのプロパティに移動し、プロジェクトを[プロジェクト環境設定]に追加するとどうなりますか? (プロジェクトの横にあるチェックボックスの1つをチェックすると意味します)

[ビルドパス]の下にある[オーダーとエクスポート]タブのチェックボックスは何ですか?

+0

EJBセッションBeanをJSPにインポートしようとしていますか? –

答えて

0

タイプのみをインポートできます。 beans.TestSessionBeanがパッケージに解決する

これは誤解を招くエラーです。これは実際にはカバーの下にあるNoClassDefFoundErrorです。これは、指定されたクラスがクラスパスに存在しないことを意味します。

今、あなたのprojcect構造は、しかしこれは間違っている

|-- WEB-INF 
| |-- classes 
| | |-- files 
| | | `-- some_file.java 

言います。ファイルは.javaではありませんが、ファイルは.classです。 /WEB-INF/classes/beans/TestSessionBean.classになっていることを確認してください。これにより、特定のエラーが修正されます。具体的な問題への無関係


:JSPにEJBをインポートしようとするには、主要な設計ミスを示しています。私はservletsの学習にしばらく時間を投資することをお勧めします。また、web.xmlには、10年以上前のServlet 2.3が指定されています。サーブレット2.3のコンテナに実際にデプロイしているかどうかは不明ですが、できるだけ最新のサーブレットAPIにアップグレードすることもできます。

+0

私はクラスのことを取得しますが、私はMaven eclipseプラグインに問題があるかどうか疑問に思っています。もしかしたら、Maven Dependenciesのリストに含まれていても、Project Bを含むように設定しなければならないかもしれません。 私はそれをJBoss 5.0にデプロイしていますが、どのサーブレットのバージョンを使用しているのかわかりません。私はまた、どのように私はより高いサーブレットバージョンに日食で更新を行くだろうか分かりません。 :| サーブレットを見ていきますが、なぜJSPのBeanを使用するのが悪いのかを知りたいと思います。私は人々に "useBean"を使わないように言わせてくれるだけでしたが、輸入を使うことを続けました。 – user1047630

+0

また、答えに感謝します。 – user1047630

+0

私はMavenをやっていないので、私は詳細に行くことができません。 Mavenで構築されたWARファイルに適切なクラスファイルが適切な場所に格納されていることを確認するだけです。それはあなたが得ている特定のエラーを解決する必要があります。 JBoss 5.0はServlet 2.5コンテナです。豆の使用については、 EJBは確かに「単なる」Beanではありません。これはビジネスサービスBeanです。最後に、JSPで避けなければならない** 'jsp:useBean'と' @page import'の両方**です。 – BalusC

関連する問題