users@glassfish.java.net

junit test with glassfish-embedded-static-shell

From: <forums_at_java.net>
Date: Wed, 12 Sep 2012 03:44:08 -0500 (CDT)

Hello! For unit testing I am trying to use the
glassfish-embedded-static-shell (Documentation [1]). However, I can't make
the below program execute succesfully. Instead, an exception is thrown. I
can't find the problem! Any help much appreciated! Exception /WARNUNG:
IOP00100006: Class com.sun.ejb.containers.JavaGlobalJndiNamingObjectProxy is
not Serializable/ /org.omg.CORBA.BAD_PARAM: WARNUNG: IOP00100006: Class
com.sun.ejb.containers.JavaGlobalJndiNamingObjectProxy is not Serializable
vmcid: SUN minor code: 6 completed: Maybe/ /at
sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)/ /at
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)/
/at
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)/
/at java.lang.reflect.Constructor.newInstance(Constructor.java:513)/ /at
com.sun.corba.ee.spi.orbutil.logex.corba.CorbaExtension.makeException(CorbaExtension.java:248)/
/at
com.sun.corba.ee.spi.orbutil.logex.corba.CorbaExtension.makeException(CorbaExtension.java:95)/
/at
com.sun.corba.ee.spi.orbutil.logex.WrapperGenerator.handleFullLogging(WrapperGenerator.java:387)/
/at
com.sun.corba.ee.spi.orbutil.logex.WrapperGenerator.access$400(WrapperGenerator.java:107)/
/at
com.sun.corba.ee.spi.orbutil.logex.WrapperGenerator$2.invoke(WrapperGenerator.java:511)/
/at
com.sun.corba.ee.spi.orbutil.proxy.CompositeInvocationHandlerImpl.invoke(CompositeInvocationHandlerImpl.java:99)/
/at $Proxy89.notSerializable(Unknown Source)/ /at
com.sun.corba.ee.impl.orbutil.ORBUtility.throwNotSerializableForCorba(ORBUtility.java:783)/
/at com.sun.corba.ee.impl.javax.rmi.CORBA.Util.writeAny(Util.java:361)/ /at
com.sun.corba.ee.impl.presentation.rmi.DynamicMethodMarshallerImpl$10.write(DynamicMethodMarshallerImpl.java:307)/
/at
com.sun.corba.ee.impl.presentation.rmi.DynamicMethodMarshallerImpl.writeArguments(DynamicMethodMarshallerImpl.java:466)/
/at
com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.privateInvoke(StubInvocationHandlerImpl.java:198)/
/at
com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.invoke(StubInvocationHandlerImpl.java:152)/
/at
com.sun.corba.ee.impl.presentation.rmi.codegen.CodegenStubBase.invoke(CodegenStubBase.java:227)/
/at
com.sun.enterprise.naming.impl._SerialContextProvider_DynamicStub.rebind(com/sun/enterprise/naming/impl/_SerialContextProvider_DynamicStub.java)/
/at
com.sun.enterprise.naming.impl.SerialContext.rebind(SerialContext.java:707)/
/at
com.sun.enterprise.naming.impl.SerialContext.rebind(SerialContext.java:724)/
/at javax.naming.InitialContext.rebind(InitialContext.java:412)/ /at
com.sun.enterprise.naming.impl.GlassfishNamingManagerImpl.publishObject(GlassfishNamingManagerImpl.java:206)/
/at
com.sun.enterprise.naming.impl.GlassfishNamingManagerImpl.publishObject(GlassfishNamingManagerImpl.java:189)/
/at
com.sun.ejb.containers.BaseContainer$JndiInfo.publish(BaseContainer.java:5629)/
/at
com.sun.ejb.containers.BaseContainer.initializeHome(BaseContainer.java:1540)/
/at
com.sun.ejb.containers.StatelessSessionContainer.initializeHome(StatelessSessionContainer.java:202)/
/at
com.sun.ejb.containers.ContainerFactoryImpl.createContainer(ContainerFactoryImpl.java:167)/
/at
org.glassfish.ejb.startup.EjbApplication.loadContainers(EjbApplication.java:230)/
/at org.glassfish.ejb.startup.EjbDeployer.load(EjbDeployer.java:305)/ /at
org.glassfish.ejb.startup.EjbDeployer.load(EjbDeployer.java:108)/ /at
org.glassfish.internal.data.ModuleInfo.load(ModuleInfo.java:186)/ /at
org.glassfish.internal.data.ApplicationInfo.load(ApplicationInfo.java:264)/
/at
com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:460)/
/at
com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:240)/
/at
org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:389)/
/at
com.sun.enterprise.v3.admin.CommandRunnerImpl$1.execute(CommandRunnerImpl.java:348)/
/at
com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:363)/
/at
com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1085)/
/at
com.sun.enterprise.v3.admin.CommandRunnerImpl.access$1200(CommandRunnerImpl.java:95)/
/at
com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1291)/
/at
com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1259)/
/at
com.sun.enterprise.admin.cli.embeddable.DeployerImpl.deploy(DeployerImpl.java:129)/
/at
com.sun.enterprise.admin.cli.embeddable.DeployerImpl.deploy(DeployerImpl.java:105)/
/at
org.glassfish.ejb.embedded.EJBContainerImpl.deploy(EJBContainerImpl.java:140)/
/at
org.glassfish.ejb.embedded.EJBContainerProviderImpl.createEJBContainer(EJBContainerProviderImpl.java:134)/
/at
javax.ejb.embeddable.EJBContainer.createEJBContainer(EJBContainer.java:127)/
/at
javax.ejb.embeddable.EJBContainer.createEJBContainer(EJBContainer.java:102)/
/at de.exim.HelloWorldTest.setUpClass(HelloWorldTest.java:25)/ /at
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)/ /at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)/
/at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)/
/at java.lang.reflect.Method.invoke(Method.java:597)/ /at
org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:45)/
/at
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)/
/at
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:42)/
/at
org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:27)/
/at
org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:30)/
/at org.junit.runners.ParentRunner.run(ParentRunner.java:300)/ /at
org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:252)/
/at
org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:141)/
/at
org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:112)/
/at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)/ /at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)/
/at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)/
/at java.lang.reflect.Method.invoke(Method.java:597)/ /at
org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189)/
/at
org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165)/
/at
org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85)/
/at
org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:115)/
/at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:75)/
/10.09.2012 11:06:46 org.glassfish.internal.data.ModuleInfo load/
/SCHWERWIEGEND: Exception while invoking class
org.glassfish.ejb.startup.EjbDeployer load method/
/java.lang.RuntimeException: EJB Container initialization error/ /at
org.glassfish.ejb.startup.EjbApplication.loadContainers(EjbApplication.java:242)/
/at org.glassfish.ejb.startup.EjbDeployer.load(EjbDeployer.java:305)/ /at
org.glassfish.ejb.startup.EjbDeployer.load(EjbDeployer.java:108)/ /at
org.glassfish.internal.data.ModuleInfo.load(ModuleInfo.java:186)/ /at
org.glassfish.internal.data.ApplicationInfo.load(ApplicationInfo.java:264)/
/at
com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:460)/
/at
com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:240)/
/at
org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:389)/
/at
com.sun.enterprise.v3.admin.CommandRunnerImpl$1.execute(CommandRunnerImpl.java:348)/
/at
com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:363)/
/at
com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1085)/
/at
com.sun.enterprise.v3.admin.CommandRunnerImpl.access$1200(CommandRunnerImpl.java:95)/
/at
com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1291)/
/at
com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1259)/
/at
com.sun.enterprise.admin.cli.embeddable.DeployerImpl.deploy(DeployerImpl.java:129)/
/at
com.sun.enterprise.admin.cli.embeddable.DeployerImpl.deploy(DeployerImpl.java:105)/
/at
org.glassfish.ejb.embedded.EJBContainerImpl.deploy(EJBContainerImpl.java:140)/
/at
org.glassfish.ejb.embedded.EJBContainerProviderImpl.createEJBContainer(EJBContainerProviderImpl.java:134)/
/at
javax.ejb.embeddable.EJBContainer.createEJBContainer(EJBContainer.java:127)/
/at
javax.ejb.embeddable.EJBContainer.createEJBContainer(EJBContainer.java:102)/
/at de.exim.HelloWorldTest.setUpClass(HelloWorldTest.java:25)/ /at
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)/ /at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)/
/at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)/
/at java.lang.reflect.Method.invoke(Method.java:597)/ /at
org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:45)/
/at
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)/
/at
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:42)/
/at
org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:27)/
/at
org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:30)/
/at org.junit.runners.ParentRunner.run(ParentRunner.java:300)/ /at
org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:252)/
/at
org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:141)/
/at
org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:112)/
/at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)/ /at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)/
/at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)/
/at java.lang.reflect.Method.invoke(Method.java:597)/ /at
org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189)/
/at
org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165)/
/at
org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85)/
/at
org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:115)/
/at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:75)/
/Caused by: java.lang.RuntimeException: Error while binding JNDI name
java:global/classes/HelloWorld!de.exim.HelloWorld for EJB HelloWorld/ /at
com.sun.ejb.containers.BaseContainer.initializeHome(BaseContainer.java:1553)/
/at
com.sun.ejb.containers.StatelessSessionContainer.initializeHome(StatelessSessionContainer.java:202)/
/at
com.sun.ejb.containers.ContainerFactoryImpl.createContainer(ContainerFactoryImpl.java:167)/
/at
org.glassfish.ejb.startup.EjbApplication.loadContainers(EjbApplication.java:230)/
/... 42 more/ /Caused by: javax.naming.CommunicationException:
java.rmi.MarshalException: CORBA BAD_PARAM 1398079494 Maybe; nested exception
is:/ /java.io.NotSerializableException: WARNUNG: IOP00100006: Class
com.sun.ejb.containers.JavaGlobalJndiNamingObjectProxy is not Serializable/
/at
com.sun.enterprise.naming.impl.SerialContext.rebind(SerialContext.java:709)/
/at
com.sun.enterprise.naming.impl.SerialContext.rebind(SerialContext.java:724)/
/at javax.naming.InitialContext.rebind(InitialContext.java:412)/ /at
com.sun.enterprise.naming.impl.GlassfishNamingManagerImpl.publishObject(GlassfishNamingManagerImpl.java:206)/
/at
com.sun.enterprise.naming.impl.GlassfishNamingManagerImpl.publishObject(GlassfishNamingManagerImpl.java:189)/
/at
com.sun.ejb.containers.BaseContainer$JndiInfo.publish(BaseContainer.java:5629)/
/at
com.sun.ejb.containers.BaseContainer.initializeHome(BaseContainer.java:1540)/
/... 45 more/ pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion>
<groupId>gfembedd</groupId> <artifactId>gfembedd</artifactId>
<packaging>war</packaging> <version>1.0-SNAPSHOT</version> <name>gfembedd
Maven Webapp</name> <url>http://maven.apache.org</url> <properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.build.timestamp.format>yyyyMMdd'T'HHmmss</maven.build.timestamp.format>
<glassfish.home>/Users/grudom/Programme/glassfish</glassfish.home>
<eclipselink.version>2.4.0</eclipselink.version> </properties> <repositories>
<repository> <id>EclipseLink</id>
<url>http://download.eclipse.org/rt/eclipselink/maven.repo</url>
</repository> </repositories> <pluginRepositories> <pluginRepository>
<id>Glassfish</id> <url>http://download.java.net/maven/glassfish/</url>
</pluginRepository> </pluginRepositories> <dependencies> <dependency>
<groupId>junit</groupId> <artifactId>junit</artifactId>
<version>4.10</version> <scope>test</scope> </dependency> <dependency>
<groupId>org.glassfish.extras</groupId>
<artifactId>glassfish-embedded-static-shell</artifactId>
<version>${project.version}</version> <scope>system</scope> <systemPath>
${glassfish.home}/glassfish/lib/embedded/glassfish-embedded-static-shell.jar
</systemPath> </dependency> <dependency> <groupId>javax</groupId>
<artifactId>javaee-api</artifactId> <version>6.0</version>
<scope>provided</scope> </dependency> </dependencies> <build>
<finalName>${project.artifactId}</finalName> <plugins> <plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId> <version>2.3.2</version>
<configuration> <source>1.6</source> <target>1.6</target> </configuration>
</plugin> <plugin> <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId> <version>2.1.1</version>
<configuration> <warName>aa</warName>
<failOnMissingWebXml>false</failOnMissingWebXml> </configuration> </plugin>
<plugin> <artifactId>maven-surefire-plugin</artifactId>
<version>2.12.3</version> <configuration> <skip>false</skip> </configuration>
</plugin> </plugins> </build> </project> HelloWorld.java (no-interface view)
package de.exim.stateless;import javax.ejb.Stateless;@Statelesspublic class
HelloWorld { public String printHelloWorld() { return "Hello World"; }}
HelloWorldTest.java package de.exim.stateless;import static
org.junit.Assert.assertEquals;import java.util.HashMap;import
java.util.Map;import javax.ejb.embeddable.EJBContainer;import
javax.naming.Context;import javax.persistence.EntityManager;import
javax.persistence.PersistenceContext;import org.junit.AfterClass;import
org.junit.BeforeClass;import org.junit.Test;public class HelloWorldTest {
static EJBContainer container; static Context ctx; static HelloWorld hw;
@PersistenceContext(unitName = "UserService") private EntityManager em;
@BeforeClass public static void setUpClass() throws Exception { container =
EJBContainer.createEJBContainer(); ctx = container.getContext(); hw =
(HelloWorld) ctx.lookup("java:global/classes/HelloWorld"); createTestData();
} @AfterClass public static void tearDownClass() throws Exception { if
(container != null) { container.close(); } } private static void
createTestData() { } @Test public void testBookCoursePositive() {
assertEquals(2,2); }} When using the following JNDI name in a servlet the
bean is being found. When using the same name in the test bean, however, the
name is automatically changed to "java:global/classes..." and the same
exception as given above is being thrown. try { Context ctx = new
InitialContext(); hw = (HelloWorld) ctx.lookup("java:module/HelloWorld");}
catch (NamingException ex) {
Logger.getLogger(HelloWorldServlet.class.getName()).log(Level.SEVERE, null,
ex);} Regards, Stoney

[1] http://docs.oracle.com/cd/E18930_01/html/821-2424/gjldt.html#scrolltoc

--
[Message sent by forum member 'Stoney']
View Post: http://forums.java.net/node/890167