设为首页 收藏本站
查看: 795|回复: 0

[经验分享] Tomcat V6 Examples移植到Apusic V5.1

[复制链接]

尚未签到

发表于 2017-2-2 14:40:18 | 显示全部楼层 |阅读模式
  目标:将Tomcat V6的的例子Examples移植到Apusic V5.1上
  
  术语:
Tomcat:只提供了WEB容器的开源服务器;
Apusic:提供了完整的J2EE支持的商用服务器;
%TOMCAT_HOME%:Tomcat安装目录
%APUSIC_HOME%:Apusic安装目录
  
  准备:
在http://java.sun.com下载JDK V1.5以上的版本并安装,确认JAVA_HOME正确指向装好的JDK目录;
在http://tomcat.apache.org下载Tomcat V6以上的版本并安装;
在http://www.apusic.com下载Apusic V5.1以上的版本并安装;
  过程:
1. 执行%TOMCAT_HOME%/bin/startup.bat,访问例子Examples:http://localhost:8080/jsp,确认Tomcat和Examples成功安装,在窗口模式下按Ctrl+C停止服务器;
2. 执行%APUSIC_HOME%/domains/mydomain/bin/startapusic.cmd,访问主页:http://localhost:6888/,确认Apusic已经成功安装,在窗口模式下按Ctrl+C停止服务器(记住因为是批处理还需要按Y确认);
3. 找到%TOMCAT_HOME%/webapps/examples目录,将examples目录拷贝到%APUSIC_HOME%/domains/mydomain/applications/下,重新启动Apusic,稍等一会待Apusic自动部署,应用报错:java.lang.NoClassDefFoundError: org/apache/catalina/CometProcessor,这个错误是因为应用中使用了Tomcat内核的API(非J2EE规范),虽然编写这样的应用违背J2EE规范(JBoss和Resin也这样做过),但是既然应用已经这样使用必须想办法支持。
4. 一种方法是找出应用代码中的部分进行修改,很遗憾我没有找到;另一种就是把那个需要引用的类所在的catalina.jar文件拷贝到%APUSIC_HOME%/domains/mydomain/lib目录下,先停止Apusic应用服务器,然后重新启动。
5. 稍等一下,Apusic自动部署了examples应用,现在访问例子:http://localhost:6888/examples/
6. 哇,成功了。就这么简单就可以完成Tomcat应用到Apusic应用的移植。
总结:Apusic是个符合J2EE规范的应用服务器,在Tomcat上开发的应用都可以非常简单的移植到Apusic上。并且Apusic同样支持WAR包(WEB模块)的直接部署。
  
  备注:
0. 访问http://localhost:6888/examples/jsp/jsp2/el/basic-arithmetic.jsp出错了,为什么?
 因为J2EE规范中除0是必须抛出错误,而Tomcat则没有遵守规范操作,请开发者注意。
 当然,完美主义者还是希望看到正常显示的页面,那么请把这个文件中的3/0替换成3/4就可以了。
1. 打开examples应用的lib目录,会发现里面还有两个jar文件:jstl.jar和standard.jar,这是支持Standard Library用的,其实Apusic已经自带无须他们,现在停止Apusic服务器,再删除这两个JAR包,然后重新启动Apusic服务器,应用果然可以正常运行;
2. 移植时把catalina.jar全部拷过来了,里面包含了Tomcat对WEB容器的部分实现,那么肯定会疑虑系统到底在调用谁的实现呢?为了确认我们可以将Apusic服务器停止,用WINRAR打开catalina.jar文件,把里面与Comet无关的class全部删除,再重新启动Apusic服务器,应用仍然可以正常运行,现在没有疑虑了;
3. 为什么每次都需要停止服务器才能操作lib里面的JAR文件呢,难道Apusic不支持热部署?
Apusic当然支持热部署,将Examples直接拷贝到applications目录下其实就是热部署,你甚至可以在Apusic启动完成后再执行拷贝也可以。但是应用一旦被加载进应用服务器后,所有的jar文件全部会被锁定,以便保证应用的完整性,所以修改lib下的jar文件必须将应用服务器重新启动。
4. 建议不要部署压缩文件,而是部署将应用展开后的目录,因为对于压缩文件应用服务器启动时还需要一个解压过程,降低启动速度消耗系统资源;
5. 如何在Apusic上给WEB模块配置上下文呢?
 现在打开%APUSIC_HOME%/domains/mydomain/config/server.xml可以看到新部署的examples的说明: 
<application name="examples" base="applications/examples" start="auto"/>,因为examples不是标准的J2EE应用,导致WEB模块中没有指定上下文,因此可以使用name来指定上下文,比如:
<application name="apusic-examples" base="applications/examples" start="auto"/>就把应用的上下文换成apusic-examples了,访问自然也变成了http://localhost:6888/apusic-examples,简单吧!

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-336631-1-1.html 上篇帖子: 在Tomcat中部署Java Web应用程序(转) 下篇帖子: 如何设置Tomcat的JVM虚拟机内存大小【转】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表