I can't get a very simple Java SE 17 application to do a lookup of an Stateless EJB deployed in Payara or Glassfish. Client is very simple : ( never mind the poor code, it gets an exception and are not meant to work)
package client;
import java.util.Properties;
import javax.naming.InitialContext;
import javax.naming.NamingException;
public class Client {
public static void main(String[] args) {
Properties props = new Properties();
props.setProperty("java.naming.factory.initial", "com.sun.enterprise.naming.SerialInitContextFactory");
Object o = new Object();
try {
InitialContext context = new InitialContext(props);
o = context.lookup("java:global/USer/User-ejb/UserService");
} catch (NamingException e) {
e.printStackTrace();
}
}
}
The libraries I'm using all come from Payara6 modules and lib directories:
appserv-rt.jar
config-api.jar
gf-client.jar
glassfish-api.jar
glassfish-naming.jar
hk2-api.jar
hk2-config.jar
hk2-core.jar
hk2-locator.jar
hk2-utils.jar
internal-api.jar
From Netbeans I use a library jakarta.jakartaeeapi-10.0.0.jar
Error message is:
java.lang.NullPointerException: Cannot invoke ".glassfish.internal.api.ORBLocator.getORB()" because "orbHelper" is null
at com.sun.enterprise.naming.impl.SerialContext.getORB(SerialContext.java:351)
at com.sun.enterprise.naming.impl.SerialContext.getProviderCacheKey(SerialContext.java:358)
at com.sun.enterprise.naming.impl.SerialContext.getRemoteProvider(SerialContext.java:388)
at com.sun.enterprise.naming.impl.SerialContext.getProvider(SerialContext.java:333)
at com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:482)
at com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:442)
at java.naming/javax.naming.InitialContext.lookup(InitialContext.java:409)
at client.Client.main(Client.java:12)
javax.naming.NamingException: Lookup failed for 'java:global/USer/User-ejb/UserService' in SerialContext[myEnv={java.naming.factory.state=com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl, java.naming.factory.initial=com.sun.enterprise.naming.SerialInitContextFactory, java.naming.factory.url.pkgs=com.sun.enterprise.naming} [Root exception is javax.naming.NamingException: Unable to acquire SerialContextProvider for SerialContext[myEnv={java.naming.factory.state=com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl, java.naming.factory.initial=com.sun.enterprise.naming.SerialInitContextFactory, java.naming.factory.url.pkgs=com.sun.enterprise.naming} [Root exception is java.lang.NullPointerException: Cannot invoke ".glassfish.internal.api.ORBLocator.getORB()" because "orbHelper" is null]]
at com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:496)
at com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:442)
at java.naming/javax.naming.InitialContext.lookup(InitialContext.java:409)
at client.Client.main(Client.java:12)
Caused by: javax.naming.NamingException: Unable to acquire SerialContextProvider for SerialContext[myEnv={java.naming.factory.state=com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl, java.naming.factory.initial=com.sun.enterprise.naming.SerialInitContextFactory, java.naming.factory.url.pkgs=com.sun.enterprise.naming} [Root exception is java.lang.NullPointerException: Cannot invoke ".glassfish.internal.api.ORBLocator.getORB()" because "orbHelper" is null]
at com.sun.enterprise.naming.impl.SerialContext.getProvider(SerialContext.java:338)
at com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:482)
... 3 more
Caused by: java.lang.NullPointerException: Cannot invoke ".glassfish.internal.api.ORBLocator.getORB()" because "orbHelper" is null
at com.sun.enterprise.naming.impl.SerialContext.getORB(SerialContext.java:351)
at com.sun.enterprise.naming.impl.SerialContext.getProviderCacheKey(SerialContext.java:358)
at com.sun.enterprise.naming.impl.SerialContext.getRemoteProvider(SerialContext.java:388)
t com.sun.enterprise.naming.impl.SerialContext.getProvider(SerialContext.java:333)
Nothing in the logs of Payara even with increased loglevels.
Any ideas?
I'm using Netbeans 24 and Payara 6.2024-5. I was expecting to find the bean as it is succesfully deployed in Payara.
I can't get a very simple Java SE 17 application to do a lookup of an Stateless EJB deployed in Payara or Glassfish. Client is very simple : ( never mind the poor code, it gets an exception and are not meant to work)
package client;
import java.util.Properties;
import javax.naming.InitialContext;
import javax.naming.NamingException;
public class Client {
public static void main(String[] args) {
Properties props = new Properties();
props.setProperty("java.naming.factory.initial", "com.sun.enterprise.naming.SerialInitContextFactory");
Object o = new Object();
try {
InitialContext context = new InitialContext(props);
o = context.lookup("java:global/USer/User-ejb/UserService");
} catch (NamingException e) {
e.printStackTrace();
}
}
}
The libraries I'm using all come from Payara6 modules and lib directories:
appserv-rt.jar
config-api.jar
gf-client.jar
glassfish-api.jar
glassfish-naming.jar
hk2-api.jar
hk2-config.jar
hk2-core.jar
hk2-locator.jar
hk2-utils.jar
internal-api.jar
From Netbeans I use a library jakarta.jakartaeeapi-10.0.0.jar
Error message is:
java.lang.NullPointerException: Cannot invoke ".glassfish.internal.api.ORBLocator.getORB()" because "orbHelper" is null
at com.sun.enterprise.naming.impl.SerialContext.getORB(SerialContext.java:351)
at com.sun.enterprise.naming.impl.SerialContext.getProviderCacheKey(SerialContext.java:358)
at com.sun.enterprise.naming.impl.SerialContext.getRemoteProvider(SerialContext.java:388)
at com.sun.enterprise.naming.impl.SerialContext.getProvider(SerialContext.java:333)
at com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:482)
at com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:442)
at java.naming/javax.naming.InitialContext.lookup(InitialContext.java:409)
at client.Client.main(Client.java:12)
javax.naming.NamingException: Lookup failed for 'java:global/USer/User-ejb/UserService' in SerialContext[myEnv={java.naming.factory.state=com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl, java.naming.factory.initial=com.sun.enterprise.naming.SerialInitContextFactory, java.naming.factory.url.pkgs=com.sun.enterprise.naming} [Root exception is javax.naming.NamingException: Unable to acquire SerialContextProvider for SerialContext[myEnv={java.naming.factory.state=com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl, java.naming.factory.initial=com.sun.enterprise.naming.SerialInitContextFactory, java.naming.factory.url.pkgs=com.sun.enterprise.naming} [Root exception is java.lang.NullPointerException: Cannot invoke ".glassfish.internal.api.ORBLocator.getORB()" because "orbHelper" is null]]
at com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:496)
at com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:442)
at java.naming/javax.naming.InitialContext.lookup(InitialContext.java:409)
at client.Client.main(Client.java:12)
Caused by: javax.naming.NamingException: Unable to acquire SerialContextProvider for SerialContext[myEnv={java.naming.factory.state=com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl, java.naming.factory.initial=com.sun.enterprise.naming.SerialInitContextFactory, java.naming.factory.url.pkgs=com.sun.enterprise.naming} [Root exception is java.lang.NullPointerException: Cannot invoke ".glassfish.internal.api.ORBLocator.getORB()" because "orbHelper" is null]
at com.sun.enterprise.naming.impl.SerialContext.getProvider(SerialContext.java:338)
at com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:482)
... 3 more
Caused by: java.lang.NullPointerException: Cannot invoke ".glassfish.internal.api.ORBLocator.getORB()" because "orbHelper" is null
at com.sun.enterprise.naming.impl.SerialContext.getORB(SerialContext.java:351)
at com.sun.enterprise.naming.impl.SerialContext.getProviderCacheKey(SerialContext.java:358)
at com.sun.enterprise.naming.impl.SerialContext.getRemoteProvider(SerialContext.java:388)
t com.sun.enterprise.naming.impl.SerialContext.getProvider(SerialContext.java:333)
Nothing in the logs of Payara even with increased loglevels.
Any ideas?
I'm using Netbeans 24 and Payara 6.2024-5. I was expecting to find the bean as it is succesfully deployed in Payara.
Share Improve this question edited Jan 29 at 20:47 Basil Bourque 340k122 gold badges934 silver badges1.3k bronze badges asked Jan 29 at 20:46 Jan NilssonJan Nilsson 511 silver badge3 bronze badges1 Answer
Reset to default 2After hours of search and trials I came to the conclusion that there is some problems with Payara and standalone-clients.
You should use gf-client.jar FROM THE INSTALLATION's DIRECTORY in your project. DON'T copy the file! and that's it!
If you only use that it will work with Glassfish 7.0.21 (that was what I used). Exactly the same code doesn't work with Payara 6.2024.5 (that was what I used).
For Payara the problem has noting to do with libraries etc., it is just a bug in the Payara environment. If you use the Glassfish version of gf-client.jar it works.