java – 部署基于Spring的WAR及其JAR依赖项外部化
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – 部署基于Spring的WAR及其JAR依赖项外部化,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1933字,纯文字阅读大概需要3分钟。
内容图文
![java – 部署基于Spring的WAR及其JAR依赖项外部化](/upload/InfoBanner/zyjiaocheng/741/9ff0107b967b4b9d8f9e899dfbde16b3.jpg)
我有一个Spring应用程序,它有很多依赖项(18兆字节的JAR文件..) – 现在,当我在远程Tomcat 6.0服务器上进行测试时,我不想上传那19兆字节的依赖项,并且只需上传课程.很简单吧?
我无法得到该死的东西.
我正在使用Eclipse 3.4,如果在Java Build Path-> Order and Export中删除了所有依赖项的导出,我会得到一个不错的小WAR.
所以这就是我尝试过的:
我将所有的lib上传到服务器,并将它们放在Tomcat的common / lib中.该目录不存在,所以我创建了它并修改了catalina.properties:
shared.loader=${catalina.home}/common/lib/*.jar
我尝试过其他一些配置,但都没有用.重启服务器,部署战无法启动.特别:
SEVERE: Error configuring application listener of class org.springframework.web.context.ContextLoaderList$java.lang.ClassNotFoundException:org.springframework.web.context.ContextLoaderListener at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1
它正在试图加载Log4J监听器,它在类路径中找不到它.监听器所在的弹簧库是共同的/ lib.
此外 – 当我部署完整的18兆字节战争时,它的工作正常.所有内容和应用程序启动.当然它在本地也可以正常工作.
哦 – 我已经用extras文件夹中的那些替换了硬编码的日志记录JAR,以允许Log4j工作.
这里有什么帮助?我不知道为什么这不起作用.
解决方法:
“我有一个有很多依赖项的Spring应用程序(18兆字节的JAR文件……) – 现在,当我在远程Tomcat 6.0服务器上进行测试时,我不想上传那19兆字节的依赖项,并上传课程.非常简单,对吧?“
我不明白这一点 – 19MB并不是很多.你只需要打包WAR就可以了.
我建议您在自己的相同Tomcat实例上进行本地测试,将其全部工作,然后将WAR部署到远程Tomcat实例.
更新:我将这些JAR放在Tomcat的/ lib目录中的一个问题是,现在您部署到该实例的每个应用程序都会看到这些JAR – 将它们更改为一个,所有这些都受到影响.如果将JAR放在每个WEB-INF / lib中,则可以修改每个应用程序而不影响其他应用程序.成本是重复的JAR和磁盘空间,这很便宜.
如果您必须从devl-> test-> prod迁移,另一个问题是,现在每个环境必须部署相同的JAR才能使您的应用正常工作.想念一个,你就被打破了.您的应用程序取决于是否具有这些依赖项.如果他们不在服务器上,那你就不走运了.保持控制权并将JAR打包在WAR文件中.
内容总结
以上是互联网集市为您收集整理的java – 部署基于Spring的WAR及其JAR依赖项外部化全部内容,希望文章能够帮你解决java – 部署基于Spring的WAR及其JAR依赖项外部化所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。