2013-07-15 17 views
7

Tomcat 7'ye geçiş yaptım [7.0.4.1] geçmişte bir startUp, 5 veya 7 saniye arasında sürüyor, şimdi de diğer postada okudum 30 saniye sürüyor web.xml dosyasında metadata-complete = "true" kümesi hile çözüyor ama benim durumumda çözülmüyor gibi görünüyor metadata-complete="true"WEB-INF/web.xml ve tomcat/conf/web.xml ekledim işe yaramıyor. Burada Tomcat 7 yavaş başlangıç ​​metadata-complete = "true" web.xml

burada dağıtma başarıyla burada ediliyor WEB-INF/web.xml

<web-app metadata-complete="true" version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"> 

kod iz erkek kedi baskı olduğu olduğu tomcat/conf/web.xml

<web-app xmlns="http://java.sun.com/xml/ns/javaee" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" 
metadata-complete="true" 
version="3.0"> 

kodudur. Bu cümlede

INFO: Starting Servlet Engine: Apache Tomcat/7.0.41 
jul 22, 2013 4:33:08 PM org.apache.catalina.core.ApplicationContext log 
INFO: No Spring WebApplicationInitializer types detected on classpath 

30 saniye devralıyor ..
INFO: Starting Servlet Engine: Apache Tomcat/7.0.41 

sorularıma

şunlardır:

  • ben yanlış yapıyorum ??

  • Nasıl görebiliyorum metadata-complete, başkalarının web sitesinde okuduğumu true olarak ayarlıyor bu bayrağı isMetadataComplete() numaralı telefondan kontrol etmekle yapılabiliyor ama sorum şu, bu yöntemi nerede arayabilirim? Biz [Yay, Hibernate ZK] üzerinden projede kullanırken

.

+1

Eğer sunucu uygulamasını 3,0 kullanmıyorsanız (Java 8 Tomcat eski bir sürümünü kullandığım için açıklama işleme tamamen başlangıçta meydana gelen istisnalar dolu, benim için bozuldu), sonra 'meta tamamlanmayan öğe geçerli değil. Kapsayıcınız servlet 3.0 çalıştırmıyorsa, sürüm 3.0 ayarlayamazsınız. Servlet 3.0 kavanozu var. –

cevap

8

Meta veri tamamlama, başlangıç ​​saati sorunumu da çözmedi. Sorun şu ki, tomcat, ek açıklamalar ve tld dosyaları için başlangıçta birden fazla (hemen hemen tüm kavanozlar) tarar. Tabii ki, tüm kavanozlar tld dosyaları ve ek açıklamaları içermez. Başlangıç ​​zamanlarınızı geliştirmek için bu kavanozları hariç tutabilirsiniz. aşağıdaki gibi bir şey hile yapmak gerekir: conf/catalina.properties ayarlayın: hala benim gibi bu sorunla karşılaşabilir olanlar için

org.apache.catalina.startup.ContextConfig.jarsToSkip=*.jar 

# Additional JARs (over and above the default JARs listed above) to skip when 
# scanning for TLDs. The list must be a comma separated list of JAR file names. 
# The following list will make sure stuff like jstl and spring-webmvc.jar etc which contain tld files are included 
org.apache.catalina.startup.TldConfig.jarsToSkip=a*.jar,b*.jar,c*.jar,d*.jar,e*.jar,f*.jar,g*.jar,h*.jar,i*.jar,jc*.jar, jd*.jar, je*.jar, jl*.jar, jo*.jar, JO*.jar, jr*.jar, jso*.jar, jsr*.jar, jts*.jar,k*.jar,l*.jar,m*.jar,n*.jar,o*.jar,p*.jar,q*.jar,r*.jar,spring-a*.jar, spring-c*.jar, spring-e*.jar, spring-j*.jar, spring-s*.jar, spring-test*.jar, stax*.jar, st*.jar, t*.jar,u*.jar,v*.jar,w*.jar,x*.jar,y*.jar,z*.jar 
+1

Üzgünüz, hangi kavanozların TLD ve ek açıklamaları içerdiğini nasıl bilebilirim? bahar, hazırda, ehcache ve ZK kullanıyoruz. – chiperortiz

+0

Kullandığınız etiketlere bağlıdır. Çoğu insan sadece jstl ve spring form etiketlerini kullanırdı. Böyle durumlarda, önerdiğim yeterlidir. Başka etiket kullanıp kullanmadığınızı görmek için JSP dosyalarınıza bakmak isteyebilirsiniz. Teşekkürler. –

+0

TLD dosyaları için tarama yeni değil. Başından beri var. Bunun bir nedeni olmamalı çünkü tomcat'in eski sürümlerinde daha hızlıydı. –

1

(3.2'ye Bahar 3,0 Java 8 ve göç ederken), notu o Kullandığınız herhangi bir kavanoz bir web-fragment.xml (yay-ağı gibi) içeriyorsa, bu sorunla da karşılaşırsınız.

Bunu önlemek için ayrıca boş absolute-ordering belirtmelidir senin web.xml (SPRING-10196 göre ve Tomcat'in HowTo/FasterStartUp):

<absolute-ordering/> 

(Ayrıca size web.xml''deki Servlet'dir 3.0 belirterek emin olun

Ayrıca, Tomcat'in eski bir sürümünü kullanıyorsanız, bug 54262 nedeniyle boş bir absolute-ordering çalışmayacaktır.Bunu düzeltmek için bir kukla parçası adı kullanın:

şey çalışırsa
<absolute-ordering> 
    <!-- Due to a bug in Tomcat 7.0.29, an empty absolute-ordering does not prevent the annotation scanning. 
    Adding a dummy fragment name does the trick. 
    see proposed workaround in https://bz.apache.org/bugzilla/show_bug.cgi?id=54262#c0 --> 
    <name>dummy</name> 
</absolute-ordering> 

, @Prashant önerdiği jarsToSkip çözümü düşünün, ancak tüm ortamlarda Tomcat yapılandırmasını değiştirmek için gerektirdiğinden bu daha can sıkıcı.

İlgili konular