原创作品,转载注明来源http://transdoc.iteye.com
Under Creative Commons
不少同学在SAE部署Java应用的时候都会遇到jar包冲突问题,对此官方文档中只是提到:
引用
为了避免jar包冲突,请在上传War包至SAE环境前删除servlet-api和xml-api相关的jar包
引用
Java 平台目前提供log4j自定义配置功能,使用log4j输出的日志可通过应用中的log4j.properties来配置。
即使按照官方指导做了,还是有很多疑问,比如SAE到底已经提供哪些jar包了?
transdoc博主通过部署一个最小可用war包后,通过在jsp简单的调用System.getenv()和System.getProperties()方法有了一些发现。
在System.getenv()获取的环境变量中包含了应用的appname、accesskey、secretkey等信息。而在System.getProperties()获取到的系统属性中更是包含了Java运行环境的一些参数,其中便有java.class.path值,直接指出了SAE已提供的jar包,现贴出如下:
引用
/usr/local/sae/jetty/lib/jetty-xml-7.4.3.v20110701.jar
/usr/local/sae/jetty/lib/servlet-api-2.5.jar
/usr/local/sae/jetty/lib/jetty-http-7.4.3.v20110701.jar
/usr/local/sae/jetty/lib/jetty-continuation-7.4.3.v20110701.jar
/usr/local/sae/jetty/lib/jetty-server-7.4.3.v20110701.jar
/usr/local/sae/jetty/lib/jetty-security-7.4.3.v20110701.jar
/usr/local/sae/jetty/lib/jetty-servlet-7.4.3.v20110701.jar
/usr/local/sae/jetty/lib/jetty-webapp-7.4.3.v20110701.jar
/usr/local/sae/jetty/lib/jetty-deploy-7.4.3.v20110701.jar
/usr/local/sae/jetty/lib/jetty-servlets-7.4.3.v20110701.jar
/usr/local/sae/jetty/lib/ext/sae-client/channel-online-1.0.jar
/usr/local/sae/jetty/lib/ext/sae-client/fetchurl-online-1.0.jar
/usr/local/sae/jetty/lib/ext/sae-client/kvdb-online-1.0.jar
/usr/local/sae/jetty/lib/ext/sae-client/mail-online-1.0.jar
/usr/local/sae/jetty/lib/ext/sae-client/push-online-1.0.jar
/usr/local/sae/jetty/lib/ext/sae-client/sae-config-1.0.jar
/usr/local/sae/jetty/lib/ext/sae-client/segment-online-1.0.jar
/usr/local/sae/jetty/lib/ext/sae-client/share-online-1.0.jar
/usr/local/sae/jetty/lib/ext/sae-client/sms.jar
/usr/local/sae/jetty/lib/ext/sae-client/spy-online-1.0.jar
/usr/local/sae/jetty/lib/ext/sae-client/storage-online-1.0.jar
/usr/local/sae/jetty/lib/ext/sae-client/taskqueue-online-1.0.jar
/usr/local/sae/jetty/lib/ext/sae-dependences/commons-beanutils-1.8.3.jar
/usr/local/sae/jetty/lib/ext/sae-dependences/commons-beanutils-bean-collections-1.8.3.jar
/usr/local/sae/jetty/lib/ext/sae-dependences/commons-beanutils-core-1.8.3.jar
/usr/local/sae/jetty/lib/ext/sae-dependences/commons-codec-1.4.jar
/usr/local/sae/jetty/lib/ext/sae-dependences/commons-collections-3.2.1.jar
/usr/local/sae/jetty/lib/ext/sae-dependences/commons-lang-2.6.jar
/usr/local/sae/jetty/lib/ext/sae-dependences/commons-logging-1.1.1.jar
/usr/local/sae/jetty/lib/ext/sae-dependences/ezmorph-1.0.6.jar
/usr/local/sae/jetty/lib/ext/sae-dependences/httpclient-cache-4.1.2.jar
/usr/local/sae/jetty/lib/ext/sae-dependences/httpcore-4.1.2.jar
/usr/local/sae/jetty/lib/ext/sae-dependences/httpmime-4.1.2.jar
/usr/local/sae/jetty/lib/ext/sae-dependences/json-lib-2.4-jdk15.jar
/usr/local/sae/jetty/lib/ext/sae-dependences/mysql-connector-java-5.0.8-bin.jar
/usr/local/sae/jetty/lib/ext/sae-handlers/sae-deploy-1.0.jar
/usr/local/sae/jetty/lib/ext/sae-handlers/sae-facade-1.0.jar
/usr/local/sae/jetty/lib/ext/sae-handlers/sae-hanlder-1.0.jar
/usr/local/sae/jetty/lib/ext/sae-handlers/sae-log-1.0.jar
/usr/local/sae/jetty/lib/ext/sae-handlers/sae-monitor-1.0.jar
/usr/local/sae/jetty/lib/ext/sae-handlers/sae-rewrite-1.0.jar
/usr/local/sae/jetty/lib/ext/sae-handlers/sae-security-1.0.jar
/usr/local/sae/jetty/lib/ext/sae-handlers/sae-servlet-1.0.jar
/usr/local/sae/jetty/lib/ext/sae-handlers/sae-session-1.0.jar
/usr/local/sae/jetty/lib/ext/sae-handlers/sae-webapp-1.0.jar
/usr/local/sae/jetty/lib/ext/sae-modify/httpclient-modify-1.0.jar
/usr/local/sae/jetty/lib/ext/sae-modify/jedis-2.1.0.jar
/usr/local/sae/jetty/lib/ext/sae-modify/log4j-modify-1.0.jar
/usr/local/sae/jetty/lib/ext/sae-modify/mail.jar
/usr/local/sae/jetty/lib/ext/sae-other/sae-inner-mc-1.0.jar
/usr/local/sae/jetty/lib/ext/sae-other/sae-token-1.0.jar
/usr/local/sae/jetty/lib/jsp/com.sun.el_1.0.0.v201004190952.jar
/usr/local/sae/jetty/lib/jsp/ecj-3.6.jar
/usr/local/sae/jetty/lib/jsp/javax.el_2.1.0.v201004190952.jar
/usr/local/sae/jetty/lib/jsp/javax.servlet.jsp_2.1.0.v201004190952.jar
/usr/local/sae/jetty/lib/jsp/javax.servlet.jsp.jstl_1.2.0.v201004190952.jar
/usr/local/sae/jetty/lib/jsp/jetty-jsp-2.1-7.4.3.v20110701.jar
/usr/local/sae/jetty/lib/jsp/org.apache.jasper.glassfish_2.1.0.v201007080150.jar
/usr/local/sae/jetty/lib/jsp/org.apache.taglibs.standard.glassfish_1.2.0.v201004190952.jar
/usr/local/sae/jetty/lib/jetty-policy-7.4.3.v20110701.jar
/usr/local/sae/jetty/lib/jetty-rewrite-7.4.3.v20110701.jar
/usr/local/sae/jetty/lib/jetty-util-7.4.3.v20110701.jar
/usr/local/sae/jetty/lib/jetty-io-7.4.3.v20110701.jar
很明显的,上面包含了jetty运行依赖包、servlet/jspAPI、xmlAPI、mail、sae-client对应官方提供的sae-local-x.x.x.jar、sae运行依赖包、mysql驱动等,如果我们的war包里有冲突的包,则必须删除掉。
值得注意的是httpclient-modify-1.0.jar、log4j-modify-1.0.jar两个包经过了修改。而如果要使用“日志中心”的日志查看功能,那么就必须得用log4j作为日志输出端。
transdoc应用内使用了slf4j做日志接口,而依赖的开源jar包有使用slf4j的、有使用JCL的,这些接口都需要统一定向到log4j的控制台输出。
附件给出了transdoc的pom.xml,对SAE已提供的jar设置<scope>provided</scope>即可不打入war包中,有兴趣的同学可以下载下来参考参考。
原创作品,转载注明来源http://transdoc.iteye.com
Under Creative Commons
分享到:
相关推荐
svnant 所需的6个 jar 文件,http://sae-java-deploy.googlecode.com/svn/trunk/svnant 。 sae java 接口环境库,http://sae4java.sinaapp.com/lib/sae-1.1.0-all.zip 。 ant执行文件,...
实现便捷的在本地 eclipse 上开发,在 sae 云服务器上部署和调试,实现在 eclipse 上编译 java web 项目的时候自动生成 war 包,然后再自动通过 svn 上传部署到新浪 sae 云平台的流程,1. 下载 Eclipse 4.2 or 4.3 ...
2、部署方法是将sdps.war 上传到新浪对应的SVN上(具体svn地址怎么和应用对应,请参考SAE文档)。 3、工程的WebRoot也可以打包成war,可以使用jar命令打包 ,切换到WebRoot目录后 “jar cvf sdps */ .”。 4、上传到...
包含柳峰老师微信自定义菜单所需的所有jar包,commons-beanutils.jar;commons-beanutils-1.7.0.jar;commons-collections.jar;commons-httpclient.jar;commons-lang-2.3.jar;commons-logging-1.0.4.jar;dom4j-1.6.1....
SAE是新浪提供的一种基于云计算的服务,开发者可以在这个平台上部署和运行Java应用程序。由于SAE对上传的依赖库有特定的要求和限制,因此,这个HttpClient的版本被优化或调整以满足SAE的兼容性需求。 标签...
【标题】: "sae-nacos-demo" 是一个基于Java开发的示例项目,它展示了如何在阿里云Serverless应用引擎(SAE)上部署和使用Nacos作为服务发现和配置中心。 【描述】: "sae-nacos-demo" 是一个教育性质的实践项目,...
这个项目是开发者学习如何在新浪SAE上部署和运行Yii应用的一个实例。 首先,我们需要理解Yii框架。Yii是一个高性能、组件化的PHP框架,适用于开发Web 2.0应用。它提供了丰富的特性,如MVC(模型-视图-控制器)、DAO...
在"SAE J1939多包传输协议及应用分析"这份资料中,作者谢娟娟可能详细讨论了这些概念的实际应用,包括如何设计和优化协议栈,以及在实际车辆系统中如何有效利用多包传输来提高通信效率和系统性能。此外,可能还涵盖...
在SAE上部署Struts应用时,需要确保所有必需的JAR文件被添加到项目中,并且Struts2的配置文件(struts.xml)正确设置,以指定Action和结果页面的映射。 Spring作为一个全面的框架,提供了依赖注入(DI)和面向切面...
sae4java 帮助文档
1. **自动部署**:通过sae_app_wizard.xml配置文件,开发者可以方便地将ThinkPHP应用部署到SAE上。 2. **存储服务**:SAE提供KVDB、MongoDB等存储服务,ThinkPHP可以便捷地进行数据存取。 3. **日志服务**:SAE的...
在SAE上部署Spring MVC应用,首先需要创建一个SAE应用,然后将应用的源代码上传到SAE的代码仓库。通常,应用结构应包含`WEB-INF`目录,其中包含`web.xml`配置文件以及Spring MVC的`DispatcherServlet`配置。SAE支持...
这个“TortoiseSVN-1.8.3.24901 SAE BAE部署代码 SVN上传工具”是TortoiseSVN的一个特定版本,适用于1.8.3,能够帮助开发者在新浪SAE(Sina App Engine)和百度BAE(Baidu App Engine)上部署代码。 SVN,全称...
"描述一种 SAE J1939-21 协议应用于商用车车载 CAN 网络系统设计过程的多包数据传输协议的传输原理、传输过程,结合工程实践,分析了多包传输协议在商用车整车 CAN 网络系统开发过程中的应用,该协议对处理诊断报文...
SAE是一个基于云计算的平台,允许开发者使用Python、Java等语言快速构建、部署和管理Web应用。 在描述中提到的“python代码(SAE代码)”,暗示我们处理的是一个用Python编写的SAE应用实例。Python是SAE支持的主要...
这个发行包的重点在于它具有与SAE的兼容性,并且解决了中文输出的问题,这对于处理中文内容的网站或应用来说是非常关键的。 描述中的“尤其适合SAE”进一步强调了该发行包针对SAE进行了优化,确保在SAE环境下能够...
总的来说,SAE提供了一个方便的开发环境,使得开发者可以快速构建和部署Web应用,而无需关注底层的服务器管理。通过理解并熟练运用SAE的数据库接口,我们可以高效地开发出与SAE数据库交互的应用程序。