2016-05-10 8 views
0

Ich versuche, ein "Web Session Clustering" in Tomcat 7 einzurichten. Ich folgte von http://apacheignite.gridgain.org/v1.5/docs/web-session-clustering mit repliziertem CacheMode. Und ich bin immer eine Ausnahme:Unexpected Ausnahme - Apache entzünden - Web Session Clustering

class org.apache.ignite.IgniteException: Cache for web sessions is not started (is it configured?): replicated 
at org.apache.ignite.cache.websession.WebSessionFilter.init(WebSessionFilter.java:235) 
at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:279) 
at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:260) 
at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:105) 
at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4908) 
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5602) 
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147) 
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:899) 
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:875) 
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:652) 
at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:679) 
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:554) 
at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1779) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
at java.lang.reflect.Method.invoke(Method.java:606) 
at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:301) 
at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819) 
at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801) 
at org.apache.catalina.manager.ManagerServlet.check(ManagerServlet.java:1506) 
at org.apache.catalina.manager.ManagerServlet.deploy(ManagerServlet.java:902) 
at org.apache.catalina.manager.ManagerServlet.doGet(ManagerServlet.java:361) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:624) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:731) 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) 
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) 
at org.apache.catalina.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:108) 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) 
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220) 
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122) 
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:614) 
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169) 
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) 
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956) 
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) 
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:436) 
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1078) 
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:625) 
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:318) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) 
at java.lang.Thread.run(Thread.java:745) 

Und das ist meine web.xml:

<?xml version="1.0" encoding="UTF-8"?> 
<web-app version="3.1" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"> 
<servlet> 
    <servlet-name>Login</servlet-name> 
    <servlet-class>pl.ocb.Login</servlet-class> 
</servlet> 
<servlet> 
    <servlet-name>Logout</servlet-name> 
    <servlet-class>pl.ocb.Logout</servlet-class> 
</servlet> 
<servlet-mapping> 
    <servlet-name>Login</servlet-name> 
    <url-pattern>/login</url-pattern> 
</servlet-mapping> 
<servlet-mapping> 
    <servlet-name>Logout</servlet-name> 
    <url-pattern>/logout</url-pattern> 
</servlet-mapping> 
<session-config> 
    <session-timeout> 
     30 
    </session-timeout> 
</session-config> 
<listener> 
    <listener-class>org.apache.ignite.startup.servlet.ServletContextListenerStartup</listener-class> 
</listener> 

<filter> 
    <filter-name>IgniteWebSessionsFilter</filter-name> 
    <filter-class>org.apache.ignite.cache.websession.WebSessionFilter</filter-class> 
</filter> 

<!-- You can also specify a custom URL pattern. --> 
<filter-mapping> 
    <filter-name>IgniteWebSessionsFilter</filter-name> 
    <url-pattern>/*</url-pattern> 
</filter-mapping> 


<context-param> 
    <param-name>IgniteConfigurationFilePath</param-name> 
    <param-value>config/default-config.xml </param-value> 
</context-param> 

<!-- Specify the name of Ignite cache for web sessions. --> 
<context-param> 
    <param-name>IgniteWebSessionsCacheName</param-name> 
    <param-value>replicated</param-value> 
</context-param> 

</web-app> 

und mein Standard-config.xml:

<beans xmlns="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation=" 
    http://www.springframework.org/schema/beans 
    http://www.springframework.org/schema/beans/spring-beans.xsd"> 

<bean class="org.apache.ignite.configuration.CacheConfiguration"> 
    <!-- Cache name. --> 
    <property name="cacheMode" value="REPLICATED"/> 

</bean> 
<bean id="grid.cfg" class="org.apache.ignite.configuration.IgniteConfiguration"> 
    <property name="discoverySpi"> 
     <bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi"> 
      <property name="ipFinder"> 
       <bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder"> 
        <property name="addresses"> 
         <list> 

          <!-- 
           IP Address and optional port range. 
           You can also optionally specify an individual port. 
          --> 
          <value>192.168.5.15:47500..47509</value> 
         </list> 
        </property> 
       </bean> 
      </property> 
     </bean> 
    </property> 
</bean> 

Und natürlich meine pom.xml:

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
<modelVersion>4.0.0</modelVersion> 

<groupId>pl.flomedia</groupId> 
<artifactId>OCB</artifactId> 
<version>1.0-SNAPSHOT</version> 
<packaging>war</packaging> 

<name>OCB</name> 

<properties> 
    <endorsed.dir>${project.build.directory}/endorsed</endorsed.dir> 
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
</properties> 

<dependencies> 
    <dependency> 
     <groupId>javax</groupId> 
     <artifactId>javaee-web-api</artifactId> 
     <version>7.0</version> 
     <scope>provided</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.ignite</groupId> 
     <artifactId>ignite-core</artifactId> 
     <version>1.5.0.final</version> 
     <scope>provided</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.ignite</groupId> 
     <artifactId>ignite-web</artifactId> 
     <version>1.5.0.final</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.ignite</groupId> 
     <artifactId>ignite-log4j</artifactId> 
     <version>1.5.0.final</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.ignite</groupId> 
     <artifactId>ignite-spring</artifactId> 
     <version>1.5.0.final</version> 
    </dependency> 
</dependencies> 

<build> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <version>3.1</version> 
      <configuration> 
       <source>1.7</source> 
       <target>1.7</target> 
       <compilerArguments> 
        <endorseddirs>${endorsed.dir}</endorseddirs> 
       </compilerArguments> 
      </configuration> 
     </plugin> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-war-plugin</artifactId> 
      <version>2.3</version> 
      <configuration> 
       <failOnMissingWebXml>false</failOnMissingWebXml> 
      </configuration> 
     </plugin> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-dependency-plugin</artifactId> 
      <version>2.6</version> 
      <executions> 
       <execution> 
        <phase>validate</phase> 
        <goals> 
         <goal>copy</goal> 
        </goals> 
        <configuration> 
         <outputDirectory>${endorsed.dir}</outputDirectory> 
         <silent>true</silent> 
         <artifactItems> 
          <artifactItem> 
           <groupId>javax</groupId> 
           <artifactId>javaee-endorsed-api</artifactId> 
           <version>7.0</version> 
           <type>jar</type> 
          </artifactItem> 
         </artifactItems> 
        </configuration> 
       </execution> 
      </executions> 
     </plugin> 
    </plugins> 
</build> 

Antwort

1

Die Ignite-Konfiguration ist nicht korrekt. CacheConfiguration Bohne hat als Teil IgniteConfiguration zur Verfügung gestellt werden und hat auch den Namen angegeben haben:

<bean id="grid.cfg" class="org.apache.ignite.configuration.IgniteConfiguration"> 
    <bean class="org.apache.ignite.configuration.CacheConfiguration"> 
     <!-- Cache name. --> 
     <property name="name" value="replicated"/> 

     <!-- Cache mode. --> 
     <property name="cacheMode" value="REPLICATED"/> 
    </bean> 

    <!-- Discovery, etc... --> 
</bean