繁体   English   中英

无法在Netbeans7.3.1中创建Java Web EE 7项目

[英]Unable to create Java Web EE 7 project in Netbeans7.3.1

我遇到Netbeans的问题,当我尝试按照他们的指示创建Java Web时:

选择文件| 新项目。

在“类别”下,选择“Java Web”。

在Projects下,选择Web Application。

点击下一步。 Web服务器 - Apache Tomcat 7.0.42

但Java EE版本只是EE6EE5 为什么不显示EE7 我需要安装任何插件吗?

我安装了以下内容:

JDK 1.7_upadte_42
Netbeans 7.3.1
Apache Tomcat 7.0.42 

Tomcat 不是一个Java EE兼容的应用程序服务器,它是一个servlet容器1 官方网站上明确说明:

Apache Tomcat™是Java Servlet,JavaServer Pages,Java Expression Language和Java WebSocket技术的开源软件实现。

要使用Java EE 7+功能,您需要使用符合Java EE 7+的服务器。 目前,AFAIK仅由GlassFish 4完成。 当您访问官方网站时,它在顶部说明: 世界上第一个Java EE 7应用服务器 确保将项目配置为使用GlassFish 4,然后您可以为应用程序使用Java EE 7优势。

请注意,这也包含在Netbeans 7.3.1社区新闻中

NetBeans IDE 7.3.1是对NetBeans IDE 7.3的更新,包括以下要点(强调我的):

  • 支持Java EE 7开发
    • 部署到GlassFish 4 (不是Tomcat)
    • 支持主要的Java EE 7规范:JSF 2.2,JPA 2.1,JAX-RS 2.0,WebSocket 1.0等

1至少在Tomcat 7之前。从Tomcat 8看起来它将支持Java EE 7配置文件(来自上面链接的官方站点):

Apache Tomcat项目很自豪地宣布Apache Tomcat 8的下一个候选版本 - 8.0.0-RC5(alpha)。 Tomcat 8与Java EE 7保持一致。

简答:您需要将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配置文件,因此只要您坚持使用Web配置文件提供的功能,就可以将Java EE应用程序部署到它。*通常(如果不是通常)Web配置文件就是您所需要的。 提问者提到的Web项目仅使用来自Web配置文件的内容。 Tomcat 7符合Java EE 6 Web配置文件,Tomcat 8符合Java EE 7 Web配置文件,因此如果他想使用EE 7,OP只需要升级到Tomcat 8。

*通过为每个配置文件分发特定的API jar,可以很容易地粘贴到一个或另一个配置文件(完整配置文件的“javaee-api”,Web配置文件的“javaee-web-api”等)。 这是创建Java EE应用程序所需的唯一依赖项,您甚至不必(也不应该)将它捆绑在WAR中。 实际上,您可能需要捆绑(但不能编译) 某些库(或者使用Tomcat的TomEE变体)来使用所有EE 7 Web功能。

**如果您在构建文件中看到gobbledygook关于“认可的dirs”和“认可的API”,那不是真正的依赖关系,而只是为了确保您的代码针对正确的类版本进行编译。 例如,标准(非EE)Java 7运行时已包含JPA版本,但Java EE 7包含不同版本,因此编译器需要知道要使用的版本。 不要拿出那个gobbledygook或你可以(但可能不会)运行时“类版本不正确”的问题。

目前,Netbeans 7.3.1仅部分支持Java EE 7。 他们将在NB 8.0中支持它。 此外,您需要Tomcat 8 for Java EE 7,但他们的支持仍然是部分的。 Glassfish 4.0是现在的方式。

这是一些有用的文档:

http://wiki.netbeans.org/JavaEE7

http://tomcat.apache.org/whichversion.html

http://docs.oracle.com/javaee/7/tutorial/doc/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM