Advertisement
Guest User

Untitled

a guest
Aug 22nd, 2017
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.13 KB | None | 0 0
  1. ***************************
  2. APPLICATION FAILED TO START
  3. ***************************
  4.  
  5. Description:
  6.  
  7. Parameter 0 of method emfb in datasources.Application$PersistenceConfiguration required a single bean, but 2 were found:
  8. - ds1: defined by method 'ds1' in class path resource [datasources/Application$PersistenceConfiguration.class]
  9. - ds2: defined by method 'ds2' in class path resource [datasources/Application$PersistenceConfiguration.class]
  10.  
  11.  
  12. Action:
  13.  
  14. Consider marking one of the beans as @Primary, updating the consumer to accept multiple beans, or using @Qualifier to identify the bean that should be consumed
  15.  
  16. package datasources;
  17.  
  18. import javax.persistence.EntityManager;
  19. import javax.persistence.PersistenceContext;
  20. import javax.persistence.PersistenceContextType;
  21. import javax.sql.DataSource;
  22. import javax.ws.rs.ApplicationPath;
  23. import javax.ws.rs.GET;
  24. import javax.ws.rs.Path;
  25. import org.apache.log4j.Logger;
  26. import org.glassfish.jersey.server.ResourceConfig;
  27. import org.springframework.beans.factory.annotation.Autowired;
  28. import org.springframework.beans.factory.annotation.Qualifier;
  29. import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
  30. import org.springframework.boot.autoconfigure.transaction.jta.JtaAutoConfiguration;
  31. import org.springframework.boot.builder.SpringApplicationBuilder;
  32. import org.springframework.boot.orm.jpa.EntityManagerFactoryBuilder;
  33. import org.springframework.context.annotation.Bean;
  34. import org.springframework.context.annotation.ComponentScan;
  35. import org.springframework.context.annotation.Configuration;
  36. import org.springframework.context.annotation.Primary;
  37. import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseBuilder;
  38. import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
  39. import org.springframework.stereotype.Component;
  40.  
  41. @Configuration
  42. @EnableAutoConfiguration(exclude = {
  43. // HibernateJpaAutoConfiguration.class,
  44. // DataSourceAutoConfiguration.class
  45. JtaAutoConfiguration.class
  46. })
  47. @ComponentScan
  48. public class Application {
  49.  
  50. public static void main(String[] args) {
  51.  
  52. new SpringApplicationBuilder(Application.class)
  53. .build()
  54. .run(args);
  55. }
  56.  
  57. @Component
  58. @Path("/ds")
  59. public static class DsApi {
  60.  
  61. private final static Logger logger = Logger.getLogger(DsApi.class);
  62.  
  63. @Autowired(required = false)
  64. @Qualifier("ds1")
  65. private DataSource ds;
  66.  
  67. @GET
  68. public String ds() {
  69. logger.info("ds");
  70. return ds.toString();
  71. }
  72. }
  73.  
  74. @Component
  75. @Path("/em")
  76. public static class EmApi {
  77.  
  78. private final static Logger logger = Logger.getLogger(EmApi.class);
  79.  
  80. @PersistenceContext(unitName = "ds2", type = PersistenceContextType.TRANSACTION)
  81. private EntityManager em;
  82.  
  83. @GET
  84. public String em() {
  85. logger.info("em");
  86. return em.toString();
  87. }
  88. }
  89.  
  90. @Configuration
  91. @ApplicationPath("/jersey")
  92. public static class JerseyConfig extends ResourceConfig {
  93. public JerseyConfig() {
  94. register(DsApi.class);
  95. register(EmApi.class);
  96. }
  97. }
  98.  
  99. @Configuration
  100. public static class PersistenceConfiguration {
  101.  
  102. @Bean
  103. @Qualifier("ds1")
  104. public DataSource ds1() {
  105. return new EmbeddedDatabaseBuilder().build();
  106. }
  107.  
  108. @Bean
  109. @Qualifier("ds2")
  110. public DataSource ds2() {
  111. return new EmbeddedDatabaseBuilder().build();
  112. }
  113.  
  114. @Bean
  115. @Primary
  116. @Autowired
  117. public LocalContainerEntityManagerFactoryBean emfb(@Qualifier("ds1") DataSource ds, EntityManagerFactoryBuilder emfb) {
  118. return emfb.dataSource(ds)
  119. .packages(Application.class)
  120. .persistenceUnit("ds1")
  121. .build();
  122. }
  123.  
  124. @Bean
  125. @Autowired
  126. public LocalContainerEntityManagerFactoryBean emfb2(@Qualifier("ds2") DataSource ds, EntityManagerFactoryBuilder emfb) {
  127. return emfb.dataSource(ds)
  128. .packages(Application.class)
  129. .persistenceUnit("ds2")
  130. .build();
  131. }
  132. }
  133. }
  134.  
  135. @Configuration
  136. public static class PersistenceConfiguration {
  137.  
  138. @Bean
  139. @Primary
  140. public DataSource ds1() {
  141. return new EmbeddedDatabaseBuilder().build();
  142. }
  143.  
  144. @Bean
  145. public DataSource ds2() {
  146. return new EmbeddedDatabaseBuilder().build();
  147. }
  148.  
  149. @Bean
  150. @Primary
  151. @Autowired
  152. public LocalContainerEntityManagerFactoryBean emfb(@Qualifier("ds1") DataSource ds, EntityManagerFactoryBuilder emfb) {
  153. return emfb.dataSource(ds)
  154. .packages(DemoApplication.class)
  155. .persistenceUnit("ds1")
  156. .build();
  157. }
  158.  
  159. @Bean
  160. @Autowired
  161. public LocalContainerEntityManagerFactoryBean emfb2(@Qualifier("ds2") DataSource ds, EntityManagerFactoryBuilder emfb) {
  162. return emfb.dataSource(ds)
  163. .packages(DemoApplication.class)
  164. .persistenceUnit("ds2")
  165. .build();
  166. }
  167. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement