2013-05-22 2 views
0

программное обеспечение, используемое: 1- GlassFish 3.1.2 2- JDK 6,0 3 Затмение Juno Service Release 1Не удается развернуть веб-приложение, имеющее EJB компонент впрыскивается

всякий раз, когда я пытаюсь добавлять мой динамический веб-приложение для 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; 

Я попытался также отрываясь компонент EJB с помощью InitailContext + JNDI напрасно, даже так он работал с обычного проекта 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); 
} 
} 

Наконец Managed 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; 
} 
} 

Пожалуйста, протяните руку, разобрав этот беспорядок, потому что я пытался понять это на пару дней, я очень благодарен.

+0

Посмотрите на сообщение об исключении. Проблема не в классе MyBean. Проблема заключается в классе «NumberService». «NoClassDefFoundError» в основном означает, что его файл '.class' не может быть найден или, по крайней мере, что класс не может быть загружен с помощью класса # forName()'. Вероятные причины этого должны теперь стать очень очевидными: ошибка компиляции или не помещается в путь к классам, или она выбрала исключение в некотором 'static' field/initializer. Вам нужно отредактировать и улучшить свой вопрос, чтобы опубликовать информацию о вашем классе «NumberService» вместо вашего «MyBean». – BalusC

+0

Я заметил проблему с NumberService, сэр, но все дело в том, почему это происходит, однако я уже добавил проект EJB в свой класс динамических веб-проектов. – Rehme

+0

@BalusC Не могли бы вы расслабиться здесь, пожалуйста, я поддержал свой вопрос с большим количеством кода, как вы предложили, спасибо. – Rehme

ответ

0

Ну, я создал проект EJb и веб-динамический проект с нуля с проверкой «добавить проект в EAR», теперь все разобрано. Итак, каждый из нас видел мой вопрос, я рекомендую вам следовать моему ответу, потому что исключение не имеет ничего общего с кодом. Это может быть ошибка, связанная с eclipse.

1

Я думаю, что проблема не связана с Eclipse, ошибка или что-то подобное, при развертывании веб-проект, содержащий EJB проект GlassFish сделать это:

  1. Создать EJB Project
  2. Создать свой динамический веб-проект (JSF проект)
  3. Добавить проект EJB для JSF проекта на пути построения
  4. создать EAR объединить свои два проекта

, если вы хотите получить полный учебник об этой операции, см. Это (http://jsfspotlight.blogspot.com/2013/05/ejbjsf-master-detail-web-application-in_25.html)

Смежные вопросы