Импорт бинов [JSP / Eclipse] - PullRequest
       10

Импорт бинов [JSP / Eclipse]

0 голосов
/ 15 ноября 2011

Я довольно новичок в Eclipse / JSP / Beans, но мне нужно создать проект, в котором я использую Beans в своем файле JSP.У меня есть два проекта.A) Maven-проект, включающий файл JSP. B) EJB-проект с компонентами

. Я попытался импортировать компонент в свой файл JSP со следующей строкой:

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

Я также добавилEJB-проект в путь сборки Project A (щелкните правой кнопкой мыши Project A> Build Path> Configure Builde Path> Projects> Add), но это не помогло.

Поэтому всякий раз, когда я пытаюсь запустить свой файл JSP,Я получаю следующее сообщение:

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

После просмотра интернета ... кажется, что Проект А не будет включать файлы (бины) из Проекта Б. Это продолжается, как содержание моего файла WARвыглядит:

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

но на другой странице я увидел, что он также должен включать файлы bean-компонентов из проекта B, верно?(или я тут все перепутал?)

Я также хотел узнать, не придется ли мне отредактировать какой-нибудь 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>

У меня также было еще два вопроса.Что произойдет, если я зайду в свойства проекта и добавлю проект в настройки проекта?(Я имею в виду, если я поставлю один из флажков рядом с проектом)

А что делает флажок на вкладке "Заказ и экспорт" в разделе Путь сборки?

1 Ответ

0 голосов
/ 15 ноября 2011

Только тип может быть импортирован.beans.TestSessionBean преобразуется в пакет

Это ошибочная ошибка.Это под прикрытием на самом деле NoClassDefFoundError.Это означает, что данный класс отсутствует в пути к классам.

Теперь ваша структура проекта говорит:

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

Это, однако, неправильно.Там не должно быть файлов .java, но должны быть скомпилированы файлы .class.Убедитесь, что у вас есть /WEB-INF/classes/beans/TestSessionBean.class.Это должно исправить конкретную ошибку.


Не связано с конкретной проблемой: попытка импортировать EJB в JSP указывает на серьезную ошибку проектирования.Предлагаю потратить некоторое время на изучение сервлетов .Кроме того, в вашем web.xml указан сервлет 2.3, которому более десяти лет.Не ясно, действительно ли вы развертываете контейнер Servlet 2.3 или нет, но я бы также обновил его до новейшей версии API Servlet.

...