2017-04-13 19 views
2

Spring Boot Mavenプロジェクトを作成しましたが、私のRequestMappingとlocalhost:8080は404エラーページを返します。問題は私のパッケージがどのようにセットアップされているのかと思いますが、私は複数の質問で解決策を試しましたが、私はまだエラーページを回避できません。あなたはこの問題を解決する方法について正しい方向に私を指摘できますか?おそらく、メインクラスの上にComponent注釈を追加する必要がありますか?しかし、私はこの解決策を試しましたが、エラーは依然として続きます。ここでスプリングブーツ| localhost:8080 404エラーページが表示されました

は私のパッケージ構造である:

/src/main/java 
     ControllerLayer 
      UsersController.java 
     DataAccessLayer 
      UsersDAL.java 
     ServiceLayer 
      UsersService.java 
     Main 
      Main.java 

Main.java:

@SpringBootApplication(scanBasePackages = { 
    "/src/main/java/ControllerLayer", "/src/main/java/DataAccessLayer", 
    "/src/main/java/ServiceLayer" }) 
    public class Main { 

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

UsersController.java:

import Entities.Users; 
import ServiceLayer.UsersService; 

@RestController 
@RequestMapping("/users") 
public class UsersController { 

     @Autowired 
     private UsersService usersService; 

     @RequestMapping(value = 
     "/create/{userId}/{userPassword}/{userAge}/{userEmail}" 
     + "/{userFirstName}/{userlastName}", method = 
     RequestMethod.POST) 

     public void createUser(@PathVariable("userId")String userId, 
     @PathVariable("userPassword")String userPassword, 
     @PathVariable("userAge")int userAge, 
     @PathVariable("userEmail")String userEmail, 
     @PathVariable("userFirstName")String userFirstName, 
     @PathVariable("userLastName")String userLastName) { 

      usersService.createUser(new Users(userId, userPassword, 
      userAge, userEmail, userFirstName, userLastName)); 
     } 
    } 

UserService.java

import DataAccessLayer.UsersDAL; 
import Entities.Users; 

@Service 
public class UsersService { 

    @Autowired 
    private UsersDAL usersDAL; 

    public void createUser(Users user) { 
     usersDAL.createUser(user); 
    } 
} 

のpom.xml:リクエストが送信されると

<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>xProjectAlpha</groupId> 
     <artifactId>org.htech.xProjectAlpha</artifactId> 
     <version>0.0.1-SNAPSHOT</version> 
     <packaging>jar</packaging> 

     <parent> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-parent</artifactId> 
      <version>1.5.2.RELEASE</version> 
     </parent> 

     <properties> 
      <java.version>1.8</java.version> 
     </properties> 

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

      <dependency> 
       <groupId>org.hibernate</groupId> 
       <artifactId>hibernate-core</artifactId> 
       <version>5.2.9.Final</version><!--$NO-MVN-MAN-VER$--> 
      </dependency> 
     </dependencies> 

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

</project> 
+0

あなたはscanBasePackages' 'から'/srcに/メイン/ javaの/ 'を削除する必要があり、その後、あなたがしようとしているURLは何ですか? – developer

+0

/src/main/javaを削除した場合、SpringはUnsatisfiedDependencyExceptionをスローします。 'usersController'という名前のBeanを作成中にエラーが発生しました。フィールド 'usersService'で表現された依存関係が満たされていません。私が使用していたURLはlocalhost:8080/usersだった –

+0

上記のクラスにパッケージ名を追加できますか? – developer

答えて

2

、その後、応答が返されなければなりません。あなたのケースでは、レスポンスを含むコンテンツを送信しなかったので、404エラー(ページが見つかりません)が表示されます。

2

main.javaでは、試してみてください。

@SpringBootApplication(scanBasePackages = { 
    "ControllerLayer", "DataAccessLayer", 
    "ServiceLayer" }) 

あなたのパッケージ名は、プロジェクトのルート・パスを含めるべきではありません。

+0

/src/main/javaを削除した場合、SpringはUnsatisfiedDependencyExceptionをスローします: 'usersController'という名前のBeanを作成中にエラーが発生しました:フィールド 'usersService'で表現されている依存関係がありません –

+0

@ Jered Hart何かがusersControllerのusersServiceに間違っています - スタックトレースに従って、別の質問を投稿してください。また、scanBasePacakgesに "Main"を追加してみてください。 – MuffinMan

1

。あなたが

package com.igt.customer; 
import java.util.Arrays; 

import org.springframework.boot.CommandLineRunner; 
import org.springframework.boot.SpringApplication; 
import org.springframework.boot.autoconfigure.SpringBootApplication; 
import org.springframework.context.ApplicationContext; 
import org.springframework.context.annotation.Bean; 

@SpringBootApplication 
public class CustomerApplication { 

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

    @Bean 
     public CommandLineRunner commandLineRunner(ApplicationContext ctx) { 
      return args -> { 

       System.out.println("Let's inspect the beans provided by Spring Boot:"); 

       String[] beanNames = ctx.getBeanDefinitionNames(); 
       Arrays.sort(beanNames); 
       for (String beanName : beanNames) { 
        System.out.println(beanName); 
       } 

      }; 
     } 
} 

Controllerクラスの例として、コンポーネントスキャンを心配する必要はありませんルートパッケージのバネブートApplicationクラスを持っており、そのパッケージ以下のパッケージ構造内の他のすべてのクラスを持ってすることをお勧めします

package com.igt.customer.controller; 

import org.springframework.web.bind.annotation.RequestMapping; 
import org.springframework.web.bind.annotation.RestController; 

@RestController 
public class EmployeeController { 
    @RequestMapping("/employee") 
    public String employee() { 
     return "Greetings from Sam!"; 
    } 
} 

アプリケーションを実行している

E(CMD上のアプリケーションのディレクトリに移動します):\モンゴをDB \新しいフォルダ\顧客> MVN -Uをインストール

を-eその細かい

[INFO] ------------------------------------------------------------------------ 
[INFO] BUILD SUCCESS 
[INFO] ------------------------------------------------------------------------ 
[INFO] Total time: 10.686 s 
[INFO] Finished at: 2017-08-16T16:39:57+05:30 
[INFO] Final Memory: 21M/219M 
[INFO] ------------------------------------------------------------------------ 

は、jarファイルを実行する場合は、最後にこれを見るべき

E:\ MongoDBの\新フォルダ\顧客\ターゲット>のjava -jar顧客-0.0.1-SNAPSHOT.jarに

アプリケーションに

にアクセス

お知らせアプリケーション名がURLに必要とされていない

P.あなたが春のブートビルドに慣れていてアプリケーションを実行することが挑戦である場合、私は経験したようにここで余分な詳細を書いています。私のアプリケーションでは、RequestMapping "/"のApplicationクラスと同じパッケージ私は404エラーを取得して、あなたはmain.javaクラスのメインパッケージを削除する場合、この問題は簡単に解決されます

spring boot application

0

参考として、以下のリンクをご覧ください。

新しい構造は次のようになります。

/src/main/java 
     Main.java 
     ControllerLayer 
      UsersController.java 
     DataAccessLayer 
      UsersDAL.java 
     ServiceLayer 
      UsersService.java 
関連する問題