このブログ投稿からサンプルのソース コードをダウンロードしました。それを Tomcat にエクスポートしたいと考えています。ほとんどの場合、Eclipse はプロジェクトを Web プロジェクトとして認識しないため、プロジェクトを Eclipse に「ほぼ」正常にインポートしました。
OK、IDE からエクスポートする代わりに、コンソールから WAR をコンパイルできました。
代わりにmvn package
コンソールから試しましたが、エラーが発生しました:
djechelon@RAYNOR:~/workspace/rest-sample> mvn package
28/gen/2013 12:54:47 com.google.inject.internal.MessageProcessor visit
INFO: An exception was caught and reported. Message: java.util.NoSuchElementException
java.util.NoSuchElementException
at java.util.AbstractList$2.next(libgcj.so.13)
at com.google.inject.spi.InjectionPoint.forMember(InjectionPoint.java:116)
at com.google.inject.spi.InjectionPoint.<init>(InjectionPoint.java:73)
at com.google.inject.spi.InjectionPoint$InjectableMethod.toInjectionPoint(InjectionPoint.java:459)
at com.google.inject.spi.InjectionPoint.getInjectionPoints(InjectionPoint.java:725)
at com.google.inject.spi.InjectionPoint.forInstanceMethodsAndFields(InjectionPoint.java:358)
at com.google.inject.spi.InjectionPoint.forInstanceMethodsAndFields(InjectionPoint.java:377)
at com.google.inject.internal.BindingBuilder.toInstance(BindingBuilder.java:84)
at org.codehaus.plexus.DefaultPlexusContainer$ContainerModule.configure(DefaultPlexusContainer.java:803)
at com.google.inject.spi.Elements$RecordingBinder.install(Elements.java:229)
at com.google.inject.spi.Elements.getElements(Elements.java:103)
at com.google.inject.spi.Elements.getElements(Elements.java:80)
at org.sonatype.guice.bean.binders.MergedModule.configure(MergedModule.java:54)
at com.google.inject.spi.Elements$RecordingBinder.install(Elements.java:229)
at com.google.inject.spi.Elements.getElements(Elements.java:103)
at com.google.inject.internal.InjectorShell$Builder.build(InjectorShell.java:136)
at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:104)
at com.google.inject.Guice.createInjector(Guice.java:94)
at com.google.inject.Guice.createInjector(Guice.java:71)
at com.google.inject.Guice.createInjector(Guice.java:61)
at org.codehaus.plexus.DefaultPlexusContainer.addPlexusInjector(DefaultPlexusContainer.java:470)
at org.codehaus.plexus.DefaultPlexusContainer.<init>(DefaultPlexusContainer.java:196)
at org.codehaus.plexus.DefaultPlexusContainer.<init>(DefaultPlexusContainer.java:160)
at org.apache.maven.cli.MavenCli.container(MavenCli.java:375)
at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:191)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:141)
at java.lang.reflect.Method.invoke(libgcj.so.13)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)
at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)
28/gen/2013 12:54:47 com.google.inject.internal.MessageProcessor visit
INFO: An exception was caught and reported. Message: java.util.NoSuchElementException
java.util.NoSuchElementException
at java.util.AbstractList$2.next(libgcj.so.13)
at com.google.inject.spi.InjectionPoint.forMember(InjectionPoint.java:116)
at com.google.inject.spi.InjectionPoint.<init>(InjectionPoint.java:73)
at com.google.inject.spi.InjectionPoint$InjectableMethod.toInjectionPoint(InjectionPoint.java:459)
at com.google.inject.spi.InjectionPoint.getInjectionPoints(InjectionPoint.java:725)
at com.google.inject.spi.InjectionPoint.forInstanceMethodsAndFields(InjectionPoint.java:358)
at com.google.inject.spi.InjectionPoint.forInstanceMethodsAndFields(InjectionPoint.java:377)
at com.google.inject.internal.BindingBuilder.toInstance(BindingBuilder.java:84)
at org.codehaus.plexus.DefaultPlexusContainer$DefaultsModule.configure(DefaultPlexusContainer.java:836)
at com.google.inject.spi.Elements$RecordingBinder.install(Elements.java:229)
at com.google.inject.spi.Elements.getElements(Elements.java:103)
at com.google.inject.spi.Elements.getElements(Elements.java:80)
at org.sonatype.guice.bean.binders.MergedModule.configure(MergedModule.java:54)
at com.google.inject.spi.Elements$RecordingBinder.install(Elements.java:229)
at com.google.inject.spi.Elements.getElements(Elements.java:103)
at com.google.inject.internal.InjectorShell$Builder.build(InjectorShell.java:136)
at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:104)
at com.google.inject.Guice.createInjector(Guice.java:94)
at com.google.inject.Guice.createInjector(Guice.java:71)
at com.google.inject.Guice.createInjector(Guice.java:61)
at org.codehaus.plexus.DefaultPlexusContainer.addPlexusInjector(DefaultPlexusContainer.java:470)
at org.codehaus.plexus.DefaultPlexusContainer.<init>(DefaultPlexusContainer.java:196)
at org.codehaus.plexus.DefaultPlexusContainer.<init>(DefaultPlexusContainer.java:160)
at org.apache.maven.cli.MavenCli.container(MavenCli.java:375)
at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:191)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:141)
at java.lang.reflect.Method.invoke(libgcj.so.13)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)
at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)
[ERROR] Error executing Maven.
[ERROR] null
上記のエラーは、すべての Maven プロジェクトに適用されます。最初に不安定なパッケージからMaven 3をインストールしてからアンインストールし、Apacheから公式のMaven 3をダウンロードして、ホームディレクトリの新しいパッケージで再試行しました(実行しませんでしたmvn
が/home/djechelon/apache-mvn------/bin/mvn
):同じエラー。
Spring Tools
ただし、Eclipse STS ( -> )から Maven を実行するUpdate Maven dependencies
と、エラーは発生せず、Eclipse のすべての依存関係が更新されます (ただし、プロジェクトが Web プロジェクトにはなりません)。
問題を修正して WAR を Tomcat にデプロイするにはどうすればよいですか?
[追加] pom.xmlの内容
<?xml version="1.0"?>
<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/maven-v4_0_0.xsd">
<artifactId>rest-sample</artifactId>
<modelVersion>4.0.0</modelVersion>
<inceptionYear>2011</inceptionYear>
<packaging>war</packaging>
<groupId>com.blog.rest</groupId>
<version>1.0</version>
<properties>
<releaseCandidate>1</releaseCandidate>
<spring.version>3.1.1.RELEASE</spring.version>
<java.version>1.5</java.version>
<jackson.mapper.version>1.5.6</jackson.mapper.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<maven.javadoc.reporting.version>2.7</maven.javadoc.reporting.version>
<commons.logging.version>1.1.1</commons.logging.version>
<log4j.version>1.2.16</log4j.version>
<context.path>rest-sample</context.path>
<jackson.mapper.version>1.5.6</jackson.mapper.version>
</properties>
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<warName>${context.path}</warName>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>${log4j.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aspects</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-asm</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-expression</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>${jackson.mapper.version}</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.4</version>
</dependency>
</dependencies>
</project>
[編集] Javaのバージョン
djechelon@RAYNOR:~/workspace/rest-sample> java -version
java version "1.7.0_09"
OpenJDK Runtime Environment (IcedTea7 2.3.4) (suse-3.20.1-x86_64)
OpenJDK 64-Bit Server VM (build 23.2-b09, mixed mode)