2017-08-24 14 views
1

キャッシングを処理するJSRアノテーションを実装しようとしています。多くの研究といくつかの質問の後、私は以下の点に着きました。しかし、これを実行しようとすると、それは言うSpringにTomcatではなくWildFlyを使用させるにはどうすればいいですか?

java.lang.RuntimeException: java.lang.ClassCastException: org.apache.tomcat.websocket.server.WsServerContainer cannot be cast to io.undertow.websockets.jsr.ServerWebSocketContainer Caused by: java.lang.RuntimeException: java.lang.ClassCastException: org.apache.tomcat.websocket.server.WsServerContainer cannot be cast to io.undertow.websockets.jsr.ServerWebSocketContainer Caused by: java.lang.ClassCastException: org.apache.tomcat.websocket.server.WsServerContainer cannot be cast to io.undertow.websockets.jsr.ServerWebSocketContainer"}} 

私はここで間違って何ですか?

HelloService.java

@Path("/helloservice") 
@EnableCaching 
public class HelloService extends CachingSetup{ 

    @GET 
    @Path("/unsecured") 
    @Produces({"text/plain"}) 
    @CacheResult 
    public String testUnsecured(){ 
     return "Unsecured user"; 
    } 
} 

CachingSetup.java

import static java.util.concurrent.TimeUnit.SECONDS; 
import javax.cache.CacheManager; 
import javax.cache.configuration.MutableConfiguration; 
import javax.cache.expiry.Duration; 
import javax.cache.expiry.TouchedExpiryPolicy; 
import org.springframework.boot.autoconfigure.cache.JCacheManagerCustomizer; 
import org.springframework.stereotype.Component; 

    @Component 
    public class CachingSetup implements JCacheManagerCustomizer 
    { 
    @Override 
    public void customize(CacheManager cacheManager) 
    { 
     cacheManager.createCache("basicCache", new MutableConfiguration<>() 
     .setExpiryPolicyFactory(TouchedExpiryPolicy.factoryOf(new Duration(SECONDS, 10))) 
     .setStoreByValue(false) 
     .setStatisticsEnabled(true)); 
    } 
    } 

ehcache.xml

<config 
    xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' 
    xmlns='http://www.ehcache.org/v3' 
    xmlns:jsr107='http://www.ehcache.org/v3/jsr107'> 

    <service> 
    <jsr107:defaults> 
     <jsr107:cache name="basicCache" template="heap-cache"/> 
    </jsr107:defaults> 
    </service> 

    <cache-template name="heap-cache"> 
    <listeners>  
     <listener> 
     <class>org.terracotta.ehcache.EventLogger</class> 
     <event-firing-mode>ASYNCHRONOUS</event-firing-mode> 
     <event-ordering-mode>UNORDERED</event-ordering-mode> 
     <events-to-fire-on>CREATED</events-to-fire-on> 
     <events-to-fire-on>UPDATED</events-to-fire-on> 
     <events-to-fire-on>EXPIRED</events-to-fire-on> 
     <events-to-fire-on>REMOVED</events-to-fire-on> 
     <events-to-fire-on>EVICTED</events-to-fire-on> 
     </listener> 
    </listeners> 
    <resources> 
     <heap unit="entries">2000</heap> 
     <offheap unit="MB">100</offheap> 
    </resources> 
    </cache-template> 
</config> 

の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>com.sentiment360</groupId> 
    <artifactId>QuteeDemoRest</artifactId> 
    <version>v1</version> 
    <packaging>war</packaging> 

    <name>QuteeDemoRest</name> 

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

     <parent> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-parent</artifactId> 
     <version>1.3.2.RELEASE</version> 
    </parent> 

    <dependencies> 
     <dependency> 
      <groupId>javax</groupId> 
      <artifactId>javaee-web-api</artifactId> 
      <version>7.0</version> 
      <scope>provided</scope> 
     </dependency> 
     <!-- https://mvnrepository.com/artifact/org.mariadb.jdbc/mariadb-java-client --> 
     <dependency> 
      <groupId>org.mariadb.jdbc</groupId> 
      <artifactId>mariadb-java-client</artifactId> 
      <version>1.5.5</version> 
     </dependency> 
     <!-- https://mvnrepository.com/artifact/org.jboss.resteasy/resteasy-jaxrs --> 
     <dependency> 
      <groupId>org.jboss.resteasy</groupId> 
      <artifactId>resteasy-multipart-provider</artifactId> 
      <version>3.0.14.Final</version> 
      <scope>provided</scope> 
     </dependency> 
     <!-- https://mvnrepository.com/artifact/org.jboss.resteasy/resteasy-links --> 
     <dependency> 
      <groupId>org.jboss.resteasy</groupId> 
      <artifactId>resteasy-links</artifactId> 
      <version>3.1.4.Final</version> 
     </dependency> 
     <!-- https://mvnrepository.com/artifact/org.jboss.resteasy/resteasy-jaxrs --> 
     <dependency> 
      <groupId>org.jboss.resteasy</groupId> 
      <artifactId>resteasy-jaxrs</artifactId> 
      <version>3.1.4.Final</version> 
     </dependency> 
<!-- https://mvnrepository.com/artifact/org.jboss.resteasy/resteasy-jaxb-provider --> 
     <dependency> 
      <groupId>org.jboss.resteasy</groupId> 
      <artifactId>resteasy-jaxb-provider</artifactId> 
      <version>1.0-RC1</version> 
     </dependency>   
     <!-- https://mvnrepository.com/artifact/io.jsonwebtoken/jjwt --> 
     <dependency> 
      <groupId>io.jsonwebtoken</groupId> 
      <artifactId>jjwt</artifactId> 
      <version>0.6.0</version> 
     </dependency> 

     <!-- https://mvnrepository.com/artifact/org.ehcache/ehcache --> 
     <dependency> 
      <groupId>org.ehcache</groupId> 
      <artifactId>ehcache</artifactId> 
      <version>3.3.1</version> 
     </dependency> 

     <dependency> 
      <groupId>javax.cache</groupId> 
      <artifactId>cache-api</artifactId> 
     </dependency> 
         <!--SPRING--> 

    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-cache</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-web</artifactId> 
    </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> 

</project> 
+0

https://spring.io/blog/2014/03/07/deploying-spring-boot-applicationsを見ましたか? –

+0

リンクに感謝しています – Rilcon42

答えて

1

@ R.Cのリンクに感謝します。私は、デフォルトの春のTomcatの実装

にする必要
<dependency> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-starter-web</artifactId> 
</dependency> 

削除するために、私のpom.xmlを修正するために必要なことを発見した上:

<dependency> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-starter-web</artifactId> 

<exclusions> 
    <exclusion> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-tomcat</artifactId> 
    </exclusion> 
</exclusions> 
</dependency> 

を私はまた、右下の

<packaging>war</packaging> 

を追加しましたバージョンタグを上部に表示すると、次のようになります。

<groupId>com.sentiment360</groupId> 
<artifactId>QuteeDemoRest</artifactId> 
<version>v1</version> 
<packaging>war</packaging> 

<name>QuteeDemoRest</name> 
関連する問題