如何升级这个嵌入式tomcat?

时间:2010-12-28 09:27:33

标签: java tomcat embed upgrade

我想基本上升级我的tomcat版本(在RHEL上)。

始终在我的war文件将被转储到* / webapps的环境中工作,在重新启动tomcat时,war文件将展开,其余文件将成为历史记录。

现在,我正在研究的系统具有完全不同的文件夹结构。

这样的事情:

[root@bliss ~]# ls /usr/local/blah/blu-app/WEB-INF/
accounts      faces-reports.xml  logging.properties             web-app_2_3.dtd
bin           faces-syscfg.xml   logging.properties-production  web-app_2_4.xsd
buildnum.txt  framework2007      perl                           web.xml
classes       host.xsd           settings                       work
deploy-root   java.policy        tags
events.xsd    lib                tld
[root@bliss ~]#

我可以在这里看到一些与tomcat相关的罐子:

/usr/local/blah/blu-app/WEB-INF/lib/tomcat-http.jar
/usr/local/blah/blu-app/WEB-INF/lib/tomcat-util.jar
/usr/local/blah/blu-app/WEB-INF/lib/tomcat-coyote.jar

更新

所以我确实发现tomcat是嵌入的'因为我找到了以下代码启动它:

tomcat = new Embedded();
tomcat.setCatalinaHome(targetPath);

Host host = tomcat.createHost("localhost", targetPath);
Context rootCtx = tomcat.createContext("", targetPath);
((StandardContext)rootCtx).setWorkDir("WEB-INF/work"); 
ServletContext servletContext = rootCtx.getServletContext();
servletContext.setAttribute("version", version);
ApplRealm realm = new ApplRealm(servletContext);
tomcat.setRealm(realm);

rootCtx.setPrivileged(true);

Engine engine = tomcat.createEngine();
engine.setName("tomcat");
engine.setDefaultHost("localhost");
host.addChild(rootCtx);
engine.addChild(host);
tomcat.addEngine(engine);

LOG.debug("starting tomcat");
tomcat.start();
LOG.debug("tomcat started");
// clear out any old sessions: see bug 17882
Session[] sessions = rootCtx.getManager().findSessions();
for (int i = 0; i < sessions.length; i++)
{
    sessions[i].expire();
}

ServerSocket socket = null;
socket = new ServerSocket(CmcUtils.getControlPort(), 2, InetAddress.getByName("127.0.0.1"));
socket.accept();

LOG.info("Received shutdown command. Exiting !");

tomcat.stop();

那么问题是,如何升级这个tomcat来说Tomcat6?

替换为WEB-INF / lib中的最新jar?所有的罐子?

2 个答案:

答案 0 :(得分:1)

这取决于。它可能是一个嵌入式tomcat,但它也可能是一个高度自定义的tomcat配置。

检查启动脚本以确定要调用的类。如果它通常catalina没有嵌入它只是他们改变配置指向另一个文件夹而不是webapps。

如果它确实是嵌入的那么升级你将需要用新的替换tomcat jar。

答案 1 :(得分:0)

在tomcat中我们可以创建虚拟主机,即使tomcat识别部署在外部文件夹中的应用程序。

这里可以找到更多信息。 http://tomcat.apache.org/tomcat-5.5-doc/config/host.html

在您的给定方案中,尝试在server.xml中查找,该文件通常位于tomcat home的conf文件夹中。