Greetings

I got a problem with accessing an EJB in Jakarta EE 9 and JDK 17 on a GlassFish 
6.2.3 with an Enterprise Client in JDK 17. I use NetBeans 12.6 to write my 
code, start/ stop the GlassFish server etc.
Heres my code:

TimeBeanRemote.java:

package

com.example;

import

jakarta.ejb.Remote;

@Remote

public

interface

TimeBeanRemote

{
    String

getTime

()

;
}

TimeBean.java:

package

com.example;

import

java.text.SimpleDateFormat;

import

java.util.Date;

import

jakarta.ejb.Stateless;

@Stateless

public

class

TimeBean

implements

TimeBeanRemote

{

@Override

public

String

getTime

()

{

Date

d1

=

new

Date

();

SimpleDateFormat

df

=

new

SimpleDateFormat

(

"yyyy-MM-dd HH:mm:ss"

);

String

formattedDate

=

df.format(d1);

return

"The time is "

+ formattedDate;
    }
}

TimeClient.java:

package

timeclient;

import

com.example.TimeBeanRemote;

import

javax.naming.InitialContext;

import

javax.naming.NamingException;

public

class

TimeClient

{

public

static

void

main

(String[] args)

{

try

{

InitialContext

ctx

=

new

InitialContext

();

Object

someEJBObject

=

ctx.lookup(

"com.example.TimeBeanRemote"

);

TimeBeanRemote

timeEJB

=

(TimeBeanRemote) someEJBObject;
            System.out.println(timeEJB.getTime());
        }

catch

(NamingException nex) {
            nex.printStackTrace();
        }
    }
}

Deploying the EJB on the GlassFish works fine. But as soon as I try to run the 
client and access the EJB with it I get the following error:

Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
-Djava.endorsed.dirs=D:\glassfish6\glassfish\lib\endorsed;D:\glassfish6\glassfish\modules\endorsed
 is not supported. Endorsed standards and standalone APIs
in modular form will be supported via the concept of upgradeable modules.
Java Result:

1

Tried to remove the JVM option parts about -Djava.endorsed in file 
private.properties from this:

...
j2ee.appclient.tool.jvmoptions=-Djava.endorsed.dirs=

"D:\\glassfish6\\glassfish\\lib\\endorsed"

;

"D:\\glassfish6\\glassfish\\modules\\endorsed"

-javaagent:

"D:\\glassfish6\\glassfish\\lib\\gf-client.jar"

=mode=acscript,arg=-configxml,arg=

"D:\\glassfish6\\glassfish\\domains\\glassfish623\\config\\glassfish-acc.xml"

,client=jar=
j2ee.appclient.tool.jvmoptions.class=-Djava.endorsed.dirs=

"D:\\glassfish6\\glassfish\\lib\\endorsed"

;

"D:\\glassfish6\\glassfish\\modules\\endorsed"

-javaagent:

"D:\\glassfish6\\glassfish\\lib\\gf-client.jar"

=mode=acscript,arg=-configxml,arg=

"D:\\glassfish6\\glassfish\\domains\\glassfish623\\config\\glassfish-acc.xml"

,client=class=
...

To this:

...
j2ee.appclient.tool.jvmoptions=-javaagent:

"D:\\glassfish6\\glassfish\\lib\\gf-client.jar"

=mode=acscript,arg=-configxml,arg=

"D:\\glassfish6\\glassfish\\domains\\glassfish623\\config\\glassfish-acc.xml"

,client=jar=
j2ee.appclient.tool.jvmoptions.class=-javaagent:

"D:\\glassfish6\\glassfish\\lib\\gf-client.jar"

=mode=acscript,arg=-configxml,arg=

"D:\\glassfish6\\glassfish\\domains\\glassfish623\\config\\glassfish-acc.xml"

,client=class=
...

Which leads to the following error when trying to run the client:

Java

HotSpot

(TM)

64

-Bit Server VM warning: Archived non-system classes are disabled because the 
java.system.class.loader property is

specified

(value =

"org.glassfish.appclient.client.acc.agent.ACCAgentClassLoader"

)

. To use archived non-system classes,

this

property must not be set
Error occurred during initialization of VM
java.lang.Error: org.glassfish.appclient.client.acc.agent.ACCAgentClassLoader
    at java.lang.ClassLoader.initSystemClassLoader(java.base@

17.0.1

/ClassLoader.java:

1995

)
    at java.lang.System.initPhase3(java.base@

17.0.1

/System.java:

2246

)
Caused by: java.lang.ClassNotFoundException: 
org.glassfish.appclient.client.acc.agent.ACCAgentClassLoader
    at jdk.internal.loader.BuiltinClassLoader.loadClass(java.base@

17.0.1

/BuiltinClassLoader.java:

641

)
    at jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(java.base@

17.0.1

/ClassLoaders.java:

188

)
    at java.lang.ClassLoader.loadClass(java.base@

17.0.1

/ClassLoader.java:

520

)
    at java.lang.Class.forName0(java.base@

17.0.1

/Native Method)
    at java.lang.Class.forName(java.base@

17.0.1

/Class.java:

467

)
    at java.lang.ClassLoader.initSystemClassLoader(java.base@

17.0.1

/ClassLoader.java:

1981

)
    at java.lang.System.initPhase3(java.base@

17.0.1

/System.java:

2246

)

Java Result:

1

What am I doing wrong here?
Thanks in advance

Reply via email to