`
leearnold
  • 浏览: 68464 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

我在Glassfish上部署企业应用5年的情况

阅读更多
首先说明虽然我写了10年的java代码了.但是我不是高手.经常还要翻书查查基础语法.看看String的API.

我们公司的管理系统是我一个人开发的,数据库用的Oracle.从最开始我就是用了Glassfish,原因很简单,Netbeans里面绑定了.
我只要登录Web管理界面,就可以管理很多东西,比如数据库连接池,配置多个虚拟主机服务,管理Http监听器.部署新的应用.我只用这些,曾经测试过集群,很简单就创建好了,但是因为公司就200多人用系统所以用不上集群,也就不管了.
每次有了新版本我都会花上20分钟重新装上新版本,我也不知道有什么改进,反正新的总是好的吧.
GlassFish运行在Windows 2003 Server上非常稳定,基本上不停电不用重启.应用上的数据量差不多数据库每天增加40m.不算上传的每天200MB左右的文件.文件我没有放在数据库里,直接存在应用服务器上了.

开发我也没有使用任何框架,就是JSP+javaBean .不过我开发了自己的开发平台,系统中类似的东西都抽象出来,比如日历,查询表格,图表.开发一个新功能很简单的继承一下虚拟类,实现几个接口,把对应的sql语句扔进去就好了.目前还没有碰到什么效率问题.页面上最近这1年开始用Jquery替换了以前写的很复杂的javascript.页面也大量的使用了ajax替换了整个页面提交操作.UI比以前好了很多.Http请求数量下降了很多.再加上年初数据库和应用服务器都换了新的机器,运行速度又快了,一个大约需要50次数据库请求的页面不到1秒就能出来.

以前用的Glassfish v2能和Netbeans集成,自己开发的时候如果是直接修改jsp页面代码不用发布就可以看到修改结果,如果是更改了JavaBeans需要增量发布或者重新发布就可以看到结果.发布到正式应用的服务器时唯一问题就是每次发布新版本,如果有人正在使用,会因为清除了服务器上的Session而被强制退出,由于使用频率很高,有时候出现bug,发布升级版的时候会招来大量的投诉....

大概1年前,系统因为需求变化太大,所以重新构架,我也重新评估了Glassfish v3最吸引我的新功能就是Save Session.虽然不能像以前那样通过Netbeans绑定远程发布新应用,但是只要把生成出来的War文件通过Web管理界面发布上去,并选择保存Session.就可以保留用户所有的Session而发布新应用了.这个功能真是感觉最有效的改进.投诉电话再也没有了.

看了论坛里很多关于和Tomcat的对比文章,其实我没有在2002年以后再用过Tomcat了.所以我也没有办法评价.不过有一次帮同事装一个Wiki的应用装了一个Tomcat5.0.修改配置还是需要自己动手改xml文件,我就觉得麻烦,虽然有人很享受用命令行和修改xml来配置应用服务器.但是我不喜欢,我比较喜欢考察实用性,什么能最快,最有效,最直接的解决问题我就用什么,就好像很多人用了EJB干jsp就足够的活...还是感觉技术够用就好了.没有必要追新的.
分享到:
评论
46 楼 leearnold 2009-08-06  
jltest 写道
leearnold 写道
开发我也没有使用任何框架,就是JSP+javaBean .不过我开发了自己的开发平台,系统中类似的东西都抽象出来,比如日历,查询表格,图表.开发一个新功能很简单的继承一下虚拟类,实现几个接口,把对应的sql语句扔进去就好了.


说实话从这么简单描述,我是没看出来lz这个框架有任何可取之处。
不知道那些无视框架的技术大牛,凭什么认为lz的自己的东西很好。
框架并不重要,但是绝对不能闭门造车。
lz说“继承一下虚拟类,实现几个接口”很简单。
无需继承父类,无需实现接口的框架多了去了,我实在是看不出来lz这个有多简单。

leearnold 写道

每次有了新版本我都会花上20分钟重新装上新版本,我也不知道有什么改进,反正新的总是好的吧.
GlassFish运行在Windows 2003 Server上非常稳定。


每次更新20分钟,而且也不管有什么改进。这个肯定不是正规项目应该有的事情。


lz这样一个人又兼网管又搞程序,不知道美工是不是lz。但看主贴感觉lz就一个人在闭门造车。外面的新东西一点也没吸收。
这样建议lz去看看spring有坏处?


现在怎么一提框架就上纲上线。

我所谓的 “继承一下虚拟类,实现几个接口
实际上就是说写大约10几行代码就能为一个新的功能提供标准功能了.其实我自己的已经是框架了.

比如说不同申请的审批流程,在数据库中定义好审批顺序后建立一个子类
public class requestLeaveAction extends StandardAction{
   
    @Override
    public String getTableDesc() {
        return null;
    }

    @Override
    public String getApprovalDesc() {
        UserSession user = MSystem.getUserSession(request);
        String s = "<a href=# onclick=\"openLeaveForm("+getNewRecordID()+")\" >"+user.get("hr.leave.app.Show_Detailed")+"</a> ";
        return s;       
      
    }

    @Override
    public void doSpecialEvent() {
        UserSession us = MSystem.getUserSession(request);
        String appbyid = us.getUserid();
        dbRun dbr = new dbRun("app_leave", "Approve Process Record:Leave", request);
        dbr.setWhereId(getNewRecordID());
        dbr.apnow("appdate");
        dbr.addStr("appby", appbyid);
        dbr.update();
        dbr.close();
        return;
    }

    @Override
    public String getSpecialYesValue() {
        return null;
    }

    public void directDoSpecialEvent(String Tagid) {
        return;
    }
}

直接就会在用户操作次功能后出现审批流程的建立.目前出现的十几种审批流程还都能应付.
45 楼 leearnold 2009-08-06  
今天刚刚完成了Linux 上的glassfish的安装和测试 准备开始向Linux上移植了
在linux上glassfish启动比windows下快很多.
44 楼 leearnold 2009-08-06  
Joo 写道
想知道lz所在的公司一年给楼主多少 一个人抗一个系统方方面面

120k/y
43 楼 Joo 2009-08-04  
想知道lz所在的公司一年给楼主多少 一个人抗一个系统方方面面
42 楼 libo_591 2009-08-03  
没用过GLASSFISH,不过感觉说的很实在,技术就是为了解决问题而产生的,不用那么花哨,当然页面除外。。
41 楼 icu 2009-08-02  
喜欢tomcat,简洁、使用,version6.0更高效了;
研究Glassfish中
40 楼 ayiui4566 2009-08-02  
glassfish一直在java网站上挂着,我每次都看着好奇,也没用过,只用过tomcat和jboss
39 楼 containsoft 2009-08-01  
看楼主说的,猜测楼主可能是某个单位(非软件公司)的信息中心的技术人员。搞搞自己单位的应用系统就OK。这样的话,很支持楼主的实用主义。熟悉的,并且能解决实际问题的技术,那就是最好的。
38 楼 GRDJE 2009-08-01  
什么spring, struts....都是民工标配而已
37 楼 jltest 2009-08-01  
leearnold 写道
开发我也没有使用任何框架,就是JSP+javaBean .不过我开发了自己的开发平台,系统中类似的东西都抽象出来,比如日历,查询表格,图表.开发一个新功能很简单的继承一下虚拟类,实现几个接口,把对应的sql语句扔进去就好了.


说实话从这么简单描述,我是没看出来lz这个框架有任何可取之处。
不知道那些无视框架的技术大牛,凭什么认为lz的自己的东西很好。
框架并不重要,但是绝对不能闭门造车。
lz说“继承一下虚拟类,实现几个接口”很简单。
无需继承父类,无需实现接口的框架多了去了,我实在是看不出来lz这个有多简单。

leearnold 写道

每次有了新版本我都会花上20分钟重新装上新版本,我也不知道有什么改进,反正新的总是好的吧.
GlassFish运行在Windows 2003 Server上非常稳定。


每次更新20分钟,而且也不管有什么改进。这个肯定不是正规项目应该有的事情。


lz这样一个人又兼网管又搞程序,不知道美工是不是lz。但看主贴感觉lz就一个人在闭门造车。外面的新东西一点也没吸收。
这样建议lz去看看spring有坏处?


现在怎么一提框架就上纲上线。
36 楼 sirxenofex 2009-08-01  
据说比起Tomcat,Glassfish处理静态页面要高效的多,这样就可以抛弃Apache Http + Tomcat了,楼主你有过这方面感觉吗?既然你没用EJB,那怎么没选Tomcat呢?
35 楼 rainy14f 2009-08-01  
楼主干得不错,加油!

现在这么浮躁的世界,楼主这样专心解决问题的人已经不多了。JSP,JAVABEAN又怎样,能做出好东西就是好样的。能看得出楼主在不断改进。虽然问题也很明显,比如热部署,但相信你将来一定可以做得更好。
34 楼 silence1214 2009-07-31  
其实楼主人家就是描述一下而已,哎
33 楼 harbey 2009-07-31  
能用最简单的技术,实现最实用的东西,这样有什么不好!
楼主加油!
32 楼 free_bird816 2009-07-31  
    我真不明白,这么多人让人学一下SPIRNG啊什么的,不知道你们是什么水平,不知道你们是否经历过没有SPRING的年代,不知道你们是从什么时候开始接触JAVA的。
    不是学了几个框架后才能显示出你的本事来,也不是学了几个框架后才能找到好工作,框架是应该学,但不是一定要学。

    看一个人的水平不是看他会多少框架,框架无非就是简单化开发的东西,减少开发中的错误的东西,利于扩展的东西,这些东西,如果你开发的时间长了,你就明白,而不是学了框架,学了什么模式后才明白。开发的时间长了你自己可能已经用了很多模式,也用这些模式建立了一些自己的框架,可能你自己都不知道。
    JAVA社区里永远就有一些这样的人,每天专业名词一大堆,模式乱天飞,框架胡乱垒,感觉自己学了很多东西,其实可能不然。
    做为开发人员,不管用什么技术,实现功能才是正道,运行稳定才有价值。

    胡乱说了一些,前言不搭后语,大家见凉。我只是觉得有些人的风气不是很对,就多说了一点,希望大家笑着看看,看完笑笑便罢,哈哈
31 楼 jltest 2009-07-31  
george_space 写道
jltest 写道
真心的建议lz看一下spring


Glassfish和spring有什么关系?我很好奇?

看帖子内容啊。觉得lz就一个人在折腾。
不是说框架就十分重要。但是lz自己一个人每天折腾jsp+JavaBean那是肯定不行的。。。
30 楼 Else 2009-07-30  
还有楼主有用EJB吗?
29 楼 Else 2009-07-30  
启动速度啊,开发的时候我很关心这个,Fish没用过
不过Weblogic的速度让人绝望
28 楼 steeven 2009-07-30  
大炮打蚊子
27 楼 george_space 2009-07-30  
jltest 写道
真心的建议lz看一下spring


Glassfish和spring有什么关系?我很好奇?

相关推荐

    Glassfish应用服务器产品对比白皮书.pdf

    - **步骤5**:完成部署并进行测试验证,确保应用程序能够在Glassfish上正常运行。 通过上述分析可以看出,Glassfish不仅具备与Weblogic相当甚至更优的企业级特性,还拥有开源软件特有的灵活性和成本优势。对于寻求...

    GlassFish源码

    在这个特定的压缩包中,我们看到的似乎是GlassFish 2.1版本的源代码,这个版本发布于2010年,主要支持的是Java EE 5规范。 Java EE 5是Java企业级平台的一个重要里程碑,它简化了企业应用的开发,引入了许多新特性...

    Sun Glassfish v3 Administration 2009/12 PDF

    - **J2EE**:即Java Platform, Enterprise Edition,是一种用于开发和部署可移植、健壮、可伸缩且安全的企业应用程序的标准。 - **Java**:一种广泛使用的面向对象编程语言。 - **ebook**:指该文档是以电子书的形式...

    GlassFish Security

    该书的目标读者主要是应用设计师、开发者和系统管理员,他们希望了解如何在基于GlassFish的应用程序中实施安全措施。 #### 二、作者简介 **Masoud Kalali**,拥有软件工程学位,自1998年以来一直从事软件开发项目。...

    PacktPub.GlassFish.Administration.Dec.2009.rar

    10. **持续集成与自动化**:介绍如何将GlassFish集成到持续集成流程中,利用工具如Maven、Ant或Gradle自动构建和部署应用。 通过学习这份资料,无论是初学者还是经验丰富的开发者,都能对GlassFish服务器有深入的...

    glassfish-6_2007

    - **GlassFish v1**: 这是第一个正式发布的版本,实现了Java EE 5的完全合规,并且在2006年底发布了UR1更新以修复已知的问题。随着时间的发展,部署的数量也在不断增加。 - **GlassFish v2**: 新版本引入了许多新...

    Packtpub.GlassFish.Security.May.2010.rar

    其中的核心文件是《Packtpub.GlassFish.Security.May.2010.pdf》,很可能是由Packtpub出版社在2010年5月出版的一本关于GlassFish服务器安全的电子书。GlassFish是Oracle公司的一个开源应用服务器,广泛应用于Java EE...

    GlassFish和MySQL——完美开源组合.pdf

    GlassFish是一款基于Java EE 5标准的企业级应用服务器,而MySQL则是一款广泛应用的关系型开源数据库,两者在全球范围内都有着庞大的用户基础。 MySQL数据库因其高度的普及率和可靠性成为了开源软件的代表。它的特点...

    J2EE应用服务器标准

    J2EE提供了标准化的API和开发工具,使得开发者能够在不同的J2EE应用服务器上开发、测试和部署应用,常见的J2EE应用服务器有WebLogic、WebSphere、JBoss、GlassFish等。 #### 7. 动态适应性 J2EE应用服务器具备动态...

    Open Source GlassFish Software Appliance-开源

    将GlassFish部署在Ubuntu JeOS上,可以进一步优化资源利用率,减少不必要的操作系统服务,专注于提供应用程序服务器的核心功能。 **部署与管理** 在Ubuntu JeOS上安装和配置GlassFish,通常包括以下步骤: 1. **...

    glassfish-flyway:玻璃鱼+飞路

    5. **测试与部署**: 启动Glassfish,检查日志确认Flyway成功执行了迁移。在所有环境中重复这个过程,确保数据库的一致性。 通过这样的整合,我们可以确保即使在复杂的开发环境中,数据库也能随着应用程序的更新保持...

    payara-4.1.2.181

    Payara Server 4.1.2.181是2018年发布的一个稳定版本,它在GlassFish 4.1的基础上增加了额外的功能和改进,以增强可扩展性、安全性和管理能力。 描述中同样提到“payara-4.1.2.181”,这进一步确认了我们讨论的是...

    JavaEETutorial.pdf

    Java EE 5 版本发布于2006年,是Java EE发展历史上的一个重要里程碑,引入了许多新特性,极大地简化了企业应用的开发过程。 ### Java EE 5的关键特性 #### 1. **简化的企业级开发** Java EE 5 的一个重要目标是...

    ai-depth.rar

    1. "Learning Blind Video Temporal Consistency.pdf":这可能是关于无监督学习方法在视频时间一致性上的应用,可能涉及到如何让算法在没有先验知识的情况下理解和保持视频帧之间的连贯性。 2. "DMAP-Review of ...

    javaEE_5的四个jar包

    在实际开发中,Java EE 5还依赖于应用服务器,如Tomcat、GlassFish或JBoss等,这些服务器会提供运行Java EE应用所需的上下文和服务。开发者需要了解如何配置这些服务器,以及如何将应用程序打包和部署到服务器上。...

    Java EE 5 SDK

    Java EE 5 SDK通常搭配应用服务器一起使用,如GlassFish或JBoss,开发者可以在这些服务器上编写、测试和部署应用程序。应用通常被打包成WAR(Web Archive)或EAR(Enterprise Archive)文件,然后通过应用服务器的...

    EJB应用开发详解+书中源码

    企业级JavaBeans(Enterprise JavaBeans,简称EJB)是Java平台上的核心组件,用于构建分布式、事务处理、安全性和可伸缩性的企业级应用程序。EJB规范定义了服务器端的组件模型,使得开发者能够专注于业务逻辑,而将...

    各种版本tomcat压缩包

    9. **热部署**: Tomcat支持热部署,即在不重启服务器的情况下更新Web应用。只需将新的WAR文件放入webapps目录下,Tomcat会自动检测并部署新应用或更新现有应用。 10. **与Java EE的关系**: 虽然Tomcat只是一个...

Global site tag (gtag.js) - Google Analytics