2017-10-26 9 views
0

springboot restserviceアプリケーションの実行中に404エラーが発生しました。私は春のブーツ、ジャージーの残りを使用しています。私はGET要求を試みましたhttp://localhost:8080/dunames解決できません。助けてください。404-not-found-running-spring-boot-rest-api

モデルクラス:

`@Entity 
@Table(name = "du") 
public class duname { 


    private String duname; 
    @Id 
    @GeneratedValue(strategy = GenerationType.AUTO) 
    private int id; 
    public int getId() { 
     return id; 
    } 

    public void setId(int id) { 
     this.id = id; 
    } 

    public duname() 
    { 

    } 

    public duname(String duname, int id) 
    { 
    this.duname=duname; 
    this.id=id; 
    } 


    public String getDuname() { 
     return duname; 
    } 

    public void setDuname(String duname) { 
     this.duname = duname; 
    } 
}` 

サービスクラス:

` 
public class duservice { 

    @Autowired 
    private durepo durepository; 

    public List<duname> getAlldu() 
    { 
     List<duname> dunames=new ArrayList<duname>(); 
     durepository.findAll() 
     .forEach(dunames::add); 
     return dunames; 
    } 

    public void addDu(duname dunames) 
    { 
     durepository.save(dunames); 
    } 

    public duname getDu(int id) 
    { 
     return durepository.findOne(id); 
    } 

    public void deleteDu(int id) 
    { 
     durepository.delete(id); 
    } 

    public void updateDu(int id, duname dunames) 
    { 
     durepository.save(dunames); 
    } 
} 
` 

コントローラクラス:

@RestController 
public class ducontroller { 


    @Autowired 
    private duservice duService; 

    private final Logger log=(java.util.logging.Logger) LoggerFactory.getLogger(ducontroller.class); 


    @RequestMapping("/dunames") 
    public List<duname> getAlldu() 
    { 
      log.info("Starting"); 
    return duService.getAlldu(); 
    } 

    @RequestMapping("/duname/{id}") 
    public duname getdu(@PathVariable int id) 
    { 
     return duService.getDu(id); 
    } 

    @RequestMapping(method=RequestMethod.POST,value="/dunames") 
    public void addDuname(@RequestBody duname dunames) 
    { 
     duService.addDu(dunames); 
    } 

リポジトリ:

public interface durepo extends CrudRepository<duname,Integer> { 


} 

メインクラス:

@SpringBootApplication 
public class DuaddApplication { 

    public static void main(String[] args) { 
     SpringApplication.run(DuaddApplication.class, args); 
    } 
} 

ポンポンファイル:

<?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.du</groupId> 
    <artifactId>duadd</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <packaging>jar</packaging> 

    <name>duadd</name> 
    <description>Demo project for Spring Boot</description> 

    <parent> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-parent</artifactId> 
     <version>1.5.8.RELEASE</version> 
     <relativePath/> <!-- lookup parent from repository --> 
    </parent> 

    <properties> 
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
     <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> 
     <java.version>1.8</java.version> 
    </properties> 

    <dependencies> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-data-jpa</artifactId> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-jersey</artifactId> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-web</artifactId> 
     </dependency> 

     <dependency> 
      <groupId>org.postgresql</groupId> 
      <artifactId>postgresql</artifactId> 
      <scope>runtime</scope> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-test</artifactId> 
      <scope>test</scope> 
     </dependency> 
    </dependencies> 

    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.springframework.boot</groupId> 
       <artifactId>spring-boot-maven-plugin</artifactId> 
      </plugin> 

      <plugin> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <version>2.3.1</version> 
       <configuration> 
        <source>1.8</source> 
        <target>1.8</target> 
       </configuration> 
      </plugin> 

     </plugins> 
    </build> 


</project> 

アプリケーションプロパティ:

spring.datasource.url=jdbc:postgresql://localhost:2280/todo 
spring.datasource.username=test 
spring.datasource.password=test 
spring.jpa.generate-ddl=true 
server.port=8080 

いくつかのコンソール出力:

2017-10-26 11:06:08.952 INFO 4552 --- [   main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 8080 (http) 
2017-10-26 11:06:08.975 INFO 4552 --- [   main] com.soprasteria.du.DuaddApplication  : Started DuaddApplication in 7.096 seconds (JVM running for 7.633) 
2017-10-26 11:06:32.779 INFO 4552 --- [nio-8080-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/]  : Initializing Spring FrameworkServlet 'dispatcherServlet' 
2017-10-26 11:06:32.779 INFO 4552 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet  : FrameworkServlet 'dispatcherServlet': initialization started 
2017-10-26 11:06:32.800 INFO 4552 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet  : FrameworkServlet 'dispatcherServlet': initialization completed in 21 ms 
+0

。このエラーが何を表しているのかわかっている場合は、解決策を知っている – Lokesh

+0

はい、私は知っていますが、どこが間違っているのか理解できません。 – Adi

+0

コンソールの出力によると、 'getAlldu()'メソッドが呼び出されていないようです。だから、あなたは 'http:// localhost:8080/dunames'を呼び出した後にメッセージを受け取ったでしょうか? – LHCHIN

答えて

0

は、私は解決策を得ました。これはパッケージの可視性によるものです。 メインクラスはコントローラクラスが存在するパッケージを検出できませんでした。 同じパッケージの下にすべてのクラスを追加しました。アプリケーションクラスを1レベル上に配置することもできます。リンクの下から ガットのヘルプ:あなたはすべてのこれらのコードを与える必要はありません

Spring Boot: Cannot access REST Controller on localhost (404)