2010-12-28 10 views
2

基本的に私のTomcatバージョン(RHEL上)をアップグレードしたいです。この埋め込みTomcatをアップグレードするにはどうすればよいですか?

いつも私のwarファイルが*/webappsにダンプされる環境では、tomcatの再起動時にwarファイルが展開され、残りはhistoryになります。

今、私が取り組んでいるシステムは、全く異なるフォルダ構造を持っています。このような

何か:

[[email protected] ~]# 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 
[[email protected] ~]# 

私はここにいくつかのTomcat関連のjarファイルを見ることができます:

/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 

UPDATE

をだから私はTomcatのがcuzを「埋め込まれていることを知りました私はそれを開始する次のコードを見つけた:

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ファイルに置き換えてください。どちらの瓶?

+0

ノックノック! :) – pavanlimo

答えて

1

です。それは埋め込み型のTomcatでもかまいませんが、非常にカスタマイズされたTomcat構成でもあります。

起動スクリプトを調べて、呼び出されているクラスを特定します。そのカタロニアが埋め込まれていない場合、webappsではなく別のフォルダを指すようにconfigを変更しました。

実際にアップグレードする場合は、tomcat jarsを新しいものに置き換える必要があります。

+0

感謝jbx、それは確かに埋め込まれていた。質問が更新されました。どうぞご覧ください。 – pavanlimo

+0

したがって、関連するすべてのJarを置き換える必要があります。ここでこのリンクを見てください。 Tomcat 7.0用ですが、良いアイデアを提供します。 http://nileshk.com/2010/08/25/emdedding-apache-tomcat-7-0.html – jbx

+0

これを試すときは非常に注意が必要です。 Tomcatのメンバーがクラスをリファクタリングしたり、クラス名、パッケージ名またはメソッド名を変更してアプリケーションコードを破壊する可能性があるという保証はありません。アップグレードが必要な具体的な理由はありますか? – jbx

0

tomcatでは、仮想ホストを作成することができます。つまり、tomcatは、外部フォルダに展開されたアプリケーションを認識させることができます。

多くの情報がここにあります。 http://tomcat.apache.org/tomcat-5.5-doc/config/host.html

あなたのシナリオでは、通常tomcat homeのconfフォルダにあるserver.xmlを検索してみてください。

+0

server.xmlが見つかりませんでした。だから風邪の家がないので、これはemeddedされていますか? – pavanlimo

+0

システム全体を検索しましたか? –

+0

あなたはこのように長い道を進んでいます。あなたが知っていることから始める。アプリケーションの起動に使用するスクリプトを確認します。通常のtomcat startup.shやcatalina.shのように見える場合、埋め込まれていません。埋め込みとは、アプリケーションがプログラムによってTomcatを起動することを意味します。 – jbx

関連する問題