Deployed war file not starting in tomcat manager

4.7k Views Asked by At

i'm using tomcat v6.0. i have deployed admin.war from the manager page. and when i check the webapps directory i can see it is been extracted too..but i can't start that site from the tomcat manager.. This is my web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" id="WebApp_ID">

<display-name>mycompany-admin</display-name>

<context-param>
    <param-name>webAppRootKey</param-name>
    <param-value>blAdmin.root</param-value>
</context-param>

<context-param>
    <param-name>patchConfigLocation</param-name>
    <param-value>
        classpath:/bl-open-admin-contentClient-applicationContext.xml
        classpath:/bl-open-admin-contentCreator-applicationContext.xml
        classpath:/bl-admin-applicationContext.xml
        classpath:/bl-cms-contentClient-applicationContext.xml
        classpath:/bl-cms-contentCreator-applicationContext.xml
        classpath:/applicationContext.xml
        classpath:/applicationContext-email.xml
        /WEB-INF/applicationContext-datasource.xml
        /WEB-INF/applicationContext-admin-security.xml
        /WEB-INF/applicationContext-admin-filter.xml
        /WEB-INF/applicationContext-admin.xml
    </param-value>
</context-param>

<context-param>
    <param-name>shutdownHookMethod</param-name>
    <param-value>forceFlush</param-value>
</context-param>

<listener>
    <listener-class>
         org.springframework.web.context.request.RequestContextListener
    </listener-class>
</listener>

<filter>
    <filter-name>encodingFilter</filter-name>
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    <init-param>
        <param-name>encoding</param-name>
        <param-value>UTF-8</param-value>
    </init-param>
    <init-param>
        <param-name>forceEncoding</param-name>
        <param-value>true</param-value>
    </init-param>
</filter>

<filter-mapping>
    <filter-name>encodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

<filter>
    <filter-name>springSecurityFilterChain</filter-name>
    <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>

<filter-mapping>
    <filter-name>springSecurityFilterChain</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

<!-- enable configured logging -->
<context-param>
    <param-name>log4jConfigLocation</param-name>
    <param-value>/WEB-INF/log4j.xml</param-value>
</context-param>

<listener>
    <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>

<listener>
    <listener-class>org.broadleafcommerce.common.web.extensibility.MergeContextLoaderListener</listener-class>
</listener>

<listener>
    <listener-class>org.springframework.security.web.session.HttpSessionEventPublisher</listener-class>
</listener>

<!-- Initialize spring mvc -->
<servlet>
    <servlet-name>admin</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>
            classpath:/applicationContext-servlet-open-admin.xml
            classpath:/applicationContext-servlet-admin.xml
            classpath:/applicationContext-servlet-cms-contentClient.xml
            classpath:/applicationContext-servlet-cms-contentCreator.xml
            /WEB-INF/applicationContext-servlet-admin.xml
        </param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>

<!-- specify the url pattern that will engage spring mvc -->
<servlet-mapping>
    <servlet-name>admin</servlet-name>
    <url-pattern>/admin</url-pattern>
</servlet-mapping>

<env-entry>
    <env-entry-name>appName</env-entry-name>
    <env-entry-type>java.lang.String</env-entry-type>
    <env-entry-value>admin2</env-entry-value>
</env-entry>

3

There are 3 best solutions below

0
On BEST ANSWER

Your problem is that broadleaf has some properties into context.xml for site and admin, and wrapped inside war. You have to change those properties according to your connection details.

Here is the big hint

14, 2014 11:35:38 AM org.apache.naming.NamingContext lookup WARNING: Unexpected exception resolving reference java.sql.SQLException: ${database.driver}

note that ${database.driver}, if you'll search inside your project you'll see that there is /src/main/webapp/META-INF/context.xml

This post might help you, How to run broadleaf on Tomcat instead of jettyserver..?

2
On
Driver :-  com.mysql.jdbc.Driver
Url    :-  jdbc:mysql://192.168.0.232:3306/entrance
0
On

First copy the JDBC Driver's jar into $CATALINA_HOME/lib.

Then add something like the following in the tomcat server.xml file

<Resource name="jdbc/YourDB"
  global="jdbc/YourDB"
  auth="Container"
  type="javax.sql.DataSource"
  driverClassName="com.mysql.jdbc.Driver"
  url="jdbc:mysql://localhost:3306/YourUser"
  username="Yourusername"
  password="Yourpassword"
  maxActive="100"
  maxIdle="20"
  minIdle="5"
  maxWait="10000"/>

Then add the following in the server context.xml file

<ResourceLink name="jdbc/YourLocalDB"
            global="jdbc/YourDB"
            auth="Container"
            type="javax.sql.DataSource" />

There is a detailed tutorial here https://tomcat.apache.org/tomcat-7.0-doc/jndi-datasource-examples-howto.html#MySQL_DBCP_Example