Пружина багажника + данные пружины = 404 :( - PullRequest
0 голосов
/ 02 декабря 2018

Я сделал свой проект Spring Boot, и все было хорошо, пока я не начал накручивать данные пружины + спящий режим.У меня было много ошибок, которые я постоянно исправляю.В конце концов мне удалось избавиться от всех ошибок, но теперь, когда я запускаю свой проект, когда я переключаюсь на localhost: 8080, я всегда вижу ошибку 404, и в моей IDE нет ошибок: (.

Применение:

@SpringBootApplication(scanBasePackages = {"Service", "repository"})
@EntityScan("DataModel")
@EnableJpaRepositories(basePackages = "repository")
public class CloudliquidApplication extends SpringBootServletInitializer {

    public static void main(String[] args) {
        ApplicationContext ctx = SpringApplication.run(CloudliquidApplication.class, 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);
        }
    }

    @Bean
    public ProductService productService() {
        return new ProductServiceImpl();
    }

    @Bean
    public FilterRegistrationBean filterRegistrationBean() {
        FilterRegistrationBean registrationBean = new FilterRegistrationBean();
        CharacterEncodingFilter characterEncodingFilter = new CharacterEncodingFilter();
        characterEncodingFilter.setForceEncoding(true);
        characterEncodingFilter.setEncoding("UTF-8");
        registrationBean.setFilter(characterEncodingFilter);
        return registrationBean;
    }

    @Bean
    public TomcatServletWebServerFactory tomcatFactory() {
        return new TomcatServletWebServerFactory() {
            @Override
            protected void postProcessContext(Context context) {
                ((StandardJarScanner) context.getJarScanner()).setScanManifest(false);
            }
        };
    }
}

Служба:

public class ProductServiceImpl implements ProductService {
    @Autowired
    private ProductRepository productRepository;

    @Override
    public List<Product> getAll() {
        return productRepository.findByName("Grape");
    }
}

Служба (интерфейс):

public interface ProductService {
    List<Product> getAll();
}

Репозиторий (интерфейс):

@Repository
public interface ProductRepository extends JpaRepository<Product,Long> {
    List<Product> findByName(String name);
}

Контроллер:

@RestController
public class HelloController {

    @Autowired
    private ProductService productService;


    @RequestMapping("/try")
    @ResponseBody
    public List the(){
        System.out.println("CALLLED");
        return productService.getAll();
    }

    @RequestMapping("/")
    public String index(){
        return "It's a CloudLiquid";
    }

Ошибка браузера:

    Whitelabel Error Page

This application has no explicit mapping for /error, so you are seeing this as a fallback.

Sun Dec 02 16:18:35 MSK 2018
There was an unexpected error (type=Not Found, status=404).
No message available

1 Ответ

0 голосов
/ 02 декабря 2018

Прежде всего вам не нужно использовать все эти аннотации

@SpringBootApplication(scanBasePackages = {"Service", "repository"})
@EntityScan("DataModel")
@EnableJpaRepositories(basePackages = "repository")

Вам не нужно использовать даже scanBasePackages = {"Service", "repository"}.Только @SpringBootApplication справится со всем этим.Удалить все @Bean из основного класса.Напишите класс обслуживания с аннотацией

@Service
public interface ProductService {
    List<Product> getAll();
}

и попробуйте нажать /, чтобы получить ожидаемый результат.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...