简体   繁体   中英

Deployed war file not starting in tomcat manager

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>

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

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

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..?

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM