I try to connect from a stand-alone swing client (running in a separate JVM on the client machine) to the Glassfish server.
I currently use the following settings fr
By looking into the MANIFEST.MF file of the gf-client.jar library I noticed that there are some dozen other jar-libs referenced from there. In order to run the client outside of the netbeans platform, I had to copy all these libs to the final build of my own application. Then it works just fine... :-)
You are missing the jar containing the class com.sun.enterprise.naming.SerialInitialContextFactory in your classpath. Add it to the manifest of your client jar.
You want a Remote EJB interface when your client application lives on one JVM different than the one hosting the EJB module. In other words:
OR
Lets consider the first scenario where both of the client app and the EJB module live on different JVMs on the very same machine.
As per the documentation, stand-alone java clients must explicitly use the global JNDI name to lookup the Remote EJB. Also, Glassfish does not need any properties instialization to invoke the InitialContext() constructor. Thus the client application can invoke the EJB using the following snippet:
InitialContext context = new InitialContext();
_RemoteEjbInterface ejbBean = (_RemoteEjbInterface) context.lookup("java:global/DeployedEJBAppName/EjbImplClass!com.sam._RemoteEjbInterface");
Account for the above step (3) by adding this entry to your client app POM:
<dependency>
<groupId>org.glassfish.main.appclient.client</groupId>
<artifactId>gf-client</artifactId>
<version>3.1.2</version>
<scope>system</scope>
<systemPath>C:/glassfish3/glassfish/lib/gf-client.jar</systemPath>
</dependency>
Account for the above step (4) by a POM dependency pointing to you remote_interface.jar in your local maven repo assuming you installed it. Follow this to know how.
Another documentation to reference is here