私はintro to rest apis with springに従っていますが、Tomcatサーバー(Tomcat 7と9を試してみました)で動作させることができません。 (http://localhost:8080/greeting?name=Susy)spring - tomcatでspring boot appを実行できない
EDIT
をエラーなしでTomcatを起動しますが、ブラウザで、私は404エラーを取得する> Apache Tomcatの - >実行構成 - Eclipseで、私は別のユーザーとして実行を行いますプロジェクトでmvn clean install
を試してからjava -jar project.jar
になると
Failed to load Main/Class manifest attribute from project.jar
EDIT 2
Iが実行可能ジャーにプロジェクトをエクスポート(および生成されたJARに必要なライブラリをパッケージ化)が、java -jar project.jar
が
java -jar restdemo.jar
Failed to instantiate SLF4J LoggerFactory
Reported exception:
java.lang.NoClassDefFoundError: ch/qos/logback/core/Context
at org.slf4j.LoggerFactory.bind(LoggerFactory.java:150)
EDIT 3
Iの避難所を与えます私はそこにたくさんのものがあるので私のm2を削除しましたが、今はEclipseのスプリングツールを使ってスプリングスタートプロジェクトを作成しています。私はWeb
とActuator
を依存関係として追加しました。プロジェクトはspring.io
から作成されたとき、私は最初に私の会社のプロキシブロックは春の親ポンポンを取得していることに気づく:
Original error: Could not transfer artifact org.springframework.boot:spring-boot-starter-parent:pom:1.5.9.RELEASE from/to <company>MavenRepository (http://maven-repository.<company>.net):
Access denied to http://maven-repository.<company>.net/org/springframework/boot/spring-boot-starter-parent/1.5.9.RELEASE/spring-boot-starter-parent-1.5.9.RELEASE.pom.
Error code 403, URLBlocked and 'parent.relativePath' points at wrong local POM
は、だから、私はポンポンMavenのアップデート後にエラーを取り除く
<repositories>
<repository>
<id>spring-releases</id>
<url>https://repo.spring.io/libs-release</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>spring-releases</id>
<url>https://repo.spring.io/libs-release</url>
</pluginRepository>
</pluginRepositories>
に加えます。しかし、私は春ブーツアプリとしてアプリケーションを実行すると、私は
このエラーを取得するにException in thread "main" java.lang.IllegalArgumentException: Cannot instantiate interface org.springframework.context.ApplicationContextInitializer : org.springframework.boot.context.ConfigurationWarningsApplicationContextInitializer
at org.springframework.boot.SpringApplication.createSpringFactoriesInstances(SpringApplication.java:413)
at org.springframework.boot.SpringApplication.getSpringFactoriesInstances(SpringApplication.java:392)
at org.springframework.boot.SpringApplication.getSpringFactoriesInstances(SpringApplication.java:383)
at org.springframework.boot.SpringApplication.initialize(SpringApplication.java:249)
at org.springframework.boot.SpringApplication.<init>(SpringApplication.java:225)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1118)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1107)
at com.spring.rest.demo.Restdemo2Application.main(Restdemo2Application.java:10)
Caused by: java.lang.NoClassDefFoundError: org/springframework/beans/BeanUtils
at org.springframework.boot.SpringApplication.createSpringFactoriesInstances(SpringApplication.java:409)
... 7 more
Caused by: java.lang.ClassNotFoundException: org.springframework.beans.BeanUtils
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 8 more
をしかし、スプリングコアまたは春豆の依存関係は、すべての親の権利を経由してインポートする必要がありますか?
これは実装である:
App.class
@SpringBootApplication
public class App {
public static void main(String[] args) {
SpringApplication.run(App.class, args);
}
}
GreetingController.java
@RestController
public class GreetingController {
private static final String template = "Hello, %s!";
private final AtomicLong counter = new AtomicLong();
@RequestMapping(value="/greeting", method=RequestMethod.GET)
public Greeting greeting(@RequestParam(value="name", required=true) String name)
{
return new Greeting(counter.incrementAndGet(),
String.format(template, name));
}
}
spring's deployment help でGreeting.java
public class Greeting {
private final long id;
private final String content;
public Greeting(long id, String content) {
this.id = id;
this.content = content;
}
public long getId() {
return id;
}
public String getContent() {
return content;
}
}
は、それはあなたがあなたのアプリケーションを実行すると、春ブーツがデフォルト
で、あなたはSpring MVCのコントローラを持っていることを検出し、組み込みのApache Tomcat 7のインスタンスを起動します語ります
が、私はプロジェクト - >ラン> javaアプリケーションでアプリを実行すると、私は
Exception in thread "main" java.lang.NoClassDefFoundError: org/springframework/boot/SpringApplication
at greeting.app.App.main(App.java:10)
Caused by: java.lang.ClassNotFoundException: org.springframework.boot.SpringApplication
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 1 more
を取得
これらは私のTomcatの設定あなたが書いた最後のエラーについて
あなたのjarファイルの1つが壊れていると思います。どのようにしてproject.jarを作成しましたか? –
SpringBootを使用している場合、埋め込みTomcatサーバーで実行する必要があります。実行 - > Javaアプリケーションとして実行すると、埋め込みのTomcatが起動し、コードがTomcatにデプロイされます。このように動作しない場合は、pom.xmlを貼り付け、依存関係が正しく設定されていない可能性があります。 –