2011-11-09 2 views
0

maven-embedded-glassfish-plugin을 사용하도록 pom 파일을 구성했습니다. 사실 이것은 프로젝트를 생성하는 jersey-webapp 가공물입니다. POM을의 플러그인 섹션은 다음과 같습니다 : - 받는다는은 - - 글래스 피쉬 - 플러그인을 내장maven-embedded-glassfish-plugin이 ClassNotFoundException을 던졌습니다.

org.glassfish $ {glassfish.version} 임베디드 글래스 피쉬 /사용자/vdevigere/프로젝트/ShoppingSite/shoppingsite -ws/대상/$ 테스트 .WAR {project.build.finalName} 사실 com.sun.jersey 저지 - 서블릿 $ {jersey.version} 012 3,516, 에서 javax.servlet 에서 javax.servlet-API 3.0.1

나는 MVN 임베디드 글래스 피쉬 수행 할 때 실행 내가 javax.ejb.Stateless를 찾을 수 없습니다 저를 알리는 스택 트레이스를 얻을. 스택 추적

에베 러 이하 : java.lang.IllegalStateException : ContainerBase.addChild : 클래스 com.sun.enterprise.web.WebApplication 시작 방법을 의 java.lang.Exception를 호출하면 예외하면서 시작 : org.apache.catalina .LifecycleException : org.apache.catalina.LifecycleException : java.lang.NoClassDefFoundError : javax/ejb/Stateless at com.sun.enterprise.web.WebApplication.start (WebApplication.java:138) at org.glassfish.internal. data.EngineRef.start (EngineRef.java:130) at org.glassfish.internal.data.ModuleInfo.start (ModuleInfo.java:269) at org.glassfish.internal.data.ApplicationInfo.start (ApplicationInfo.java : 294) com.sun.enterprise.v3.server.ApplicationLifecycle.deploy (App licationLifecycle.java:462) at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy (ApplicationLifecycle.java:240) at org.glassfish.deployment.admin.DeployCommand.execute (DeployCommand.java:382) at com.sun.enterprise.v3.admin.CommandRunnerImpl $ 1.execute (CommandRunnerImpl.java:355) com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand (CommandRunnerImpl.java:370) at com.sun.enterprise .v3.admin.CommandRunnerImpl.doCommand (CommandRunnerImpl.java:1064) com.sun.enterprise.v3.admin.CommandRunnerImpl.access에서 $ 1200 (CommandRunnerImpl.java:96) (com.sun.enterprise.v3.admin). CommandRunnerImpl $ ExecutionContext.execute (CommandRunnerImpl.java:1244) 에서 com.sun.enterprise.v3.admin.CommandRunnerImpl $ ExecutionContext.execute (CommandRun com.sun.enterprise.admin.cli.embeddable.DeployerImpl.deploy (DeployerImpl.java:129) 에서 자바 : org.glassfish.maven.PluginUtil.doDeploy (PluginUtil.java:106 105) ) sun.reflect.NativeMethodAccessorImpl.invoke에서 sun.reflect.NativeMethodAccessorImpl.invoke0 (기본 방법) (NativeMethodAccessorImpl.java:39에서) sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:25) org.glassfish.maven.AbstractDeployMojo.doDeploy에서 java.lang.reflect.Method.invoke (Method.java:597) 에서 (AbstractDeployMojo.java에서 : 239) at org.glassfish.maven.RunMojo.execute (RunMojo.java:68) 에서 org.apache.maven.plugin.DefaultPluginManager.executeMojo (DefaultPluginManager.java:490) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals (DefaultLifecycleExecutor.java:694) org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal에서 org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeStandaloneGoal (DefaultLifecycleExecutor.java:569) 에서 (DefaultLifecycleExecutor.java:539) org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments에서 org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures (DefaultLifecycleExecutor.java:387) (DefaultLifecycleExecutor.java:348) org.apache.maven.lifecycle에서 에서 . DefaultLifecycleExecutor.execute (DefaultLifecycleExecutor.java:180) at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:328) at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:138) at org.apache.maven.cli.MavenCli.main (MavenCli.java:362) at org.apache.maven.cli.compat.CompatibleMain.main (CompatibleMain.java:60) at sun.reflect.NativeMethodAccessorImpl. java.lang.reflect.Method.invoke에서 sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:25) 에서 sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:39) 에서 invoke0 (기본 방법) (방법 .java : 597) at org.codehaus.classworlds.Launcher.launchEnhanced (Launcher.java:315) at org.codehaus.classworlds.Launcher.launch (Launcher.java:255) at org.codehaus.classworlds.Launcher .mainWithExitCode (Launcher.java:430) at org.codehaus.classworlds.Launcher.main (Launcher.java:375)

javax.ejb.Stateless는 테스트 범위 종속성으로 포함 된 glassfish-embedded-web의 일부임을 확인했습니다.

org.glassfish.extras 글래스 피쉬 - 임베디드 웹 $ {glassfish.version} 내 기지에서 내가

이 작동하지 않는 이유에 종료 테스트. 응용 프로그램을 실제 glassfish 응용 프로그램 서버에 배포 할 수 있습니다.

답변

1

이 문제를 해결하려면, 당신은 pom.xml 파일에서 받는다는 - 임베디드 글래스 피쉬 - 플러그인의 종속 관계에서 종속성 목록에 다음과 같은 추가 종속성을 추가해야합니다

<dependency> 
     <groupId>org.glassfish</groupId> 
     <artifactId>javax.ejb</artifactId> 
     <version>${glassfish.version}</version> 
    </dependency> 
관련 문제