jndiデータソースを使用して、外部Tomcatサーバーにデプロイされた単純なSpring Bootベースレストアプリケーションを開発しています。アプリケーションを実行すると、データベースが作成されます。これは、アプリケーションがEntityクラスを読み込み、hibernate ddlを作成できることを意味します。しかし、私がpostmanから残りのURLにヒットしようとすると、404エラーメッセージが返されます。これは、アプリケーションを外部のサーバーに移動した後で、埋め込まれたサーバーを使用していたときにURLにヒットした後に発生しました。誰かが私が間違っていることを理解するのを手助けすることはできますか?Spring Boot:Rest URLが返される404
Main method:
package com.nb;
@SpringBootApplication
public class SpringBootWithSpringDataJpaApplication extends SpringBootServletInitializer{
public static void main(String[] args) {
SpringApplication.run(SpringBootWithSpringDataJpaApplication.class, args);
}
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(SpringBootWithSpringDataJpaApplication.class);
}
Controller:
package com.nb.springboot.topic;
@RestController
public class TopicController {
@Autowired
private TopicService topicService;
@RequestMapping("/topics")
public List<Topic> getAllTopics(){
return topicService.getAllTopics();
}
@RequestMapping("/topics/{id}")
public Topic getTopic(@PathVariable("id") String id){
return topicService.getTopic(id);
}
@RequestMapping(method=RequestMethod.POST, value="/topics")
public void addTopic(@RequestBody Topic topic){
topicService.addTopic(topic);
}
@RequestMapping(method=RequestMethod.PUT, value="/topics/{id}")
public void updateTopic(@RequestBody Topic topic, @PathVariable String id){
topicService.updateTopic(topic, id);
}
@RequestMapping(method=RequestMethod.DELETE, value="/topics/{id}")
public void deleteTopic(@PathVariable String id){
topicService.deleteTopic(id);
}
}
http://localhost:8080/topics/java ----のTomcat 8(外部)
http://localhost8080/SpringBootWithSpringDataJPA/topics/javaをに動作しない------埋め込みサーバと
http://localhost8080/topics/java作品---- - SpringBootWithSpringDataJPAが私のプロジェクト名であるtomcat 8(外部)では動作しません。
application.propertiesファイルには、次のとおりです。
spring.datasource.jndi名=のjava:/コンプ/ ENV/JDBC/postgresの/ springbootDS
spring.jpa.hibernate.ddl-オート=作成します
spring.jpa.show-SQL =真
私はあなたが外部のサーバーに展開するときに、それが実際にWebコンテキストに配備されているので、それはあると思います。 http:// localhost:8080/{context}/topics/java –
あなたがmavenを(もしバージョンを変更しなかった場合) 'localhost: 8080/SpringBootWithSpringDataJPA-0.0.1-SNAPSHOT/... ' – Patrick
Ohhありがとうございました。私はmavenを使用しています。生成される戦争は、名前がSpringBootWithSpringDataJPA-0.0.1-SNAPSHOTです。私は名前を変えるのを忘れた。これがばかだと思います!ありがとう! – nbnb