脱离ws_ant直接使用Ant调用WebSphere编译器将jsp编译成class

Java核心概念全解析:JDK、JRE、JVM、Java SE与Java EE的区别与联系 Java虚拟机是Java技术体系实现跨平台能力的核心引擎,它通过解释与即时编译将字节码转换为本地机器码执行。这一机制奠定了Java‘一次编写,到处运行’的技术基础,在分布式系统和微服务架构中具有重要价值。字节码作为平台无关的中间指令,由编译器生成并在JVM中运行,这是理解Java运行时环境的关键。在实际开发中,JDK作为开发工具包包含了JRE和编译器、调试器等工具,而JRE则是运行Java程序的最小环境包。对于企业级应用开发,Java EE规范在Java SE基础上扩展了Web服务、事务管理等能力,而现代S 阅读详情

脱离ws_ant直接使用Ant调用WebSphere编译器将jsp编译成class

WAS的编译检查是非常严格的,JSP中往往有些是因为将单引号写成了双引号就会编译不过去,如下:

<sc:hidden name="trsftg"  default="<%=valueGet.get(request,"/DataPacket/Request/Data/trsftg","") %>"/>

此时因为default属性在取值的JAVA代码中内部有双引号,且此时用于包含default属性值是采用的双引号,因而WAS在编译的时候就会报错。
应该写成:

<sc:hidden name="trsftg"  default='<%=valueGet.get(request,"/DataPacket/Request/Data/trsftg","") %>'/>

这些虽然都是小问题,但是实际操作的过程中,可能还会经常出错。以下引用了一篇网文,该文说明了如何脱离WAS进行预编译JSP,这样我们可以通过预编译的日志查看原来编译不过去的JSP是什么问题(我是因为没有在WAS中找到JSP的预编译日志才尝试了这种方法),这里讲的是整个工程的预编译,实际操作中可以只拷贝编译不过去的JSP到另外的地方,再执行这样的编译,这样就具有针对性。

原文来自:http://yulimin.javaeye.com/blog/412504,经验证该方法可行,此处做相应的解析说明。

tomcat5下,jsp是通过使用tomcat提供的org.apache.jasper.JspC编译工具将JSP 页面的预编译,在WAS当中是通过 com.ibm.websphere.ant.tasks.JspC  进行预编译。

完整的Ant脚本 build.xml 文件内容,可将该文件置于任何目录中:

<?xml version="1.0" encoding="GBK"?>    

<project name="WAS JSP PreCompile" default="jspc" basedir=".">   

<!-- 设置was的home --> 

<property name="was.home" location="D:/IBM/WebSphere/AppServer"/>    

<!-- location指定当前应用所在的路径,指定到JSP所在目录(WEB-INF的上一级目录) -->

<property name="webapp.path" location="D:/IBM/WebSphere/AppServer/installableApps/DefaultApplication/DefaultWebApplication"/>    

<!-- 这里设置预编译后生成的.class及.java的存放路径 -->

    <property name="jspc.path" location="${webapp.path}/jspc"/>    

    <!-- 是否保留生成的.java文件 -->    

    <property name="java.keep" value="true"/>    

    <!-- ;${was.home}/runtimes/com.ibm.ws.webservices.thinclient_6.1.0.jar -->    

    <property name="jsp.classpath" value="${was.home}/lib/bootstrap.jar;${was.home}/lib/startup.jar;${was.home}/lib/j2ee.jar"/>    

    <target name="make-dir">    

        <mkdir dir="${jspc.path}"/>    

    </target>    

    <!-- 定义 WAS JSP 预编译任务 -->    

    <taskdef name="wsjspc" classpath="${was.home}/plugins/com.ibm.ws.runtime_6.1.0.jar" classname="com.ibm.websphere.ant.tasks.JspC"/>    

    <!-- 调用 WAS JSP 预编译工具,进行对 JSP 进行编译 -->    

    <target name="jspc" depends="make-dir">    

        <wsjspc wasHome="${was.home}" src="${webapp.path}" toDir="${jspc.path}" forcecompilation="true" verbose="true" deprecation="false" loglevel="CONFIG" keepgenerated="${java.keep}" classpath="${jsp.classpath}"/>    

    </target>    

    <!-- 当前工程EAR文件所在路径 --> 

    <property name="ear.path" location="D:/project/tmpimps.ear"/>

    <!-- 解压缩EAR文件的存放路径 -->

    <property name="extract.dir" location="${was.home}/temp/DefaultApplication.earextract"/>    

    <!-- 编译整个EAR -->    

    <target name="jspcEar">    

        <mkdir dir="${extract.dir}"/>    

        <wsjspc wasHome="${was.home}" earpath="${ear.path}" forcecompilation="true" extractToDir="${extract.dir}" useThreadTagPool="true" keepgenerated="${java.keep}" jspCompileClasspath="" classpath="${jsp.classpath}" loglevel="CONFIG"/>    

    </target>      

</project>   

注意:就是多了一个包就会编译不出来,汗。。。看我注释掉的那个jar包: 

com.ibm.ws.webservices.thinclient_6.1.0.jar   

转到build.xml所在目录,执行如下命令,并将结果输出到日志文件中便于查看:

ant jspc >jspc.log

即开始编译,但运行仍会提示:

引用

无法语法分析 setupCmdLinE: null/bin/setupCmdLine.bat (系统找不到指定的路径。) 

无法语法分析 setupCmdLinE: null/bin/setupCmdLine.bat (系统找不到指定的路径。)

直接无视它即可。 

编译成功的话会有: 

1、ant jspc

引用

   [wsJspC] _internalCompileApp() returning returnCode: [0] 

   [wsJspC] JSPG0151I: 返回码:0 

   [wsJspC] JSPG0168I: 批处理编译器成功退出并且没有错误。

2、ant jspcEar

引用

[wsJspC] JSPG0186I: 正在保存 D:/IBM/WebSphere/AppServer/temp/DefaultApplication.earextract/DefaultApplication.ear 

[wsJspC] JSPG0187I: 保存已完成。 

[wsJspC] JSPG0168I: 批处理编译器成功退出并且没有错误。

如果有问题最好是通过如何ANT命令检查:

ant -verbose    

来查看详细的错误再进行对应的分析即可。 

BTW:我的测试环境是:Windows XP SP3 + WAS 6.1.0.23 

更多关于wsJspC的信息请参考InfoCenter: 

http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/topic/com.ibm.websphere.base.doc/info/aes/ae/rweb_jspant.html

本文出自:冯立彬的博客




jsp批量编译为class文件 将jsp批量转换为class文件. 运行命令 java -jar jspcp.jar "路径1" "路径2" 路径1:webapp路径,一定是WEB-INF目录的父目录 路径2:编译后的java和class文件存储路径 路径如果有空格,一定用""包裹 立即下载

相关推荐

模拟电子技术课设-压控信号发生器

正弦波产生电路的目的就是使电路产生一定频率和幅度的正弦波,我们一般在放大电路中引入正反馈,并创造条件,使其产生稳定可靠的振荡。由于图2.3-1所示电路中存在RC电路和积分电路两个延迟环节,在实用电路中,将它们“合二为一”,即去掉方波发生电路中的RC回路,使积分运算电路即作为延迟环节,又作为方变三角波电路,滯回比较器和积分运算电路的输出互为另一个电路的输入。接着对各单元电路的工作原理进行了分析,由直流稳压电源电路提供所需电压,文氏振荡器产生正弦波,滞回比较器产生方波,滞回比较器与积分器连接产生三角波。

Sulfurone的博客 5323

jsp的运行原理和机制

运行原理 当第一次访问jsp页面时,会向一个servlet容器(tomcat等)发出请求,servlet容器先要把 jsp页面转化为servlet代码(.java),再编译成.class 文件 再进行调用。当再次访问jsp页面时 跳过翻译和编译的过程 直接调用。 执行过程 1、 客户端发出请求 2、web容器将jsp转化为servlet代码(.java) 3、服务器根据接收到的客户端的请求来加载相...

后端开发 676

2025虚幻游戏逆向工程解包尝试

2025虚幻游戏逆向工程解包指南 本文详细介绍了虚幻引擎5游戏逆向解包的完整流程,主要包括获取AES密钥、生成映射文件和导出资源三个关键步骤。作者在实际操作中遇到诸多难题:AES密钥获取工具存在加壳保护问题,映射文件生成器依赖复杂的VS编译环境,DLL注入工具的使用也存在技术门槛。通过多次尝试,作者发现部分游戏可直接搜索现成的AES密钥,而映射文件生成需要额外下载Memcury依赖库才能正常编译。文章提供了相关工具的下载链接和具体操作说明,但同时也指出每个环节都可能出现意外状况,逆向工程实际执行过程远比理论

wsdchong的博客 6147

IDEA编译JSP页面生成的class文件路径

在IDEA中编译JSP页面生成的class文件路径即为CATALINA_BASE的路径;请注意项目启动时控制台的打印信息:

谷哥的小弟 2634

1、Ovirt 开源虚拟化平台安装

Ovirt虚拟化Node和Engine安装

大鱼 6266

RK3588开发笔记-MIPI-CSI接口视频解码芯片XS9922B调试

Rockchip RK3588 是一款高性能的处理器,支持多种摄像头接口,包括 MIPI(Mobile Industry Processor Interface)接口。MIPI是一种用于移动设备和嵌入式系统中的摄像头、显示器和其他传感器设备的串行接口标准。MIPI是MIPI联盟发起的为移动应用处理器制定的开放标准。CSI-2(Camera Serial Interface 2)是MIPI 联盟定义的另一种高速接口,主要用于摄像模组和处理器之间的连接。

flypig has a dream! 6860

把JSP预编译成class文件进行JSP文件的保护

 在Weblogic中发布Web Application工程时,为了保护JSP文件避免未经授权的访问和窥视,可以用weblogic.jspc把JSP文件precompile成为servlet文件,放到WEB-INF/classes目录下。基于Servlet的声明,WEB-INF不作为Web应用的公共文档树的一部分。因而,WEB-INF目录下的资源不是为客户直接服务的,这样就可以一定程度上保证JSP...

yangzibin的博客 558

手把手教你学Simulink--基于车联网与智能交通系统的场景实例:基于车联网(V2X)的实时路况信息共享与处理

《基于Simulink的车联网(V2X)实时路况共享系统仿真》摘要:本文详细介绍使用Simulink构建V2X智能交通系统的完整方法。系统包含交通路网建模、V2X通信实现(支持DSRC/C-V2X标准)、多源路况信息融合、动态路径规划等核心模块。通过对比实验,验证V2X可使平均车速提升52%,行程时间缩短34%,显著提升交通效率。文章还探讨了AI预测调度、车辆编队等高级应用,为智慧交通系统开发提供实用参考。所需工具包括Simulink、SimEvents及无线通信工具箱等。

MHD0815的博客 737

JSP重新编译的判断机制

JSP编译就是把JSP变成Java再变成class,而触发这个动作的条件就是当修改了这个JSP文件后,将触发重新编译动作,所以应用服务器的判断依据就是JSP文件的最后修改时间lastmodified属性,正常顺序是JSP经过编译后生成class文件,把此class文件的lastmodified属性设置成JSP文件的lastmodified,此时两个文件的lastmodified属性是相同的,当修改了JSP文件保存后,JSP的lastmodified属性就被置为当前时间,此时通过判断两个文件......

web的博客 837

DeepSeek+即梦:AI视频创作从0到1全突破

本文为 DeepSeek 与即梦生成视频全攻略,从前期注册登录、熟悉工具界面及硬件网络准备入手,助读者开启 AI 视频创作。详细阐述利用 DeepSeek 构思脚本、即梦实现画面生成与静态图转动态视频的方法,包括提示词编写、参数调整等技巧。同时介绍后期合成音画、添加字幕特效及多平台适配要点,结合实战案例解析全流程。还分享进阶提示词优化、版权注意等避坑指南,为创作者提供从 0 到 1 的 AI 视频创作完整解决方案。

邓邓子的博客 8099

硬方案——几种实用的恒流源电路设计方案,敬请收藏(运放、三极管在手,让你玩出多种花样)

0 引言 我们在信号测量、供电等应用场景时常会涉及到使用恒流源,以前觉得恒流源挺神奇的,研究了下实现方案,其实也没有多么高深(这里讨论的仅限于用在信号测量中的小电流恒流源设计),这里给出几个实用的恒流源电路设计方案。 1 恒流源电路设计 (1)使用三极管搭建的恒流源 (2)使用运放搭建的恒流源 (3)使用恒流二极管搭建的恒流源 pt100恒流源测温电路图_电子技术_电工之家 ...

数字世界 万物互联 9524

JSP的编译过程

每一个JSP页面都会被Web容器编译成一个Java类,供web容器调用,并且生成HTML叶面回馈给用户。而了解其中的变异方法和规则,对我们学习JSP是非常有好处的,可以说学习好了这个编译原理,就已经学习好了大部分的JSP知识,剩下的工作就只剩下熟记一些tablib和反复应用以使自己更加熟练而已了JSP会被编译成.java放Tomcat/work/Catalina/localhost/***/o

susiefjd的专栏 1万+

金融领域图注意力网络的创新应用

随着金融市场的日益复杂和数据量的爆炸式增长,传统的数据分析方法在处理金融数据的复杂关系和结构时面临诸多挑战。图注意力网络(Graph Attention Network,GAT)作为一种新兴的深度学习技术,能够有效处理图结构数据,挖掘数据中的潜在关系。本文的目的在于深入探讨图注意力网络在金融领域的创新应用,涵盖风险评估、投资决策、欺诈检测等多个方面。通过理论分析、算法实现和实际案例展示,为金融从业者和研究者提供全面的技术参考,推动图注意力网络在金融领域的广泛应用。

AI云原生与云计算技术学院 718

WAS:脱离ws_ant直接使用Ant调用WebSphere编译器将jsp编译成class

脱离ws_ant直接使用Ant调用WebSphere编译器将jsp编译成class

netyeaxi的专栏 351

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

工作中使用到的单词(软件开发)

1.エイリアス   alias 别名 powershell使用 get-help 命令时,会得到与此命令 相关(别名)的命令 2.プロキシ proxy 代 理 3.プロモート   promote 促进,提升   开发的系统新功能上线发布,有时会使用到这个词,比如 STプロモート 还有使用リリース这个词的。比如STリリース。个人认为两者含义相同。 4.見逃し み................................................................

sun0322 6万+

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

jsp编译、执行过程

一、jsp执行过程图解用户访问jsp页面时,jsp的处理过程如下图所示: 二、预处理阶段客户第一次请求jsp页面时,jsp引擎会预处理jsp文件中的脚本代码(HTML)和代码片段(java代码)全部转换为java代码,转换过程非常直观:对于HTML文本只需要用简单的out.println方法包裹,对于java脚本只做保留或简单的处理。三、编译阶段预处理阶段把jsp文件解析为java代码,编译阶段j

1.02^365=1377.41 1万+

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Webstorm 超实用入门教程

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34409822的博客 4202

几种编辑器的区别

1、HBuilder 简介:HBuilder是专为前端开发打造的开发工具,具有飞一样的编码、最全的语法库和浏览器兼容数据、可以方便的制作手机APP、最保护眼睛的绿柔设计等特点。支持HTML、CSS、JS、PHP的快速开发。从开放注册以来深受广大前端朋友们的喜爱。 优点: 因为是一款国产软件,所以中文界面更容易迅速上手。HBuilder拥有完善的帮助文档,诸如快捷键列表什么的,都能快速调出查询; 编码速度飞快。它拥有完整的语法提示和代码输入法、代码块等,以及浏览器兼容性提示,大幅提升HTML、js、c

yezi153的博客 2168

前端入门第一弹 | 开发工具与配置

一、序言 首先,我们来聊聊市面上比较流行的前端开发工具,主要是WebStorm(简称ws)和Visual Studio Code(简称vsc或vscode),我比较喜欢用vscode,主要是它是一个轻量级的开发工具,并且开源,而且兼容的语音比较多,最最最重要的是它免费啊!但是呢它主攻的是前端开发,所以其它对语言不够专业,有时候会出问题,所以你要拿它来开发Python、C++什么的还是老老实实的用专业的开发工具吧。 二、安装 好了,进入正题,我们先来安装我们的编辑器,下载链接都放下面...

weixin_57650627的博客 2146

WSL安装Intel编译器

应该只需要以下两行代码 wget https://registrationcenter-download.intel.com/akdlm/irc_nas/17427/l_HPCKit_p_2021.1.0.2684_offline.sh sudo bash l_HPCKit_p_2021.1.0.2684_offline.sh -a -s --eula accept 以下为探索遇到的错误和心路历程: intel编译器包下载 在终端输入 wget https://registrationcenter-

qq_41825773的博客 1971

JSP转译成Servlet详细过程

很多人都会认为JSP的执行性能会和Servlet相差很多,其实执行性能上的差别只在第一次的执行。因为JSP在执行第一次后,会被编译成Servlet的类文件,即.class,当再重复调用执行时,就直接执行第一次所产生的Servlet,而不再重新把JSP编译成Servelt。 因此,除了第一次的编译会花较久的时间之外,之后JSP和Servlet的执行速度就几乎相同了。Web容器处理JSP文件请求的执...

tboss的专栏 638

jsp通过Tomcat编译成java和class文件

Java程序中,jsp通过服务器(如:modelRpD1.jsp在Tomcat编译成java和class文件)。编译结果:/tomcat-6.0.33/work/Catalina/localhost/项目名称/org/apache/jsp/包名/modelRpD1_jsp.class/tomcat-6.0.33/work/Catalin...

weixin_34113237的博客 853
上一篇: 阿里巴巴等杭企招聘不歧视乙肝病毒携带者
下一篇: 阿里巴巴的面试
冯立彬
冯立彬 优质创作者: 编程框架技术领域 优质创作者: 编程框架技术领域
博客等级 码龄21年 5458粉丝 593原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值