Hello,

I'm very new to jOOQ library and I really like this library based on what I 
saw in the official web site.

I'm working on a Spring Boot application which I package as a *war* file to 
deploy to an external Tomcat Server.
First I want to use jOOQ only as a SQL query builder, and I have to connect 
to a database with many tables and don't want to generate sources every 
time because it takes a while to finish.

Is it possible, if so, then can you give me some hints or guide me how to 
do that ?
Thanks in advance

I want to use the Programmatic configuration to be able to access some 
environment variables for database credentials through 
*Environment*
So, I created a @RestController and @Autowired the Environment bean and 
exposed through a URL to be able to Generate the sources only when I want 
to:

@RestController
@RequestMapping("jooq/generate-sources")
public class CodeGeneratorController {

    private Environment env;

    @Autowired
    public CodeGeneratorController(Environment env) {
        this.env = env;
    }

    @RequestMapping(method = RequestMethod.POST)
    public ResponseEntity generateSources() throws Exception {

        Configuration configuration = new Configuration()
                .withLogging(Logging.INFO)
                .withJdbc(new Jdbc()
                        .withDriver("com.mysql.jdbc.Driver")
                        .withUsername(env.getRequiredProperty("DB_USERNAME"))
                        .withPassword(env.getRequiredProperty("DB_PASSWORD"))
                        .withUrl(env.getRequiredProperty("DB_URL")))
                .withGenerator(new Generator()
                        .withDatabase(new Database()
                                .withName("org.jooq.util.mysql.MySQLDatabase")
                                .withIncludes(".*")
                                .withInputSchema("my_schema"))
                        .withTarget(new Target()
                                .withEncoding("UTF-8")
                                
.withPackageName("com.my.package.data.generated-sources")
                                .withDirectory("src/main/java")));

        GenerationTool.generate(configuration);

        return ResponseEntity.ok().build();
    }
}


Also jOOQ related I have these dependencies on my pom.xml file:

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

<dependency>
    <groupId>org.jooq</groupId>
    <artifactId>jooq-codegen</artifactId>
</dependency>



Then when I try to start the application (with IntelliJ IDEA, already 
configured to run on Tomcat) I see this message:
2017-04-02 19:53:10.591  WARN 92073 --- [on(2)-127.0.0.1] 
ationConfigEmbeddedWebApplicationContext : Exception encountered during 
context initialization - cancelling refresh attempt: org.springframework.
beans.factory.BeanCreationException: Error creating bean with name 
'dslContext' defined in class path resource [org/springframework/boot/
autoconfigure/jooq/JooqAutoConfiguration$DslContextConfiguration.class]: 
Post-processing of merged bean definition failed; nested exception is java.
lang.StackOverflowError

And then this exception:

org.springframework.beans.factory.BeanCreationException: Error creating 
bean with name 'dslContext' defined in class path resource 
[org/springframework/boot/autoconfigure/jooq/JooqAutoConfiguration$DslContextConfiguration.class]:
 
Post-processing of merged bean definition failed; nested exception is 
java.lang.StackOverflowError
at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:526)
 
~[spring-beans-4.3.7.RELEASE.jar:4.3.7.RELEASE]
at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483)
 
~[spring-beans-4.3.7.RELEASE.jar:4.3.7.RELEASE]
at 
org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
 
~[spring-beans-4.3.7.RELEASE.jar:4.3.7.RELEASE]
at 
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
 
~[spring-beans-4.3.7.RELEASE.jar:4.3.7.RELEASE]
at 
org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
 
~[spring-beans-4.3.7.RELEASE.jar:4.3.7.RELEASE]
at 
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
 
~[spring-beans-4.3.7.RELEASE.jar:4.3.7.RELEASE]
at 
org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:761)
 
~[spring-beans-4.3.7.RELEASE.jar:4.3.7.RELEASE]
at 
org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:866)
 
~[spring-context-4.3.7.RELEASE.jar:4.3.7.RELEASE]
at 
org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:542)
 
~[spring-context-4.3.7.RELEASE.jar:4.3.7.RELEASE]
at 
org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:122)
 
~[spring-boot-1.5.2.RELEASE.jar:1.5.2.RELEASE]
at 
org.springframework.boot.SpringApplication.refresh(SpringApplication.java:737) 
~[spring-boot-1.5.2.RELEASE.jar:1.5.2.RELEASE]
at 
org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:370)
 
~[spring-boot-1.5.2.RELEASE.jar:1.5.2.RELEASE]
at 
org.springframework.boot.SpringApplication.run(SpringApplication.java:314) 
~[spring-boot-1.5.2.RELEASE.jar:1.5.2.RELEASE]
at 
org.springframework.boot.web.support.SpringBootServletInitializer.run(SpringBootServletInitializer.java:151)
 
[spring-boot-1.5.2.RELEASE.jar:1.5.2.RELEASE]
at 
org.springframework.boot.web.support.SpringBootServletInitializer.createRootApplicationContext(SpringBootServletInitializer.java:131)
 
[spring-boot-1.5.2.RELEASE.jar:1.5.2.RELEASE]
at 
org.springframework.boot.web.support.SpringBootServletInitializer.onStartup(SpringBootServletInitializer.java:86)
 
[spring-boot-1.5.2.RELEASE.jar:1.5.2.RELEASE]
at 
org.springframework.web.SpringServletContainerInitializer.onStartup(SpringServletContainerInitializer.java:169)
 
[spring-web-4.3.7.RELEASE.jar:4.3.7.RELEASE]
at 
org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5240)
 
[catalina.jar:8.0.33]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147) 
[catalina.jar:8.0.33]
at 
org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:725) 
[catalina.jar:8.0.33]
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:701) 
[catalina.jar:8.0.33]
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:717) 
[catalina.jar:8.0.33]
at org.apache.catalina.startup.HostConfig.manageApp(HostConfig.java:1696) 
[catalina.jar:8.0.33]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
~[na:1.8.0_60]
at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
~[na:1.8.0_60]
at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
 
~[na:1.8.0_60]
at java.lang.reflect.Method.invoke(Method.java:497) ~[na:1.8.0_60]
at 
org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:300) 
[tomcat-coyote.jar:8.0.33]
at 
com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819)
 
[na:1.8.0_60]
at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801) 
[na:1.8.0_60]
at 
org.apache.catalina.mbeans.MBeanFactory.createStandardContext(MBeanFactory.java:484)
 
[catalina.jar:8.0.33]
at 
org.apache.catalina.mbeans.MBeanFactory.createStandardContext(MBeanFactory.java:433)
 
[catalina.jar:8.0.33]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
~[na:1.8.0_60]
at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
~[na:1.8.0_60]
at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
 
~[na:1.8.0_60]
at java.lang.reflect.Method.invoke(Method.java:497) ~[na:1.8.0_60]
at 
org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:300) 
[tomcat-coyote.jar:8.0.33]
at 
com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819)
 
[na:1.8.0_60]
at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801) 
[na:1.8.0_60]
at 
javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1471)
 
[na:1.8.0_60]
at 
javax.management.remote.rmi.RMIConnectionImpl.access$300(RMIConnectionImpl.java:76)
 
[na:1.8.0_60]
at 
javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1312)
 
[na:1.8.0_60]
at 
javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1404)
 
[na:1.8.0_60]
at 
javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:832)
 
[na:1.8.0_60]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
~[na:1.8.0_60]
at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
~[na:1.8.0_60]
at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
 
~[na:1.8.0_60]
at java.lang.reflect.Method.invoke(Method.java:497) ~[na:1.8.0_60]
at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:323) 
[na:1.8.0_60]
at sun.rmi.transport.Transport$1.run(Transport.java:200) [na:1.8.0_60]
at sun.rmi.transport.Transport$1.run(Transport.java:197) [na:1.8.0_60]
at java.security.AccessController.doPrivileged(Native Method) [na:1.8.0_60]
at sun.rmi.transport.Transport.serviceCall(Transport.java:196) [na:1.8.0_60]
at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:568) 
[na:1.8.0_60]
at 
sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:826)
 
[na:1.8.0_60]
at 
sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$256(TCPTransport.java:683)
 
[na:1.8.0_60]
at java.security.AccessController.doPrivileged(Native Method) [na:1.8.0_60]
at 
sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:682) 
[na:1.8.0_60]
at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
~[na:1.8.0_60]
at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
~[na:1.8.0_60]
at java.lang.Thread.run(Thread.java:745) ~[na:1.8.0_60]....

Hope I was clear explaining my problem
Thanks

-- 
You received this message because you are subscribed to the Google Groups "jOOQ 
User Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to