문제

동일한 .war 파일은 Glassfish v2.1에 미세 배포됩니다. 마지막으로 v3을 시도한 시간은 모르겠지만 Glassfish V3와 함께 NetBeans 6.8에서 일한다는 소문이 있다는 소문이 있기 때문에 Hot-Deploy 기능을 확인하고 싶었습니다. 그래서 평소와 마찬가지로 배포하고 다음과 같은 오류가 발생합니다.

SEVERE: Exception while invoking class org.glassfish.ejb.startup.EjbDeployer load method
....
SEVERE: Exception while loading the app
java.lang.RuntimeException: Unable to load EJB module.  DeploymentContext does not contain any EJB  Check archive to ensure correct packaging for c:\src\svn\trunk\gui\target\WEBAPP
    at org.glassfish.ejb.startup.EjbDeployer.load(EjbDeployer.java:134)
    at org.glassfish.ejb.startup.EjbDeployer.load(EjbDeployer.java:64)
    at org.glassfish.internal.data.ModuleInfo.load(ModuleInfo.java:153)
    at org.glassfish.internal.data.ApplicationInfo.load(ApplicationInfo.java:220)
    at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:314)
    at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:169)
    at org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:272)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl$1.execute(CommandRunnerImpl.java:305)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:320)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1159)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl.access$900(CommandRunnerImpl.java:83)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1218)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1207)
    at com.sun.enterprise.v3.admin.AdminAdapter.doCommand(AdminAdapter.java:362)
    at com.sun.enterprise.v3.admin.AdminAdapter.service(AdminAdapter.java:201)
    at com.sun.grizzly.tcp.http11.GrizzlyAdapter.service(GrizzlyAdapter.java:166)
    at com.sun.enterprise.v3.server.HK2Dispatcher.dispath(HK2Dispatcher.java:100)
    at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:241)
    at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:789)
    at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:697)
    at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:951)
    at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:166)
    at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:135)
    at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:102)
    at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:88)
    at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:76)
    at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:53)
    at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:57)
    at com.sun.grizzly.ContextTask.run(ContextTask.java:69)
    at com.sun.grizzly.util.FixedThreadPool$BasicWorker.doWork(FixedThreadPool.java:431)
    at com.sun.grizzly.util.FixedThreadPool$BasicWorker.run(FixedThreadPool.java:410)
    at java.lang.Thread.run(Thread.java:619)

나는 이것이 .war 파일이기 때문에 EJB와 관련된 것에 대해 왜 불만을 제기하는지 이해하지 못합니다. 어떤 아이디어?

업데이트: 나는 Glassfish와 함께 버그를 제출했습니다. https://glassfish.dev.java.net/issues/show_bug.cgi?id=10592. 이것은 Glassfish의 버그이거나 최소한 오류 메시지가 문제를 추적하는 데 도움이되지 않습니다.

도움이 되었습니까?

해결책

https://glassfish.dev.java.net/issues/show_bug.cgi?id=10592

버그에서 :

좋아, 원인을 찾았습니다 (테스트 사례를 제공해 주셔서 감사합니다!) :

  1. 아카이브 : 아카이브에 포장 된 라이브러리 항아리의 하나 이상 (또는 그 이상)에 구성 요소 주석이 포함 된 EJB가 포함 된 EJBSNIFFER를 검색했습니다. 따라서 EJB 컨테이너는 나중에 모듈을로드하도록 요청 받았다.

  2. web.xml이 2.4 버전이기 때문에 EJB 컨테이너는 해당 메타 데이터를 찾을 수 없었기 때문에 메타 데이터 처리는 주석 처리를 건너 뛰었습니다 (우리는 Java EE 5+ 스키마 버전에 대한 주석 만 처리).

Web.xml을 2.5 스키마를 참조하도록 변경 한 후 (3.0 스키마도 수행 할 수 있음) : http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd ">

앱이 성공적으로 배포되었습니다.

시도해보고 그것이 당신에게 맞는지 알려주세요.

다른 팁

3_0 스키마가 있고 여전히 오류가 발생합니다. 더 흥미로운 점은 두 가지 전쟁이 있다는 것입니다. 하나는 Weld Archetype의 예제 프로젝트이고, 다른 하나는 그것의 사용자 정의입니다. 맞춤형 전쟁은 작동하지 않습니다.

나는 나란히 확인했는데, 더 많은 모델 클래스와 더 많은 속성을 제외하고는 동일합니다.

누군가를 사용하는 사람 @Stateless 주석 ManagedBeans 비슷한 문제를보고하고 있습니다 java.net 포럼.

이것이 당신에게 적용되는지 모르겠지만 주어진 해결 방법은 다음과 같습니다.

관리자 콘솔로 이동하여 업데이트 센터로 이동하여 EJB를 설치하십시오.

나는 그것을 직접 테스트하지 않았으므로 이것이 도움이 될 것임을 확인할 수 없습니다.

내 $ 0.02 ...

JAXME 라이브러리 (버전 0.5.2)를 응용 프로그램에 추가 한 후 같은 오류가 발생했습니다. 이로 인해 전쟁 모듈 중 하나에 배치 실패가 발생했습니다. 그 모듈을 변경하지 않았기 때문에 지옥을 혼란스럽게했습니다. JAXME를 제거하면 문제가 해결되었습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top