OpenJDK开发JavaEE?

OpenJDK开发JavaEE?,java,jakarta-ee,openjdk,Java,Jakarta Ee,Openjdk,我正在开发一个JavaEE应用程序,并将其部署在GlassFish3中。我正在使用Ubuntu12.04、面向EE开发人员的Eclipse和OpenJDK 6 JDK(包OpenJDK-6-JDK)。到目前为止没有问题 问题是,无论我在哪里查找有关使用OpenJDK进行JavaEE开发的信息,我都会发现OpenJDK被认为只是JavaSE,例如,或。然而,在我的应用程序中,我经常使用javax.*,并且工作正常 我下载了OpenJDK 6的源代码,发现文件夹/jdk/src/share/clas

我正在开发一个JavaEE应用程序,并将其部署在GlassFish3中。我正在使用Ubuntu12.04、面向EE开发人员的Eclipse和OpenJDK 6 JDK(包OpenJDK-6-JDK)。到目前为止没有问题

问题是,无论我在哪里查找有关使用OpenJDK进行JavaEE开发的信息,我都会发现OpenJDK被认为只是JavaSE,例如,或。然而,在我的应用程序中,我经常使用
javax.*
,并且工作正常

我下载了OpenJDK 6的源代码,发现文件夹
/jdk/src/share/classes/javax/
中有很多类,但是缺少一些重要的内容,如
javax.servlet
javax.ejb
javax.faces

再说一次,除了OpenJDK、GCJ或Oracle之外,我没有其他JDK

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

请注意,Oracle除了列出用于EE的SDK之外,还列出了用于SE的SDK,所以我认为它们是不同的,对吗


您的Glassfish服务器是具体的JavaEE实现。请注意,OpenJDK是一个具体的JavaSE实现。还要注意的是,每当您从Oracle站点使用JavaEE时,基本上只会得到Glassfish以及一堆文档和示例

另见:

事实上,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)

那么,推荐的工作流程是什么?您是否应该将JavaEE与OpenJDK一起安装?您是否应该将Glassfish与OpenSDK一起安装?你应该删除OpenJDK来安装这些吗?不。只需下载您想要的任何JavaEE服务器。另请参阅“也请参阅”链接。请注意,OpenJDK根本不适用于Glassfish。Glassfish专门寻找OracleJDK。如果有人回答了J2EE具体实现对OpenJDK的作用(如果有的话),那就太好了。2) 您应该向供应商报告错误,而不是在这里。