简短回答:您需要将 Tomcat 8+ 用于 Java EE 7 Web 项目。此外(如前所述),您可能需要使用更高版本的 NetBeans (7.4+) 以获得全面支持。
长答案:我在这里回答有点晚了,但我会发布一个答案以备不时之需,以防其他人看到这个问题并消除误解。与普遍的看法相反,您可以将 Java EE 应用程序部署到 Tomcat。
这里有两个相关的 Java EE 配置文件:“完整”配置文件(包括完整的 Java EE 堆栈)和“Web”配置文件(完整配置文件的子集,旨在更容易地由 servlet 容器实现)。如前所述,如果您必须使用仅在完整 Java EE 7 配置文件中可用的功能,则需要部署到应用服务器,例如 Glassfish 4+、[Jboss] Wildfly 8.1+ 或 JEUS 8。
但是,Tomcat确实符合 Java EE Web配置文件,因此您可以将 Java EE 应用程序部署到它,只要您坚持 Web 配置文件提供的功能。* 通常(如果不是通常)Web 配置文件就是您所需要的一切. 提问者提到的网络项目仅使用网络配置文件中的内容。Tomcat 7 符合 Java EE 6 Web 配置文件,而 Tomcat 8 符合 Java EE 7 Web 配置文件,因此 OP 如果要使用 EE 7,只需升级到 Tomcat 8。
* Oracle 通过为每个配置文件分发特定的 API jar(“javaee-api”用于完整配置文件,“javaee-web-api”用于 Web 配置文件等),可以轻松地坚持一个或另一个配置文件。这是您创建 Java EE 应用程序所需的唯一依赖项**,您甚至不必(也不应该)将它捆绑到您的 WAR 中。实际上,您可能需要捆绑(但不编译)一些库点菜 - 或使用 Tomcat 的 TomEE 变体 - 以使用所有 EE 7 Web 功能。
** 如果您在构建文件中看到关于“endorsed dirs”和“endorsed APIs”的 gobbledygook,这不是真正的依赖项,只是为了确保您的代码针对正确的类版本进行编译。例如,标准(非 EE)Java 7 运行时已经包含一个 JPA 版本,但 Java EE 7 包含一个不同的版本,因此编译器需要知道要使用哪个版本。不要取出那个 gobbledygook,否则您可能(但可能不会)遇到运行时“类版本不正确”的问题。