19.07.2017, 21:55. Показов 2354. Ответов 1
Пробую создать проект на Vaadin. Проект собирается нормально, все ui работают и т.д. Но любой сервис, который я пытаюсь инжектить в любом View вылетает с ошибкой о том, что поле не смогло быть проинициализировано. При этом причин этому в ошибках, лично я, не вижу. Пробовал сначала создать проект на чистом spring, но из-за данной ошибки и рекомендаций в доках vaadin попробовал и spring-boot, но результат тот же.
kotlin.UninitializedPropertyAccessExcept ion: lateinit property clientService has not been initialized
at com.apache.vaadin.view.Index.getClientSe rvice(Index.kt:24) ~[classes/:na]
at com.apache.vaadin.view.Index$readButton$ 1.buttonClick(Index.kt:40) ~[classes/:na]
at sun.reflect.NativeMethodAccessorImpl.inv oke0(Native Method) ~[na:1.8.0_131]
at sun.reflect.NativeMethodAccessorImpl.inv oke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_131]
at sun.reflect.DelegatingMethodAccessorImpl .invoke(DelegatingMethodAccessorImpl.jav a:43) ~[na:1.8.0_131]
at java.lang.reflect.Method.invoke(Method.j ava:498) ~[na:1.8.0_131]
at com.vaadin.event.ListenerMethod.receiveE vent(ListenerMethod.java:510) ~[vaadin-server-8.0.6.jar:8.0.6]
at com.vaadin.event.EventRouter.fireEvent(E ventRouter.java:211) ~[vaadin-server-8.0.6.jar:8.0.6]
at com.vaadin.event.EventRouter.fireEvent(E ventRouter.java:174) ~[vaadin-server-8.0.6.jar:8.0.6]
at com.vaadin.server.AbstractClientConnecto r.fireEvent(AbstractClientConnector.java :1029) ~[vaadin-server-8.0.6.jar:8.0.6]
at com.vaadin.ui.Button.fireClick(Button.ja va:370) ~[vaadin-server-8.0.6.jar:8.0.6]
at com.vaadin.ui.Button$1.click(Button.java :57) ~[vaadin-server-8.0.6.jar:8.0.6]
at sun.reflect.NativeMethodAccessorImpl.inv oke0(Native Method) ~[na:1.8.0_131]
at sun.reflect.NativeMethodAccessorImpl.inv oke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_131]
at sun.reflect.DelegatingMethodAccessorImpl .invoke(DelegatingMethodAccessorImpl.jav a:43) ~[na:1.8.0_131]
at java.lang.reflect.Method.invoke(Method.j ava:498) ~[na:1.8.0_131]
at com.vaadin.server.ServerRpcManager.apply Invocation(ServerRpcManager.java:155) ~[vaadin-server-8.0.6.jar:8.0.6]
at com.vaadin.server.ServerRpcManager.apply Invocation(ServerRpcManager.java:116) ~[vaadin-server-8.0.6.jar:8.0.6]
at com.vaadin.server.communication.ServerRp cHandler.handleInvocation(ServerRpcHandl er.java:445) [vaadin-server-8.0.6.jar:8.0.6]
at com.vaadin.server.communication.ServerRp cHandler.handleInvocations(ServerRpcHand ler.java:410) [vaadin-server-8.0.6.jar:8.0.6]
at com.vaadin.server.communication.ServerRp cHandler.handleRpc(ServerRpcHandler.java :274) [vaadin-server-8.0.6.jar:8.0.6]
at com.vaadin.server.communication.UidlRequ estHandler.synchronizedHandleRequest(Uid lRequestHandler.java:90) [vaadin-server-8.0.6.jar:8.0.6]
at com.vaadin.server.SynchronizedRequestHan dler.handleRequest(SynchronizedRequestHa ndler.java:41) [vaadin-server-8.0.6.jar:8.0.6]
at com.vaadin.server.VaadinService.handleRe quest(VaadinService.java:1464) [vaadin-server-8.0.6.jar:8.0.6]
at com.vaadin.server.VaadinServlet.service( VaadinServlet.java:381) [vaadin-server-8.0.6.jar:8.0.6]
at javax.servlet.http.HttpServlet.service(H ttpServlet.java:742) [tomcat-embed-core-8.5.15.jar:8.5.15]
at org.apache.catalina.core.ApplicationFilt erChain.internalDoFilter(ApplicationFilt erChain.java:231) [tomcat-embed-core-8.5.15.jar:8.5.15]
at org.apache.catalina.core.ApplicationFilt erChain.doFilter(ApplicationFilterChain. java:166) [tomcat-embed-core-8.5.15.jar:8.5.15]
at org.apache.tomcat.websocket.server.WsFil ter.doFilter(WsFilter.java:52) [tomcat-embed-websocket-8.5.15.jar:8.5.15]
at org.apache.catalina.core.ApplicationFilt erChain.internalDoFilter(ApplicationFilt erChain.java:193) [tomcat-embed-core-8.5.15.jar:8.5.15]
at org.apache.catalina.core.ApplicationFilt erChain.doFilter(ApplicationFilterChain. java:166) [tomcat-embed-core-8.5.15.jar:8.5.15]
at org.springframework.web.filter.RequestCo ntextFilter.doFilterInternal(RequestCont extFilter.java:99) [spring-web-4.3.9.RELEASE.jar:4.3.9.RELEASE]
at org.springframework.web.filter.OncePerRe questFilter.doFilter(OncePerRequestFilte r.java:107) [spring-web-4.3.9.RELEASE.jar:4.3.9.RELEASE]
at org.apache.catalina.core.ApplicationFilt erChain.internalDoFilter(ApplicationFilt erChain.java:193) [tomcat-embed-core-8.5.15.jar:8.5.15]
at org.apache.catalina.core.ApplicationFilt erChain.doFilter(ApplicationFilterChain. java:166) [tomcat-embed-core-8.5.15.jar:8.5.15]
at org.springframework.web.filter.HttpPutFo rmContentFilter.doFilterInternal(HttpPut FormContentFilter.java:105) [spring-web-4.3.9.RELEASE.jar:4.3.9.RELEASE]
at org.springframework.web.filter.OncePerRe questFilter.doFilter(OncePerRequestFilte r.java:107) [spring-web-4.3.9.RELEASE.jar:4.3.9.RELEASE]
at org.apache.catalina.core.ApplicationFilt erChain.internalDoFilter(ApplicationFilt erChain.java:193) [tomcat-embed-core-8.5.15.jar:8.5.15]
at org.apache.catalina.core.ApplicationFilt erChain.doFilter(ApplicationFilterChain. java:166) [tomcat-embed-core-8.5.15.jar:8.5.15]
at org.springframework.web.filter.HiddenHtt pMethodFilter.doFilterInternal(HiddenHtt pMethodFilter.java:81) [spring-web-4.3.9.RELEASE.jar:4.3.9.RELEASE]
at org.springframework.web.filter.OncePerRe questFilter.doFilter(OncePerRequestFilte r.java:107) [spring-web-4.3.9.RELEASE.jar:4.3.9.RELEASE]
at org.apache.catalina.core.ApplicationFilt erChain.internalDoFilter(ApplicationFilt erChain.java:193) [tomcat-embed-core-8.5.15.jar:8.5.15]
at org.apache.catalina.core.ApplicationFilt erChain.doFilter(ApplicationFilterChain. java:166) [tomcat-embed-core-8.5.15.jar:8.5.15]
at org.springframework.web.filter.Character EncodingFilter.doFilterInternal(Characte rEncodingFilter.java:197) [spring-web-4.3.9.RELEASE.jar:4.3.9.RELEASE]
at org.springframework.web.filter.OncePerRe questFilter.doFilter(OncePerRequestFilte r.java:107) [spring-web-4.3.9.RELEASE.jar:4.3.9.RELEASE]
at org.apache.catalina.core.ApplicationFilt erChain.internalDoFilter(ApplicationFilt erChain.java:193) [tomcat-embed-core-8.5.15.jar:8.5.15]
at org.apache.catalina.core.ApplicationFilt erChain.doFilter(ApplicationFilterChain. java:166) [tomcat-embed-core-8.5.15.jar:8.5.15]
at org.apache.catalina.core.StandardWrapper Valve.invoke(StandardWrapperValve.java:1 98) [tomcat-embed-core-8.5.15.jar:8.5.15]
at org.apache.catalina.core.StandardContext Valve.invoke(StandardContextValve.java:9 6) [tomcat-embed-core-8.5.15.jar:8.5.15]
at org.apache.catalina.authenticator.Authen ticatorBase.invoke(AuthenticatorBase.jav a:478) [tomcat-embed-core-8.5.15.jar:8.5.15]
at org.apache.catalina.core.StandardHostVal ve.invoke(StandardHostValve.java:140) [tomcat-embed-core-8.5.15.jar:8.5.15]
at org.apache.catalina.valves.ErrorReportVa lve.invoke(ErrorReportValve.java:80) [tomcat-embed-core-8.5.15.jar:8.5.15]
at org.apache.catalina.core.StandardEngineV alve.invoke(StandardEngineValve.java:87) [tomcat-embed-core-8.5.15.jar:8.5.15]
at org.apache.catalina.connector.CoyoteAdap ter.service(CoyoteAdapter.java:342) [tomcat-embed-core-8.5.15.jar:8.5.15]
at org.apache.coyote.http11.Http11Processor .service(Http11Processor.java:799) [tomcat-embed-core-8.5.15.jar:8.5.15]
at org.apache.coyote.AbstractProcessorLight .process(AbstractProcessorLight.java:66) [tomcat-embed-core-8.5.15.jar:8.5.15]
at org.apache.coyote.AbstractProtocol$Conne ctionHandler.process(AbstractProtocol.ja va:861) [tomcat-embed-core-8.5.15.jar:8.5.15]
at org.apache.tomcat.util.net.NioEndpoint$S ocketProcessor.doRun(NioEndpoint.java:14 55) [tomcat-embed-core-8.5.15.jar:8.5.15]
at org.apache.tomcat.util.net.SocketProcess orBase.run(SocketProcessorBase.java:49) [tomcat-embed-core-8.5.15.jar:8.5.15]
at java.util.concurrent.ThreadPoolExecutor. runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_131]
at java.util.concurrent.ThreadPoolExecutor$ Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_131]
at org.apache.tomcat.util.threads.TaskThrea d$WrappingRunnable.run(TaskThread.java:6 1) [tomcat-embed-core-8.5.15.jar:8.5.15]
at java.lang.Thread.run(Thread.java:748) [na:1.8.0_131]
|
| Java |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| @SpringUI
@Title(value = "Apache")
class Navigator : UI() {
@Autowired
lateinit var viewProvider: SpringViewProvider
init {
}
private val INDEX = ""
override fun init(p0: VaadinRequest?) {
navigator = Navigator(this, this)
navigator.addProvider(viewProvider)
navigator.addView(INDEX, Index::class.java)
}
} |
|
| Java |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
| @UIScope
@SpringView
open class Index : VerticalLayout(), View {
private val logger: Logger = Logger.getLogger(Index::class.java)
@Autowired
lateinit var clientService: IClientService
init {
var menuBar: MenuBar = MenuBar()
var file = menuBar.addItem("File", null, null)
file.addItem("Save", {_ -> logger.info("Save clicked")})
file.addItem("Load", {_ -> logger.info("Load clicked")})
file.addItem("Open", {_ -> logger.info("Open clicked")})
file.addItem("Close", {_ -> logger.info("Close clicked")})
var settings = menuBar.addItem("Settings", null, null)
settings.addItem("DataBase", {_ -> logger.info("DataBase clicked")})
addComponent(menuBar)
var createButton: Button = Button("Create", { _ -> logger.info("Create clicked")})
var readButton: Button = Button("Read", { _ -> logger.info(clientService.findAll())})
var updateButton: Button = Button("Update", { _ -> logger.info("Update clicked")})
var deleteButton: Button = Button("Delete", { _ -> logger.info("Delete clicked")})
addComponent(createButton)
addComponent(readButton)
addComponent(updateButton)
addComponent(deleteButton)
}
override fun enter(p0: ViewChangeListener.ViewChangeEvent?) {
Notification.show("Test notification")
}
} |
|
| Java |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
| @Configuration
@EnableTransactionManagement
@EnableJpaRepositories(basePackages = arrayOf("com.apache.vaadin.model"))
@ComponentScan(basePackages = arrayOf("com.apache.vaadin.model"))
open class DataSourceConfig {
@Autowired
lateinit var environment: Environment
@Bean
open fun entityManagerFactory(): LocalContainerEntityManagerFactoryBean {
var entityManagerFactory: LocalContainerEntityManagerFactoryBean = LocalContainerEntityManagerFactoryBean()
entityManagerFactory.apply {
dataSource = dataSource()
setPackagesToScan("com.apache.vaadin.model")
var vendorAdapter: HibernateJpaVendorAdapter = HibernateJpaVendorAdapter()
vendorAdapter.apply {
setGenerateDdl(true)
setShowSql(true)
}
var properties: Properties = Properties()
properties.apply {
put("database.dialet", "org.hibernate.dialect.PostgreSQL95Dialect")
put("database.globally_quoted_identifiers", "false")
put("database.enable_lazy_load_no_trans", "true")
put("database.show_sql", "true")
}
jpaVendorAdapter = vendorAdapter
setJpaProperties(properties)
}
return entityManagerFactory
}
@Primary
@Bean
open fun dataSource(): DataSource {
var source: ComboPooledDataSource = ComboPooledDataSource()
source.apply {
driverClass = "org.postgresql.Driver"
jdbcUrl = "jdbc:postgresql://localhost:5432/vaadin"
user = "postgres"
password = "1111"
acquireIncrement = 5
idleConnectionTestPeriod = 60
maxPoolSize = 20
minPoolSize = 10
initialPoolSize = 10
}
return source
}
@Bean
open fun transactionManager() : PlatformTransactionManager {
var manager: JpaTransactionManager = JpaTransactionManager()
manager.apply {
entityManagerFactory = entityManagerFactory().nativeEntityManagerFactory
}
return manager
}
@Bean
open fun exceptionTranslator(): PersistenceExceptionTranslationPostProcessor = PersistenceExceptionTranslationPostProcessor()
} |
|
| Java |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
| @Repository
interface ClientRepository : CrudRepository<Client, Long> {
}
@NoRepositoryBean
interface IClientService : CrudRepository<Client, Long>
@Service
class ClientService : IClientService {
private val logger: Logger = Logger.getLogger(ClientService::class.java)
@Autowired
lateinit var clientRepository: ClientRepository
override fun delete(p0: Long?) {
clientRepository.delete(p0)
}
override fun delete(p0: MutableIterable<Client>?) {
clientRepository.delete(p0)
}
override fun delete(p0: Client?) {
clientRepository.delete(p0)
}
override fun <S : Client?> save(p0: MutableIterable<S>?): MutableIterable<S> = clientRepository.save(p0)
override fun <S : Client?> save(p0: S): S = clientRepository.save(p0)
override fun findAll(p0: MutableIterable<Long>?): MutableIterable<Client> = clientRepository.findAll(p0)
override fun findAll(): MutableIterable<Client> = clientRepository.findAll()
override fun exists(p0: Long?): Boolean = clientRepository.exists(p0)
override fun findOne(p0: Long?): Client = clientRepository.findOne(p0)
override fun count(): Long = clientRepository.count()
override fun deleteAll() {
clientRepository.deleteAll()
}
} |
|
| Java |
1
2
3
4
5
6
7
| @SpringBootApplication
public class SpringBoot {
public static void main(String[] args) {
SpringApplication.run(SpringBoot.class, args);
}
} |
|
Это самая последняя версия конфигурационных файлов и классов, которая не работает. В других проектах с точной таким же конфигурационным файлом для базы данных все прекрасно работало, а тут никак.