Java – deploy to Tomcat 7 ok but unable to access the application
I have a Java wicket application deployed using Jenkins CI – > Tomcat 7 on the server Everything seems to be fine until I try to access the application through the browser (through the list of deployed applications in the manager application) Then I received 404 errors In the log, I can start from tomcat7 stdout - Log - the spring bean I set up is outputting init debug statements from my code, so it looks ready without errors
My development machine is 32-bit win7 The server is 64 bit win Server 2008 R2
I think it may be the way Jenkins builds war files or the incompatibility between 32 / 64 bit versions. I installed Tomcat 7 locally, so it is all on the same machine. When I deploy from the manager application, I get the same results
>When I close Tomcat and try to access localhost: 8080, nothing is displayed, so no other applications compete for the port. I can see > create meta inf / context using < context path = "/ system4" / > XML inside also does not affect deployment (that is, it still says it is on the path specified by the war name). > I deleted some wrong listenerStart problems here according to the instructions, but the created log file is empty > run locally through MVN jetty: there is no problem running and starting the application Then I can successfully navigate to the application on localhost: 8080 > there are no errors in the log file The following is the total output for each file in the (local) deployment
localhost.. log:
Jul 01,2013 11:47:58 AM org.apache.catalina.core.ApplicationContext log
INFO: ContextListener: contextInitialized()
Jul 01,2013 11:47:58 AM org.apache.catalina.core.ApplicationContext log
INFO: SessionListener: contextInitialized()
Jul 01,2013 11:47:58 AM org.apache.catalina.core.ApplicationContext log
INFO: ContextListener: attributeAdded('org.apache.jasper.compiler.TldLocationsCache','org.apache.jasper.compiler.TldLocationsCache@46128d')
localhost_ access_ log. log:
127.0.0.1 - tomcatgui [01/Jul/2013:11:48:11 +0100] "GET /manager/html/list?org.apache.catalina.filters.CSRF_NONCE=DBBBE417970CCAAB039E98C236CB177A HTTP/1.1" 200 15822 127.0.0.1 - tomcatgui [01/Jul/2013:11:48:11 +0100] "GET /manager/images/asf-logo.gif HTTP/1.1" 304 - 127.0.0.1 - tomcatgui [01/Jul/2013:11:48:11 +0100] "GET /manager/images/tomcat.gif HTTP/1.1" 304 - 127.0.0.1 - tomcatgui [01/Jul/2013:11:48:16 +0100] "GET /manager/html/list?org.apache.catalina.filters.CSRF_NONCE=634AA4131BBA0B7368023C32CD653FC8 HTTP/1.1" 200 15822 127.0.0.1 - tomcatgui [01/Jul/2013:11:48:34 +0100] "POST /manager/html/upload?org.apache.catalina.filters.CSRF_NONCE=AA80212A2557D18475CB621F165BD24E HTTP/1.1" 200 17716
host-manager.. Log (empty)
catalina.. log:
Jul 01,2013 11:47:57 AM org.apache.catalina.core.AprLifecycleListener init INFO: Loaded APR based Apache Tomcat Native library 1.1.27 using APR version 1.4.6. Jul 01,2013 11:47:57 AM org.apache.catalina.core.AprLifecycleListener init INFO: APR capabilities: IPv6 [true],sendfile [true],accept filters [false],random [true]. Jul 01,2013 11:47:58 AM org.apache.catalina.core.AprLifecycleListener initializeSSL INFO: OpenSSL successfully initialized (OpenSSL 1.0.1d 5 Feb 2013) Jul 01,2013 11:47:58 AM org.apache.coyote.AbstractProtocol init INFO: Initializing ProtocolHandler ["http-apr-8080"] Jul 01,2013 11:47:58 AM org.apache.coyote.AbstractProtocol init INFO: Initializing ProtocolHandler ["ajp-apr-8009"] Jul 01,2013 11:47:58 AM org.apache.catalina.startup.Catalina load INFO: Initialization processed in 1152 ms Jul 01,2013 11:47:58 AM org.apache.catalina.core.StandardService startInternal INFO: Starting service Catalina Jul 01,2013 11:47:58 AM org.apache.catalina.core.StandardEngine startInternal INFO: Starting Servlet Engine: Apache Tomcat/7.0.41 Jul 01,2013 11:47:58 AM org.apache.catalina.startup.HostConfig deployDirectory INFO: deploying web application directory C:\apache-tomcat-7.0.41\webapps\docs Jul 01,2013 11:47:58 AM org.apache.catalina.startup.HostConfig deployDirectory INFO: deploying web application directory C:\apache-tomcat-7.0.41\webapps\examples Jul 01,2013 11:47:58 AM org.apache.catalina.startup.HostConfig deployDirectory INFO: deploying web application directory C:\apache-tomcat-7.0.41\webapps\host-manager Jul 01,2013 11:47:58 AM org.apache.catalina.startup.HostConfig deployDirectory INFO: deploying web application directory C:\apache-tomcat-7.0.41\webapps\manager Jul 01,2013 11:47:58 AM org.apache.catalina.startup.HostConfig deployDirectory INFO: deploying web application directory C:\apache-tomcat-7.0.41\webapps\ROOT Jul 01,2013 11:47:58 AM org.apache.coyote.AbstractProtocol start INFO: Starting ProtocolHandler ["http-apr-8080"] Jul 01,2013 11:47:58 AM org.apache.coyote.AbstractProtocol start INFO: Starting ProtocolHandler ["ajp-apr-8009"] Jul 01,2013 11:47:58 AM org.apache.catalina.startup.Catalina start INFO: Server startup in 440 ms Jul 01,2013 11:48:25 AM org.apache.catalina.startup.HostConfig deployWAR INFO: deploying web application archive C:\apache-tomcat-7.0.41\webapps\system4-ui-0.0.1-SNAPSHOT.war
servlet-examples.. Log (the one suggested in the link) (empty - the log level is set to all)
manager.. log:
Jul 01,2013 11:48:11 AM org.apache.catalina.core.ApplicationContext log INFO: HTMLManager: init: Associated with Deployer 'Catalina:type=Deployer,host=localhost' Jul 01,2013 11:48:11 AM org.apache.catalina.core.ApplicationContext log INFO: HTMLManager: init: Global resources are available Jul 01,2013 11:48:11 AM org.apache.catalina.core.ApplicationContext log INFO: HTMLManager: list: Listing contexts for virtual host 'localhost' Jul 01,2013 11:48:16 AM org.apache.catalina.core.ApplicationContext log INFO: HTMLManager: list: Listing contexts for virtual host 'localhost' Jul 01,2013 11:48:34 AM org.apache.catalina.core.ApplicationContext log INFO: HTMLManager: list: Listing contexts for virtual host 'localhost'
Output of Tomcat window:
Jul 01,2013 11:47:57 AM org.apache.catalina.core.AprLifecycleListener init
INFO: Loaded APR based Apache Tomcat Native library 1.1.27 using APR version 1.4
.6.
Jul 01,ra
ndom [true].
Jul 01,2013 11:47:58 AM org.apache.catalina.core.AprLifecycleListener initializ
eSSL
INFO: OpenSSL successfully initialized (OpenSSL 1.0.1d 5 Feb 2013)
Jul 01,2013 11:47:58 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: deploying web application directory C:\apache-tomcat-7.0.41\webapps\exampl
es
Jul 01,2013 11:47:58 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: deploying web application directory C:\apache-tomcat-7.0.41\webapps\host-m
anager
Jul 01,2013 11:47:58 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: deploying web application directory C:\apache-tomcat-7.0.41\webapps\manage
r
Jul 01,2013 11:48:25 AM org.apache.catalina.startup.HostConfig deployWAR
INFO: deploying web application archive C:\apache-tomcat-7.0.41\webapps\system4-
ui-0.0.1-SNAPSHOT.war
Jul 01,2013 11:48:31 AM org.apache.catalina.core.StandardContext listenerStart
FINE: Sending application start events
Jul 01,2013 11:48:31 AM org.apache.catalina.core.StandardContext filterStart
FINE: Starting filters
Jul 01,2013 11:48:31 AM org.apache.catalina.core.StandardContext filterStart
FINE: Starting filter 'wicket.system4-ui'
INFO - WebXmlFile - web.xml: url mapping found for filter with
name wicket.system4-ui: [/*]
INFO - Application - [wicket.system4-ui] init: Wicket core libra
ry initializer
INFO - RequestListenerInterface - registered listener interface [RequestListe
nerInterface name=IBehaviorListener,method=public abstract void org.apache.wick
et.behavior.IBehaviorListener.onRequest()]
INFO - RequestListenerInterface - registered listener interface [RequestListe
nerInterface name=IFormSubmitListener,method=public abstract void org.apache.wi
cket.markup.html.form.IFormSubmitListener.onFormSubmitted()]
INFO - RequestListenerInterface - registered listener interface [RequestListe
nerInterface name=ILinkListener,method=public abstract void org.apache.wicket.m
arkup.html.link.ILinkListener.onLinkClicked()]
INFO - RequestListenerInterface - registered listener interface [RequestListe
nerInterface name=IOnchangelistener,method=public abstract void org.apache.wick
et.markup.html.form.IOnchangelistener.onSelectionChanged()]
INFO - RequestListenerInterface - registered listener interface [RequestListe
nerInterface name=IRedirectListener,method=public abstract void org.apache.wick
et.IRedirectListener.onRedirect()]
INFO - RequestListenerInterface - registered listener interface [RequestListe
nerInterface name=IResourceListener,method=public abstract void org.apache.wick
et.IResourceListener.onResourceRequested()]
INFO - Application - [wicket.system4-ui] init: Wicket extensions
initializer
INFO - sPathXmlApplicationContext - Refreshing org.springframework.context.supp
ort.ClassPathXmlApplicationContext@19b35e1: startup date [Mon Jul 01 11:48:32 BS
T 2013]; root of context hierarchy
INFO - XmlBeanDeFinitionReader - Loading XML bean deFinitions from class pat
h resource [Meta-INF/applicationContext-data.xml]
INFO - sPathBeanDeFinitionScanner - JSR-330 'javax.inject.Named' annotation fou
nd and supported for component scanning
INFO - nnotationBeanPostProcessor - JSR-330 'javax.inject.Inject' annotation fo
und and supported for autowiring
INFO - sPathXmlApplicationContext - Bean 'org.springframework.orm.jpa.vendor.Hi
bernateJpaVendorAdapter#5d2d9b' of type [class org.springframework.orm.jpa.vendo
r.HibernateJpaVendorAdapter] is not eligible for getting processed by all BeanPo
stProcessors (for example: not eligible for auto-proxying)
INFO - sPathXmlApplicationContext - Bean 'org.springframework.instrument.classl
oading.InstrumentationLoadTimeweaver#f003c0' of type [class org.springframework.
instrument.classloading.InstrumentationLoadTimeweaver] is not eligible for getti
ng processed by all BeanPostProcessors (for example: not eligible for auto-proxy
ing)
INFO - erEntityManagerfactorybean - Building JPA container EntityManagerFactory
for persistence unit 'com.sw.system4.core.persistence'
INFO - Version - HCANN000001: Hibernate Commons Annotations
{4.0.1.Final}
INFO - Version - HHH000412: Hibernate Core {4.2.0.Final}
INFO - Environment - HHH000206: hibernate.properties not found
INFO - Environment - HHH000021: Bytecode provider name : javassi
st
INFO - Ejb3Configuration - HHH000204: Processing PersistenceUnitInfo [
name: com.sw.system4.core.persistence
...]
INFO - agerConnectionProviderImpl - HHH000402: Using Hibernate built-in connect
ion pool (not for production use!)
INFO - agerConnectionProviderImpl - HHH000115: Hibernate connection pool size:
20
INFO - agerConnectionProviderImpl - HHH000006: Autocommit mode: true
INFO - agerConnectionProviderImpl - HHH000401: using driver [com.MysqL.jdbc.Dri
ver] at URL [jdbc:MysqL://localhost:3306/system4_live]
INFO - agerConnectionProviderImpl - HHH000046: Connection properties: {user=sys
tem4_user,password=****,autocommit=true,release_mode=auto}
INFO - Dialect - HHH000400: Using dialect: org.hibernate.dia
lect.MysqL5Dialect
INFO - ransactionFactoryInitiator - HHH000268: Transaction strategy: org.hibern
ate.engine.transaction.internal.jdbc.JdbcTransactionFactory
INFO - ASTQueryTranslatorFactory - HHH000397: Using ASTQueryTranslatorFactory
INFO - SchemaUpdate - HHH000228: Running hbm2ddl schema update
INFO - SchemaUpdate - HHH000102: Fetching database Metadata
INFO - SchemaUpdate - HHH000396: Updating schema
INFO - TableMetadata - HHH000261: Table found: system4_live.user
INFO - TableMetadata - HHH000037: Columns: [id,enabled,username,preferences_id,lastlogin,lastname,firstname,password,changepasswordrequire
d]
INFO - TableMetadata - HHH000108: Foreign keys: [fk285feb559233ea]
INFO - TableMetadata - HHH000126: Indexes: [primary,fk285feb55923
3ea]
INFO - TableMetadata - HHH000261: Table found: system4_live.userpr
eferences
INFO - TableMetadata - HHH000037: Columns: [id]
INFO - TableMetadata - HHH000108: Foreign keys: []
INFO - TableMetadata - HHH000126: Indexes: [primary]
INFO - SchemaUpdate - HHH000232: Schema update complete
INFO - sPathXmlApplicationContext - Bean 'entityManagerFactory' of type [class
org.springframework.orm.jpa.LocalContainerEntityManagerfactorybean] is not eligi
ble for getting processed by all BeanPostProcessors (for example: not eligible f
or auto-proxying)
INFO - DefaultListablebeanfactory - Pre-instantiating singletons in org.springf
ramework.beans.factory.support.DefaultListablebeanfactory@66d804: defining beans
[entityManagerFactory,transactionManager,org.springframework.orm.jpa.support.Pe
rsistenceAnnotationBeanPostProcessor#0,org.springframework.aop.config.internalAu
toProxyCreator,org.springframework.transaction.annotation.AnnotationTransactionA
ttributeSource#0,org.springframework.transaction.interceptor.TransactionIntercep
tor#0,org.springframework.transaction.config.internalTransactionAdvisor,persiste
nceExceptionTranslationPostProcessor,org.springframework.context.annotation.inte
rnalConfigurationAnnotationProcessor,org.springframework.context.annotation.inte
rnalAutowiredAnnotationProcessor,org.springframework.context.annotation.internal
requiredAnnotationProcessor,org.springframework.context.annotation.internalCommo
nAnnotationProcessor,org.springframework.context.annotation.internalPersistenceA
nnotationProcessor,userJpaDAO,user-service,encryption-service,org.springframewor
k.context.annotation.ConfigurationClassPostProcessor.importAwareProcessor]; root
of factory hierarchy
INFO - MD5EncryptionStrategy - EncryptionStrategy: Using MD5 for encryptio
n
INFO - WebApplication - [wicket.system4-ui] Started Wicket version
6.8.0 in DEVELOPMENT mode
********************************************************************
*** WARNING: Wicket is running in DEVELOPMENT mode. ***
*** ^^^^^^^^^^^ ***
*** Do NOT deploy to your live server(s) without changing this. ***
*** See Application#getConfigurationType() for more information. ***
********************************************************************
If I click the link to the Tomcat manager application, I get:
type Status report message /system4%2Dui%2D0.0.1%2DSNAPSHOT/ description The requested resource is not available.
This appears in localhost access Log:
127.0.0.1 - - [01/Jul/2013:11:54:38 +0100] "GET /system4%2Dui%2D0.0.1%2DSNAPSHOT/ HTTP/1.1" 404 1015
Can anyone help?
Solution
Well, it's strange
It all depends on the name of the war file, so it is the URL of the website I renamed the war file to system4 War and try to deploy it. I can navigate to the URL
I say this is strange because I ran the wicket QuickStart project on the same server a few months ago, and the war file name is very similar (i.e. wicket testproject-1.0-snapshot.war). Although it still works normally after redeploying the project, it is no longer applicable
I don't know why, because AFAIK dots and dashes are OK in URLs - maybe it's a Tomcat quirk or something
solve the problem:
In the POM. For generating war In XML, I include this line under the build tag:
<finalName>system4</finalName>
Now the war has been renamed, it's in system 4 Build and deploy under war and access it through < server >: < port > / system4
