OpenJDK 开发 JavaEE?

2022-09-02 13:20:20

我正在开发一个JavaEE应用程序,并将其部署在Glassfish 3中。我使用的是Ubuntu 12.04,EE开发人员的Eclipse和OpenJDK 6 JDK(package openjdk-6-jdk)。到目前为止没有问题。

问题是,在我查找有关使用OpenJDK进行Java EE开发的信息的任何地方,我都发现OpenJDK只是Java SE,例如在这里这里。然而,在我的应用程序中,我使用了很多,并且正在工作。javax.*

我已经下载了OpenJDK 6的源代码,我发现了很多类的文件夹,但是缺少一些重要的内容,例如,或./jdk/src/share/classes/javax/javax.servletjavax.ejbjavax.faces

同样,除了OpenJDK之外,我没有任何其他JDK,也没有GCJ或Oracle。

我的问题是:这怎么可能?OpenJDK是否支持JavaEE API?它可以用于此目的,还是我需要下载并安装Oracle JDK?我在这里不明白什么?

请注意,Oracle将SDK与EE的SDK分开,所以我想它们是不同的,对吧?

亲切问候


答案 1

您的 Glassfish 服务器是具体的 Java EE 实现。请注意,OpenJDK 是一个具体的 Java SE 实现。另请注意,每当您从Oracle站点下载Java EE时,基本上您得到的只是Glassfish以及一堆文档和示例。

另请参阅:


答案 2

事实上,J2EE 没有指定 JVM,Glassfish4 和 5 都检查 Oracle JVM,并且不与任何其他 JVM 一起运行。

请注意,OpenJDK根本无法与Glassfish一起使用。Glassfish正在寻找OracleJDK。

如果您尝试使用OpenJDK 12.0在MacOS上启动glassfish,就会发生这种情况:

bin/asadmin start-domain
Exception in thread "main" java.lang.NullPointerException
    at com.sun.enterprise.module.common_impl.AbstractModulesRegistryImpl.initializeServiceLocator(AbstractModulesRegistryImpl.java:152)
    at com.sun.enterprise.module.common_impl.AbstractModulesRegistryImpl.newServiceLocator(AbstractModulesRegistryImpl.java:144)
    at com.sun.enterprise.module.common_impl.AbstractModulesRegistryImpl.createServiceLocator(AbstractModulesRegistryImpl.java:218)
    at com.sun.enterprise.module.common_impl.AbstractModulesRegistryImpl.createServiceLocator(AbstractModulesRegistryImpl.java:224)
    at com.sun.enterprise.module.single.StaticModulesRegistry.createServiceLocator(StaticModulesRegistry.java:88)
    at com.sun.enterprise.admin.cli.CLIContainer.getServiceLocator(CLIContainer.java:217)
    at com.sun.enterprise.admin.cli.CLIContainer.getLocalCommand(CLIContainer.java:255)
    at com.sun.enterprise.admin.cli.CLICommand.getCommand(CLICommand.java:231)
    at com.sun.enterprise.admin.cli.AdminMain.executeCommand(AdminMain.java:371)
    at com.sun.enterprise.admin.cli.AdminMain.doMain(AdminMain.java:306)
    at org.glassfish.admin.cli.AsadminMain.main(AsadminMain.java:57)

推荐