分享
 
 
 

JSP预编译问题

王朝java/jsp·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

这个方法是到目前为止进行JSP预编译最方便的途径(“flick-a-switch” 途径),他有许多指出来毫无意义的缺点。如果一个错误在JSP的编译期间或在部署(或重新部署) 的时候发生,Web 应用程序的预编译将会在例外处暂停。另外,如果在一个特定的Web应用程序里面有许多JSP文件的情况,declarative预编译显著的影响着部署时间,阻断部署直到所有的文件都被编译。对于大型的应用程序,当出现数以百计的JSP 文件以declarative预编译被执行的时候,这种部署时间趋向以分钟来计算 (在某些情况10到15分钟,其他情况可能更长时间)。设想开始一个服务器实例,在一个特定的Web应用程序周期内进入部署状态用declarative 预编译激活。如果在应用内有很多的JSP文件以及部署,接近完成时就已经花费了大量的时间,在编译期间由于抛出一个例外而突然失败,当然会引起挫折感。虽然起先看起来比较方便,但declarative 编译对生产系统管理造成重大的风险,因此应该在经过慎重的考虑后再使用它。

程序方式的预编译

在WLS下最可靠的预编译JSP的方法是使用Java命令行,weblogic.jspc,它位于WLS安装的lib目录之下的weblogic.jar文件中。这个工具允许开发者在发展阶段和在部署前解决编译时间问题的时候编译需要的JSP文件。它也为生产系统提供一个有能力实现JSP预编译的管理员。这种用法的主要好处是:

● 文件可以被预编译一次然后可以被多次部署。(这不被服务器实例的重复利用所影响)

● 编译时的例外可以被预先解决而不影响部署。

● 类可以通过集群部署。

使用weblogic.jspc的缺点是需要人工干涉,并且它在开发时并当在JSP文件变得过时的时候必须被重新运行。然而,考虑到前面的两个方法的讨论,我们几乎不能将这种不方便当成该方法的一个缺点,因此推荐它作为最可靠和最灵活的机制来实现JSP预编译。

执行weblogic.jspc

为了更有效的使用weblogic.jspc,你必须首先了解它的用法和语法。这篇文章我们将利用WLS6.1 SP2的工具的功能。注意:下面给出的语法和最好的惯例应该应用于WLS 6.1的所有版本以及新的WLS 7.0。

为了调用命令行JSP编译器(weblogic.jspc),你必须确定下面的内容:

● PATH环境变量必须包含你机器上安装的J2SE1.3包的二进制目录(例如,/opt/j2se/1.3.1/sdk/bin 或者c:\sunsoft\j2se\1.3.1\sdk\bin),以获得JVM运行时的支持。如果你打算使用javac作为你的JSP编译的Java编译器,要确定PATH包含全部Java 1.3 的软件开发工具包(SDK)的二进制目录,并且不仅仅是JRE(Java Runtime Engine,Java运行时间引擎),因为没有编译器和JRE关联。 如果你打算使用一个编译器而不是javac(例如 Jikes),也要为那个编译器确定在PATH中包含正确的目录。

● 设置Java系统类路径用来包含来自WLS 6.1 SP2 安装目录的weblogic.jar文件,通过在产品库目录下默认建立(例如,/opt/bea/wlserver6.1/lib/weblogic.jar或者c:\bea\wlserv -er6.1\lib\weblogic.jar)。此外,请确定在JSP编译阶段中你可能需要的参考类(JAR或类文件)也在你的类路径中。

在第一次执行weblogic.jspc之前,你需要测试你的命令行配置是否是按上述配置。它可以通过简单运行一个WLS版本检查来完成,使用命令“java weblogic.version”,这个命令应该返回下面的内容:

which should return the following:

WebLogic Server 6.1 SP2 12/18/2001 11:13:46

#154529

WebLogic XML Module 6.1 SP2 12/18/2001

11:28:02 #154529

如果你的输出和上面的不相似(和你运行的版本相对应),在进行JSP预编译前,要重新访问PATH和类路径变量将其设置成你的当前命令行环境。

一般的weblogic.jspc的语法如下面给出的:

java weblogic.jspc [options] <jsp files...

在一个编译器的单一调用中默认情况下JSP编译器可以编译一个JSP文件或一组JSP文件,并且可以通过设置命令行选项,编译器可以以不同的方法工作。下面给出一个例子:

java

weblogic.jspc

-webapp mywebapp

-compiler javac

-compileFlags "-g"

-classpath /u/apps/dist/src/lib.jar

-d .

-package com.slackwerks.mywebapp.jsp

-commentary

-keepgenerated

-k

mywebapp\index.jsp

结论

虽然关于JSP预编译的问题较多,但许多的途径可以解决。然而,考虑到上文所说的那些优点和缺点,应该较容易的看出经由weblogic.jspc预编译的程序方式是为克服JSP固有的缺点的一个灵活的选项。在开发阶段的早期,熟悉该工具将改善生产期间应用程序的管理和性能状况。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有