2016-03-28 18 views
4

Spring-mvc projemde yaylı veri saklama özelliğini yapılandırmaya çalışıyorum, ancak her defasında veri havuzumun json'una erişmek için URL'ye giriyorum -Basit yaylı veri saklama projesiyle 404 hatası alın

@RepositoryRestResource(path = "books", collectionResourceRel = "books") 
public interface BookRepository extends JpaRepository<Book, Integer> { 

} 
: o İşte bütün

benim bahar-veri-dinlenme açıklama/bağımlılık görmez gibi 404. görünüyor döndüren benim pom.xml

<groupId>com.konan</groupId> 
<artifactId>libsupport</artifactId> 
<version>1.0-SNAPSHOT</version> 
<packaging>war</packaging> 

<name>LibSupport</name> 
<description>Library Support System</description> 

<properties> 
    <org.springframework.version>4.2.0.RELEASE</org.springframework.version> 
</properties> 

<dependencies> 

    <!-- Spring --> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-core</artifactId> 
     <version>${org.springframework.version}</version> 
    </dependency> 

    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-webmvc</artifactId> 
     <version>${org.springframework.version}</version> 
    </dependency> 

    <dependency> 
     <groupId>org.springframework.data</groupId> 
     <artifactId>spring-data-jpa</artifactId> 
     <version>1.8.2.RELEASE</version> 
    </dependency> 

    <dependency> 
     <groupId>org.springframework.data</groupId> 
     <artifactId>spring-data-rest-webmvc</artifactId> 
     <version>2.4.0.RELEASE</version> 
    </dependency> 

    <dependency> 
     <groupId>org.springframework.hateoas</groupId> 
     <artifactId>spring-hateoas</artifactId> 
     <version>0.17.0.RELEASE</version> 
    </dependency> 

    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-aop</artifactId> 
     <version>${org.springframework.version}</version> 
    </dependency> 

    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-context</artifactId> 
     <version>${org.springframework.version}</version> 
    </dependency> 

    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-beans</artifactId> 
     <version>${org.springframework.version}</version> 
    </dependency> 

    <!-- Hibernate --> 
    <dependency> 
     <groupId>org.hibernate</groupId> 
     <artifactId>hibernate-core</artifactId> 
     <version>4.3.10.Final</version> 
    </dependency> 


    <dependency> 
     <groupId>org.hibernate</groupId> 
     <artifactId>hibernate-entitymanager</artifactId> 
     <version>4.3.10.Final</version> 
    </dependency> 

    <!-- Logger --> 
    <dependency> 
     <groupId>log4j</groupId> 
     <artifactId>log4j</artifactId> 
     <version>1.2.17</version> 
    </dependency> 

    <dependency> 
     <groupId>mysql</groupId> 
     <artifactId>mysql-connector-java</artifactId> 
     <version>5.1.6</version> 
    </dependency> 

    <dependency> 
     <groupId>javax.servlet</groupId> 
     <artifactId>javax.servlet-api</artifactId> 
     <version>3.1.0</version> 
    </dependency> 

    <dependency> 
     <groupId>org.projectlombok</groupId> 
     <artifactId>lombok</artifactId> 
     <version>1.16.6</version> 
     <scope>provided</scope> 
    </dependency> 

    <dependency> 
     <groupId>com.fasterxml.jackson.core</groupId> 
     <artifactId>jackson-databind</artifactId> 
     <version>2.6.1</version> 
    </dependency> 
</dependencies> 

<build> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <version>3.5.1</version> 
      <configuration> 
       <source>1.8</source> 
       <target>1.8</target> 
      </configuration> 
     </plugin> 
     <plugin> 
      <groupId>org.apache.tomcat.maven</groupId> 
      <artifactId>tomcat7-maven-plugin</artifactId> 
      <version>2.2</version> 
      <configuration> 
       <path>/lib-support</path> 
       <contextReloadable>true</contextReloadable> 
      </configuration> 
     </plugin> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-war-plugin</artifactId> 
      <version>2.6</version> 
      <configuration> 
       <failOnMissingWebXml>false</failOnMissingWebXml> 
      </configuration> 
     </plugin> 
    </plugins> 
</build> 

Repository's.Benim

Ve yapılandırma sınıfları:

public class WebAppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer { 
    @Override 
    protected Class<?>[] getRootConfigClasses() { 
     return new Class<?>[]{JPAConfig.class,}; 
    } 

    @Override 
    protected Class<?>[] getServletConfigClasses() { 
     return new Class[]{WebConfig.class}; 
    } 

    @Override 
    protected String[] getServletMappings() { 
     return new String[]{"/"}; 
    } 
} 

@Configuration 
@EnableTransactionManagement 
@EnableJpaRepositories(basePackageClasses = BookRepository.class) 
@PropertySource("classpath:app.properties") 
public class JPAConfig { 

    @Autowired 
    private Environment environment; 

    @Bean 
    public DataSource dataSource() { 
     DriverManagerDataSource driverManagerDataSource = new DriverManagerDataSource(); 
     driverManagerDataSource.setDriverClassName(environment.getProperty("jdbc.driverClassName")); 
     driverManagerDataSource.setUrl(environment.getProperty("jdbc.url")); 
     driverManagerDataSource.setUsername(environment.getProperty("jdbc.user")); 
     driverManagerDataSource.setPassword(environment.getProperty("jdbc.pass")); 
     return driverManagerDataSource; 
    } 

    @Bean 
    public LocalContainerEntityManagerFactoryBean entityManagerFactory() { 
     LocalContainerEntityManagerFactoryBean localContainerEntityManagerFactoryBean = new LocalContainerEntityManagerFactoryBean(); 
     localContainerEntityManagerFactoryBean.setPersistenceUnitName("localContainerEntityManagerFactoryBean"); 

     localContainerEntityManagerFactoryBean.setDataSource(dataSource()); 
     localContainerEntityManagerFactoryBean.setPackagesToScan(environment.getProperty("entities.scan")); 

     JpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter(); 
     localContainerEntityManagerFactoryBean.setJpaVendorAdapter(vendorAdapter); 
     localContainerEntityManagerFactoryBean.setJpaPropertyMap(hibernateProperties()); 

     return localContainerEntityManagerFactoryBean; 
    } 


    @Bean 
    public PlatformTransactionManager transactionManager(EntityManagerFactory entityManagerFactory) { 
     return new JpaTransactionManager(entityManagerFactory); 
    } 


    private Map<String, String> hibernateProperties() { 
     Map<String, String> hibernateProperties = new HashMap<>(); 
     hibernateProperties.put("hibernate.hbm2ddl.auto", environment.getProperty("hb.hbm2ddl.auto")); 
     hibernateProperties.put("hibernate.dialect", environment.getProperty("hb.dialect")); 
     hibernateProperties.put("hibernate.show_sql", environment.getProperty("hb.show_sql")); 
     hibernateProperties.put("hibernate.format_sql", environment.getProperty("hb.format_sql")); 
     hibernateProperties.put("hibernate.enable_lazy_load_no_trans", environment.getProperty("hb.enable_lazy_load_no_trans")); 
     return hibernateProperties; 
    } 
} 

@Configuration 
@EnableWebMvc 
@ComponentScan(basePackageClasses = {BookController.class, BookService.class}) 
public class WebConfig extends WebMvcConfigurerAdapter { 

@Override 
public void addResourceHandlers(ResourceHandlerRegistry registry) { 
    registry.addResourceHandler("/resources/**").addResourceLocations("/resources/"); 
} 
} 

Ben de bir sonraki URL girin "http://localhost:8080/lib-support/books" and have this.

kimse yardımcı olabilir mi? Şimdiden teşekkürler.

+0

WebConfig dosyanızdaki @EnableJpaRepositories eksik. – Milan

+0

1. paketleri paketleri temel alıyor? veya sınıf isimleri? 2. JPA deposunu etkinleştirin 3. Neden istekte bulunan libl desteği? 4. Web.xml, temel url olarak yapılandırıldı mı? paketler 2) dayalı – VinayVeluri

+0

@VinayVeluri 1) Yapılandırma Burada ben sadece pom olsun diye söylemiştim soru '@EnableJpaRepositories (basePackageClasses = BookRepository.class)' 3) takmak için cevapsız, JpaConfig bu şerhleridir. ' –

cevap

4

Tamam çocuklar, sorunun ne olduğunu öğrendim. Sonuç olarak, tüm varlık sınıfları için olmayan sınıflandırma sınıfları oluşturdum. Sonuç olarak, Spring göreli varlıklar için uygun bağlantılar üretemedi. Örneğin, OneToManyBookCopy varlık sınıfına eşleme olan Book varlık var, ancak BookCopyRepository mevcut değildi.

+0

Soruların çözüldüğünü göstermek için cevabınızı işaretlemelisiniz – Desorder