0

spring mvc とehCacheを使用して Java webapp を開発しています。Tomcat または jetty を使用して問題なくデプロイできます。webapp/war と統合テストの 2 つの Maven プロジェクトがあります。統合テスト ライフサイクルの一部として webapp を開始した後、hudson ジョブで統合テストを実行する必要があります。

ただし、ハドソンジョブの一部として起動しようとすると、例外が発生します

java.lang.NoSuchMethodError: net.sf.ehcache.Cache.getAll(Ljava/util/Collection;)Ljava/util/Map;

私の統合テストPOMには次のものがあります:

<build>
  <plugins>
    <plugin>
      <groupId>org.codehaus.cargo</groupId>
      <artifactId>cargo-maven2-plugin</artifactId>
      <version>1.2.2</version>
      <configuration>
        <container>
          <containerId>jetty7x</containerId>
          <type>embedded</type>
        </container>
        <configuration>
          <type>standalone</type>
          <properties>
            <cargo.servlet.port>8040</cargo.servlet.port>
          </properties>
          <deployables>
            <deployable>
              <groupId>${project.groupId}</groupId>
              <artifactId>webapp</artifactId>
              <type>war</type>
              <pingURL>http://localhost:8040/context/status</pingURL>
              <properties>
                <context>context</context>
              </properties>
            </deployable>
          </deployables>
        </configuration>
      </configuration>
      <executions>
        <execution>
          <id>start-server</id>
          <phase>pre-integration-test</phase>
          <goals>
            <goal>start</goal>
          </goals>
        </execution>
        <execution>
          <id>stop-server</id>
          <phase>post-integration-test</phase>
          <goals>
            <goal>stop</goal>
          </goals>
        </execution>
      </executions>
    </plugin>
    <plugin>
      <artifactId>maven-failsafe-plugin</artifactId>
      <version>2.12</version>
      <dependencies>
        <dependency>
          <groupId>org.apache.maven.surefire</groupId>
          <artifactId>surefire-junit47</artifactId>
          <version>2.12</version>
        </dependency>
      </dependencies>
      <configuration></configuration>
      <executions>
        <execution>
          <goals>
            <goal>integration-test</goal>
          </goals>
          <configuration>
            <includes>
              <include>**/*.class</include>
            </includes>
            <skipTests>false</skipTests>
          </configuration>
        </execution>
        <execution>
          <id>verify</id>
          <goals>
            <goal>verify</goal>
          </goals>
        </execution>
      </executions>
    </plugin>
  </plugins>
</build>

そして、失敗するコード行:

@Named("statGroupDto")
@Repository
@Transactional
public class CachedStatGroupDaoImpl implements StatGroupDao {
  @Inject
  public CachedStatGroupDaoImpl(@Named("cacheManager") final org.springframework.cache.CacheManager cacheManager) {
    this.cacheManager = (EhCacheCacheManager) cacheManager;
 statsGroupCacheCache =  (EhCacheCache) this.cacheManager.getCache("statsCache");
            statsGroupCache = (Cache) statsGroupCacheCache.getNativeCache();
    @Override
    public Collection<StatGroup> getAll() {
      Map<Object, Element> allElements = statsGroupCache.getAll(statsGroupCache.getKeys());

私の開発マシンと本番環境では正常に起動して実行されますが、hudson が統合テストを実行しようとすると、Web サービスを起動できません。

何か案は?

4

1 に答える 1