J2EE7 环境安装配置

J2EE7环境安装配置

下载

1. 下载目录:
http://www.oracle.com/technetwork/java/javaee/downloads/index.html
2. 选择Java EE7 SDK按钮,即可进入下载页面。
3. 选择AcceptLicense Agreement(接受许可协议)
4. 选择可以在Windows下运行的版本 java_ee_sdk-7-windows.exe   95M

安装
下一步 --> 典型安装 --> 程序会自动选择GlassFish Server的安装目录和JDK的安装目录 --> 下一步…  overall Status: Complete  表示安装完成配置

1. 将C:\glassfish4\glassfish\bin添加到用户变量中的PATH。
PATH=C:\glassfish4\glassfish\bin

J2EE7环境安装配置

2. 将C:\glassfish4\glassfish\lib\javaee.jar添加到CLASSPATH。
CLASSPATH=C:\glassfish4\glassfish\lib\javaee.jar

J2EE7环境安装配置

3. 将C:\glassfish4添加到新建用户变量中.
J2EE_HOME=C:\glassfish4

J2EE7环境安装配置

至此Java EE环境安装,配置就算完成。
 
 
 
JavaEE 7技术一览

JavaEE 体系结构非常膨大,从javaEE 5到现在的javaEE 7,新特性层出不穷。如果把一些偏门技术算进去,如一些基于JVM平台的Grails、Scala,主流SSH框架,谷歌的GWT,BPM工作流的 JBPM、Activiti,Vaadin,OSGI,Apache组织一大堆协议组件和库,各种开源模版技术,各种搜索引擎,各种规则引擎等等,没有你想不到的,只有你不知道的。尽管如此,JavaEE足以解决企业开发的所有问题。

JavaEE 7提供了一个完整、全面、集成的堆栈来帮助你构建企业和Web应用程序。

JavaEE容器

主要就是JSF(JavaServer Faces)和EJB(Enterprise Java Bean)两大部分,JSF依赖于EJB,并且是重量级的,JSF使用了一大堆组件控制页面,跟Struts2的标签差不多;EJB目前做得不错,相比 Spring,EJB完全不需要作任何配置,内部包含JPA规范,可以和Hibernate无缝接入,但是学习曲线依然很大,并且对服务器有要求,用 tomcat做服务器还需要和JBoss搭配,新手学习可以使用Glassfish。

 J2EE7环境安装配置

WEB容器

这部分内容比较多,JavaEE 7新添加的为下图棕黄色的部分,即WebSocket、Concurrency Utilities、Batch、JSON-P,新添加部分主要是为HTML5提供更好的伸缩性,这些Spring都有,不知是否是借鉴Spring的部分功能。技术虽然很多,其实都有JSR白皮书规约的,有些已经有最终定稿,有些还处于草案和不断修改阶段(其实也没有最终定稿,而是处于维护阶段)。
 
 J2EE7环境安装配置

 
下面说说一些常见的概念术语:

JWS:即Java Web Service,指与webservice相关的JavaEE技术部分,webservice是一种基于XML的独立的、跨平台的、互操作的应用程序,XML又包含XSD、DTD、XPath等相关技术,这个撇开不说。webservice平台元素主要有SOAP(简易对象访问协议)、UDDI(通用描述、发现及整理)、WSDL(WS描述语言)。
JAX:即Java Xml,类似地JAXB(Java Xml Binding)
目前JWS主要有:
JAX-WS 全称JavaTM API forXML-Based Web Services 又叫JAX-RPC(远程调用),顾名思义就是基于Web Services
JAX-RS 全称JavaTM API forRESTful Web Services 即使用REST风格
JAXB
JAXR
SAAJ
STAX
网上说关于JAX-WS与JAX-RS有这么说的:两者是不同风格的SOA架构。前者以动词为中心,指定的是每次执行函数。而后者以名词为中心,每次执行的时候指的是资源。

感觉这个说法比较靠谱,JAX-WS是面向消息的,每次请求的时候指定了请求的方法。JAX-RS是面向资源的。后则将网络上的东西当做一种资源,每次请求都是对该资源进行操作,比如对资源的增删查改。

关于REST风格,在JAX-RS之前就已经出现,最早的出现的是Restlet、RestEasy框架,后来是Jersey,并且现在Oracle的 Glassfish使用的就是Jersey,相对来说Restlet功能齐全、组件膨大,页面和模版技术丰富,由于出现比较早,导致Restlet发展了自己的一套MVC技术,Jersey也是一套JAX-RS产品,内部提供了好几套容器和服务器,大致有grizzly2、JDK-http、 simple-http、Jetty这几种。Jersey的MVC和Spring MVC有点类似(如其说是类似,简直就是一模一样),只是只有Jsp和Freemarker两种视图技术。

CDI:即Contexts Dependency Injection,和Spring的IOC差不多的东西,就是可以在组件中通过注解注入上下文、请求和响应等。

JTA:即Java Transaction API,使用过Hibernate和EJB的应该知道,就是事务处理,JTA依赖于所处的容器,如果不是分布式开发的话,我们一般使用本地事务,即是数据库本身的事务处理。

JPA:即Java Persistence API,就是最常用的持久化技术,原本属于EJB中的部分,EJB3.0之后分离出来,作为一个独立的规范。作为一种ORM技术,JPA提供了基本的统一标准,现在JPA的草案处于维护阶段,对应的Hibernate框架的某些版本也处于Final版本。

JMS:即Java Message Service,和JDBC类似,提供了一个统一的API供其他厂商实现,主要用于客户机信息的交互,JMS主要有点到点和订阅/发布两种方式。
另外,像Java Mail、JSTL、JSP等这些再熟悉不过的就不说了。

下面列出一些常用的技术缩写:
EJB:  Enterprise  JavaBeans  企业JavaBean组件  
IDL:    Interface  Definition  Language  接口定义语言  
J2EE  CA:J2EE Connector Architecture J2EE 连接器架构
JAAS  :   The Java Authentication and Authorization Service  java认证授权服务
JACC: Java Authorization Contract with the Container??Java容器授权合约
JATMI:Java Application-to-Transaction Monitor Interface?Java 应用-事务监控接口
JBI   :   Java Business Integration Java业务集成
JCA   :  J2EE Connector Architecture Java连接器架构
JCP   :  Java Community Process Java组织
JDBC : Java Database Connectivity
JDO   :Java Data Objects
JDK:?Java Development Kit
JEMS : JBoss Enterprise Middleware Suite Jboss企业中间件
JMS :   Java Messaging Service Java消息服务
JMX   :Java Management extensions Java管理扩展
JNDI  : Java Naming and Directory Interface Java命名与目录借口服务
JPDA:  Java Platform Debugger Architecture??Java平台调试器架构
JRMP:Java Remote Message Protocol
JSP:   Java Server Page
JSTL: Java Standard Tag Library Java 标准标签库
JTS:   Java  Transaction  Service  Java事务服务
JTA :    Java Transaction API Java事务API
JVM  :  Java Virtual Machine Java虚拟机
MVC:   Model-View-Control
NIC:   Network Interface Card
O/R:   Object-Relational
OTS:   Object Transactional Services
PKI:   Public Key Infrastructure
POJO:  Plain Old Java Object
RMI:   Remote  Method  Invocation  远程方法调用
RMI/IIOP:RMI protocol over IIOP

EJB分为三种:  
Session  Bean(会话BEAN)  
Entity  Bean(实体BEAN)  
Message  Driver  Bean(消息驱动BEAN)
Session  Bean分为两种:  
Stateless  Session  Bean(无状态会话Bean)  
Statefull  Session  Bean(有状态会话Bean)

Entity  Bean分为两种:  
CMP:  Container  Manager  Persistence(容器管理持久性)
BMP:  Bean  Manager  Persistence(Bean管理持久性)

其他缩写名词:  
BPEL  :   Business Process Execution Language 业务流程执行语言
BPM   :   Business Process Management 业务流程管理
DAO   :  Database  Access  Object  数据库访问对象  
DOM  :   Document Object Model  文档对象模型
DTD :     Document Type Definition  文档类型定义
DTO   :  Data  Transport  Object  数据传输对象  
ESB :     EnterpriseService Bus 企业服务总线
POJO :  Proterozoic  Java  Object  Java原生对象  
SAAJ:   SOAP with Attachments API for JavaTM  Java 的带附件的SOAP API
SAX :    Simple API for XML Parsing XML解析处理简单API
SAML:    Security Assertions markup Language
SGML  :  Standard Generalized Markup Language  SAML(Security Assertion Markup Language ):安全断言标记语言
SLA:      Service Level Agreement服务级别协议
SNMP:    Simple Network Management Protocol:简单网络管理协议
SOA :    Service Oriented Architecture
SOAP:    Simple Object Access Protocol
SPENGO:Simple and Protected GSS-API Negotiation Mechanism 简单和受保护的GSS-API协商机制
SPI:     * *Service Provider Interface ):服务提供模块接口
SSL:     Secure Socket Layer):安全套接字层
SSO:     Single Sign-on):单点登录
SSPI:    Security Service Provider Interface):安全服务提供模块接口
StAX:    Streaming API for XML):XML 的流化API
UDDI:    Universal Description,Discovery,and Integration
VO   :    Value  Object  值对象  
WFMS:  workflow management system
WSDL:   Web Service Description Language
WSEE:  *Web Services Enterprise Edition
WSRP:  *OASIS Web Service for Remote Portlets
XA:      * *Extended Architecture 扩展架构
XACML:  XML Access Control Markup Language ):XML 访问控制标记语言
XSLT:   XML Stylesheet Language for Transformations

说明
严格来说,Java EE还有EJB容器和客户端容器。其中,EJB容器没有Servlet,客户端容器(Application Client Container)没有Servlet和持久化。
 
Glassfish上部署web应用
一、说在前面
 
在现有的Java web开发中,关于应用服务器,大家最熟知的开源的有:Tomcat、Jboss、Resin,目前看来这三个开源应用服务器用的相当广泛,主要原因以我来看有下面几点:
 
1. Tomcat是Apache鼎力支持的Java Web应用服务器,由于它优秀的稳定性以及丰富的文档资料,广泛的使用人群,从而在开源领域受到最广泛的青睐。 
2. Jboss作为Java EE应用服务器,它不但是Servlet容器,而且是EJB容器,从而受到企业级开发人员的欢迎,从而弥补了Tomcat只是一个Servlet容器的缺憾。 
3. Resin也仅仅是一个Servlet容器,然而由于它优秀的运行速度,使得它在轻量级Java Web领域备受喜爱,特别是在互联网Web服务领域,众多知名公司都采用其作为他们的Java Web应用服务器,譬如163、ku6等。
 
在商用应用服务器里主要有:Weblogic、Websphere,其中Weblogic我也使用过很长一段时间,当时也只用其当Servlet容器,然而就在同等条件下,在性能及易用性等方面,要比Tomcat优秀很多。
 
今天我重点要给大家介绍一款由大名鼎鼎的Sun公司推出的Glassfilsh的Java EE服务器,Glassfish是一个免费、开放源代码的应用服务,它实现了Java EE 5,Java EE 5 平台包括了以下最新技术:EJB 3.0、JSF 1.2、Servlet 2.5、JSP 2.1、JAX-WS 2.0、JAXB 2.0、 Java Persistence 1.0、Common Annonations 1.0、StAX 1.0等,关于Glassfish的其他一些优点,大家可以访问起官方网站
 
Java EE GlassFish4 安装使用
【命令行方式】:
步骤一: 安装JDK7及配置,略
步骤二:下载Glassfish4,地址:https://glassfish.java.net/download.html#
步骤三: 解压glassfish-4.0.zip到指定安装目录
步骤四: 开始命令行启动, cd到glassfish4/bin/目录,然后asadmin start-domain
步骤五:登录console进行查看及配置,地址:http://localhost:4848
 
【Eclipse方式】:
步骤一: 安装JDK7及配置,略
步骤二:下载Glassfish4,地址:https://glassfish.java.net/download.html#
步骤三: 解压glassfish-4.0.zip到指定安装目录
步骤四: 搞个高大上的eclipse,例如:

Eclipse Java EE IDE for Web Developers.
Version: Kepler Service Release 2
Build id: 20140224-0627

步骤五: 安装glassfish插件,window->show view-> servers,然后右键,new->server->download additional server adapters(右上角)个,接着选择安装即可。
步骤六: 配置glassfish,如下

注意:
1,Domain directory指定glassfish目录
2,用户名admin,密码为空

步骤七: 点击start按钮
步骤八:登录console进行查看及配置,地址:http://localhost:4848
 
PS:eclipse一个JDK7的配置
 
1.Glassfish4.0下载地址:https://glassfish.java.net/download.html#gfoseTab

2.将下载的glassfish-4.0.zip传输到服务器/home/[usrname]/opt目录下,使用命令传输:
scp glassfish-4.0.zip cmmcc@ [usrname][1-5]: /home/[usrname]/opt

3.创建文件夹:/home/[usrname]/opt/glassfish4,使用命令:
sudo mkdir glassfish4 /home/[usrname]/opt/

4.将.zip文件解压到/home/[usrname]/opt/glassfish4文件夹下,使用命令:
unzip glassfish-4.0.zip /home/[usrname]/opt/glassfish4

5.添加glassfish用户:
sudo useradd --system glassfish -d /home/[usrname]/opt/glassfish4

6.设置目录权限:
sudo chgrp -R [usrname] /home/[usrname]/opt/glassfish4/
sudo chown -R glassfish /home/[usrname]/opt/glassfish4/

7.设置脚本执行权限:
sudo chmod -R +x /home/[usrname]/opt/glassfish4/bin
sudo chmod -R +x /home/[usrname]/opt/glassfish4/glassfish/bin

8.在glassfish用户下启动服务
sudo su glassfish
cd /home/[usrname]/opt/glassfish4/bin
./asadmin start-domain domain1

9.修改默认用户admin的密码
在bin目录下找到asadmin文件,启动后依次执行:
./asadmin
asadmin>change-admin-password
提示输入用户名: 直接按Enter(不要输入,否则会报错)
提示密码: 直接按Enter
输入新密码:[usrname]glassfish
确认密码:[usrname]glassfish
回车后即提示修改成功

10.开启远程访问权限并退出glassfish用户
asadmin >enable-secure-admin
asadmin >exit

11.关闭服务并重启服务
./asadmin stop-domain
./asadmin start-domain domain1

12.添加命令自启动
sudo vi /etc/rc.local
/home/[usrname]/opt/glassfish4/bin/asadmin start-domain domain1

13.重新启动系统,检查安装结果:
http://[机器IP]:4848/

GlassFish 是一款强悍的J2EE 应用服务器,支持完整的 J2EE 标准,而且开源免费,如果服务器配置不是特别低,若4G以上内存我推荐使用GlassFish,系统配置低,且仅使用JSP/JavaBean/Servlet的得话,还是用Tomcat要好些(占内存恐怕只有 GlassFish 的 1/10)。

GlassFish 有 Open Source GlassFish 和 Oracle GlassFish 两个版本,Open Source GlassFish 全开源,可任意使用, Oracle GlassFish 则需要遵守OTN 许可协议,可获得全功能无限期测试,拥有许可证才能用于生产,两款相似度超过99%,Oracle GlassFish 有一些性能调优的设置,但这些设置在 Open Source GlassFish 中可参考手册直接修改配置文件,也可以达相同的目的。

Open Source GlassFish 可由 http://glassfish.java.net/ 进行下载,下载的是安装版的话,基本上以下内容您可以略过,但如果您下载的是ZIP版在UNIX或者Windows下,操作基本一样,不过在安装之前先配置Java环境,本文不讨论。

Windows 下,解压 ZIP 包到X:\glassfish3下,Unix/FreeBSD解压至 /usr/local/glassfish3 目录下,Windows进入GlassFish的bin目录运行asadmin,FreeBSD下运行./asadmin,进入GlassFish控制台,Windows 和 FreeBSD 的 asadmin 的进入只是形式的不同,本质没区别。
Windows 下,domain 作为“服务”以后,可以使用 Windows Services Manager 控制该服务, 也可以使用 Windows Services Wrapper:
 
相应得命令如下:
启动命令: domain1\bin\domain1Service.exe  start
停止命令: domain1\bin\domain1Service.exe  stop
重新启动命令: domain1\bin\domain1Service.exe  restart
卸载命令: domain1\bin\domain1Service.exe  uninstall
安装命令: domain1\bin\domain1Service.exe  install
状态命令: domain1\bin\domain1Service.exe status
GlassFish4.0默认JSP编译版本问题
?感觉很奇怪,我用的JDK是1.8版本,GlassFish4.0也是支持JavaEE7的,理所应当起码支持JDK1.7的吧。怎么会出来1.5版本不支持的错误。仔细检查Maven依赖配置,也没发现问题。仔细看了一下Log,问题出在JSP编译的时候,莫非GlassFIsh用老的JDK版本编译的JSP?!网上搜了一下,GlassFish4.0果然用了JDK1.5编译了JSP。修改方法如下:
打开domain-dir/config目录下的default_web.xml文件,找到:

?servlet-name>jsp标签,添加以下配置:
?init-param>
?param-name>compilerSourceVM
?param-value>1.8
?/init-param>
?init-param>
?param-name>compilerTargetVM
?param-value>1.8
?/init-param>

重启GlassFish服务器,问题没有了。

然后又在Tomcat8.0上试了一下,也有相同的问题,只不过Tomcat8.0比GlassFish前进了点,默认用的是JDK1.6版本。修改方法和上面一样,只是web.xml所在目录不同。Tomcat的目录在conf下。

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。