我在JBoss Wildfly上有Spring 4,DataNucleus 4和Postgres 9的maven多模块项目。 我想配置他们一起工作。 但是现在DataNucleus不会在数据库上自动创建表。
在这里,我的pom持续" maven模块:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>somem</artifactId>
<groupId>somem</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>persistence</artifactId>
<packaging>jar</packaging>
<name>persistence</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>javax.jdo</groupId>
<artifactId>jdo-api</artifactId>
<version>3.0.1</version>
</dependency>
<dependency>
<groupId>org.datanucleus</groupId>
<artifactId>datanucleus-core</artifactId>
<version>4.0.4</version>
</dependency>
<dependency>
<groupId>org.datanucleus</groupId>
<artifactId>datanucleus-api-jdo</artifactId>
<version>4.0.5</version>
</dependency>
<dependency>
<groupId>org.datanucleus</groupId>
<artifactId>datanucleus-rdbms</artifactId>
<version>4.0.7</version>
</dependency>
<dependency>
<artifactId>spring-orm</artifactId>
<groupId>org.springframework</groupId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>9.3-1102-jdbc41</version>
</dependency>
</dependencies>
</project>
这是一个用户实体:
@PersistenceCapable
public class User {
@PrimaryKey
@Persistent( valueStrategy = IdGeneratorStrategy.IDENTITY )
private Long id;
@Persistent
private String name;
public User() {}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
带有Spring的JDOConfigure
@Configuration
@EnableTransactionManagement
public class JDOConfiguration{
@Bean
public PersistenceManagerFactory persistenceManagerFactory() {
PersistenceManagerFactory persistenceManagerFactory = JDOHelper.getPersistenceManagerFactory("jdo.properties");
return persistenceManagerFactory;
}
@Bean
public JdoTransactionManager JdoTransactionManager() {
JdoTransactionManager JdoTransactionManager = new JdoTransactionManager();
JdoTransactionManager.setPersistenceManagerFactory(persistenceManagerFactory());
return JdoTransactionManager;
}
}
和jdo.properties作为PersistenceManagerFactory的配置:
datanucleus.autoCreateSchema=true
javax.jdo.PersistenceManagerFactoryClass=org.datanucleus.api.jdo.JDOPersistenceManagerFactory
javax.jdo.option.ConnectionURL= jdbc:postgresql://localhost/somem
javax.jdo.option.ConnectionUserName = dom
javax.jdo.option.ConnectionPassword = dom
javax.jdo.option.ConnectionDriverName = org.postgresql.Driver
为什么datanucleus不在数据库上创建User表?
我的输出:
/usr/lib/jvm/oracle/jdk1.7.0_21/bin/java -classpath /home/user/software/idea-IU-139.659.2/lib/idea_rt.jar:/home/user/software/idea-IU-139.659.2/lib/util.jar -Dfile.encoding=UTF-8 com.intellij.rt.execution.CommandLineWrapper /tmp/classpath0.tmp com.intellij.javaee.oss.process.JavaeeProcess 37134 com.intellij.javaee.oss.jboss.agent.JBoss71Agent
/home/user/software/wildfly-8.2.0.Final/bin/standalone.sh
[2015-02-06 03:23:19,788] Artifact admin:war: Server is not connected. Deploy is not available.
=========================================================================
[2015-02-06 03:23:19,789] Artifact web:war: Server is not connected. Deploy is not available.
Detected server admin port: 9990
JBoss Bootstrap Environment
Detected server http port: 8080
JBOSS_HOME: /home/user/software/wildfly-8.2.0.Final
JAVA: /usr/lib/jvm/oracle/jdk1.7.0_21/bin/java
JAVA_OPTS: -server -Xms64m -Xmx512m -XX:MaxPermSize=256m -Djava.net.preferIPv4Stack=true -Djboss.modules.system.pkgs=org.jboss.byteman -Djava.awt.headless=true
=========================================================================
[0m03:23:18,776 INFO [org.jboss.modules] (main) JBoss Modules version 1.3.3.Final
[0m[0m03:23:19,437 INFO [org.jboss.msc] (main) JBoss MSC version 1.2.2.Final
[0m[0m03:23:19,640 INFO [org.jboss.as] (MSC service thread 1-7) JBAS015899: WildFly 8.2.0.Final "Tweek" starting
[0m[0m03:23:21,824 INFO [org.jboss.as.server] (Controller Boot Thread) JBAS015888: Creating http management service using socket-binding (management-http)
[0m[0m03:23:21,854 INFO [org.xnio] (MSC service thread 1-1) XNIO version 3.3.0.Final
[0m[0m03:23:21,881 INFO [org.xnio.nio] (MSC service thread 1-1) XNIO NIO Implementation Version 3.3.0.Final
[0m[0m03:23:21,918 INFO [org.wildfly.extension.io] (ServerService Thread Pool -- 31) WFLYIO001: Worker 'default' has auto-configured to 8 core threads with 64 task threads based on your 4 available processors
[0m[0m03:23:21,922 INFO [org.jboss.as.clustering.infinispan] (ServerService Thread Pool -- 32) JBAS010280: Activating Infinispan subsystem.
[0m[0m03:23:21,965 INFO [org.jboss.as.jsf] (ServerService Thread Pool -- 38) JBAS012615: Activated the following JSF Implementations: [main]
[0m[0m03:23:21,982 INFO [org.jboss.as.naming] (ServerService Thread Pool -- 40) JBAS011800: Activating Naming Subsystem
[0m[0m03:23:21,985 INFO [org.jboss.as.security] (ServerService Thread Pool -- 45) JBAS013171: Activating Security Subsystem
[0m[0m03:23:21,988 INFO [org.jboss.as.security] (MSC service thread 1-4) JBAS013170: Current PicketBox version=4.0.21.Final
[0m[0m03:23:21,999 INFO [org.jboss.as.connector.subsystems.datasources] (ServerService Thread Pool -- 27) JBAS010403: Deploying JDBC-compliant driver class org.h2.Driver (version 1.3)
[0m[33m03:23:22,016 WARN [org.jboss.as.txn] (ServerService Thread Pool -- 46) JBAS010153: Node identifier property is set to the default value. Please make sure it is unique.
[0m[0m03:23:22,027 INFO [org.jboss.as.connector.logging] (MSC service thread 1-7) JBAS010408: Starting JCA Subsystem (IronJacamar 1.1.9.Final)
[0m[0m03:23:22,051 INFO [org.wildfly.extension.undertow] (MSC service thread 1-5) JBAS017502: Undertow 1.1.0.Final starting
[0m[0m03:23:22,051 INFO [org.wildfly.extension.undertow] (ServerService Thread Pool -- 47) JBAS017502: Undertow 1.1.0.Final starting
[0m[0m03:23:22,061 INFO [org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-8) JBAS010417: Started Driver service with driver-name = h2
[0m[0m03:23:22,070 INFO [org.jboss.as.naming] (MSC service thread 1-8) JBAS011802: Starting Naming Service
[0m[0m03:23:22,071 INFO [org.jboss.as.mail.extension] (MSC service thread 1-8) JBAS015400: Bound mail session [java:jboss/mail/Default]
[0m[0m03:23:22,072 INFO [org.jboss.as.webservices] (ServerService Thread Pool -- 48) JBAS015537: Activating WebServices Extension
[0m[0m03:23:22,126 INFO [org.jboss.remoting] (MSC service thread 1-1) JBoss Remoting version 4.0.6.Final
[0m[0m03:23:22,394 INFO [org.wildfly.extension.undertow] (ServerService Thread Pool -- 47) JBAS017527: Creating file handler for path /home/user/software/wildfly-8.2.0.Final/welcome-content
[0m[0m03:23:22,472 INFO [org.wildfly.extension.undertow] (MSC service thread 1-3) JBAS017525: Started server default-server.
[0m[0m03:23:22,489 INFO [org.wildfly.extension.undertow] (MSC service thread 1-7) JBAS017531: Host default-host starting
[0m[0m03:23:22,645 INFO [org.wildfly.extension.undertow] (MSC service thread 1-8) JBAS017519: Undertow HTTP listener default listening on /127.0.0.1:8080
[0m[0m03:23:23,195 INFO [org.jboss.as.server.deployment.scanner] (MSC service thread 1-6) JBAS015012: Started FileSystemDeploymentService for directory /home/user/software/wildfly-8.2.0.Final/standalone/deployments
[0m[0m03:23:23,205 INFO [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-5) JBAS010400: Bound data source [java:jboss/datasources/ExampleDS]
[0m[0m03:23:23,562 INFO [org.jboss.ws.common.management] (MSC service thread 1-4) JBWS022052: Starting JBoss Web Services - Stack CXF Server 4.3.2.Final
[0m[0m03:23:23,777 INFO [org.jboss.as] (Controller Boot Thread) JBAS015961: Http management interface listening on http://127.0.0.1:9990/management
[0m[0m03:23:23,778 INFO [org.jboss.as] (Controller Boot Thread) JBAS015951: Admin console listening on http://127.0.0.1:9990
[0m[0m03:23:23,779 INFO [org.jboss.as] (Controller Boot Thread) JBAS015874: WildFly 8.2.0.Final "Tweek" started in 5650ms - Started 184 of 234 services (82 services are lazy, passive or on-demand)
[0mConnected to server
[2015-02-06 03:23:23,964] Artifact admin:war: Artifact is being deployed, please wait...
[2015-02-06 03:23:23,965] Artifact web:war: Artifact is being deployed, please wait...
[0m03:23:24,384 INFO [org.jboss.as.server.deployment] (MSC service thread 1-6) JBAS015876: Starting deployment of "admin.war" (runtime-name: "admin.war")
[0m[0m03:23:24,849 INFO [org.wildfly.extension.undertow] (MSC service thread 1-4) JBAS017534: Registered web context: /admin
[0m[0m03:23:25,335 INFO [org.jboss.as.server] (management-handler-thread - 3) JBAS018559: Deployed "admin.war" (runtime-name : "admin.war")
[0m[2015-02-06 03:23:25,366] Artifact admin:war: Artifact is deployed successfully
[2015-02-06 03:23:25,366] Artifact admin:war: Deploy took 1,402 milliseconds
[0m03:23:25,632 INFO [org.jboss.as.server.deployment] (MSC service thread 1-4) JBAS015876: Starting deployment of "web.war" (runtime-name: "web.war")
[0m[33m03:23:26,995 WARN [org.jboss.as.ee] (MSC service thread 1-2) JBAS011006: Not installing optional component org.springframework.http.server.ServletServerHttpAsyncRequestControl due to an exception (enable DEBUG log level to see the cause)
[0m[33m03:23:27,005 WARN [org.jboss.as.ee] (MSC service thread 1-2) JBAS011006: Not installing optional component org.springframework.web.context.request.async.StandardServletAsyncWebRequest due to an exception (enable DEBUG log level to see the cause)
[0m[0m03:23:27,084 INFO [org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-2) JBAS010404: Deploying non-JDBC-compliant driver class org.postgresql.Driver (version 9.3)
[0m[0m03:23:27,102 INFO [org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-5) JBAS010417: Started Driver service with driver-name = web.war_org.postgresql.Driver_9_3
[0m[0m03:23:27,140 INFO [io.undertow.servlet] (MSC service thread 1-4) Spring WebApplicationInitializers detected on classpath: [somem.web.configuration.WebAppInitializer@4aedfc7b]
[0m[0m03:23:27,193 INFO [stdout] (MSC service thread 1-4) test222
[0m[0m03:23:27,205 INFO [io.undertow.servlet] (MSC service thread 1-4) Initializing Spring root WebApplicationContext
[0m[0m03:23:27,208 INFO [org.springframework.web.context.ContextLoader] (MSC service thread 1-4) Root WebApplicationContext: initialization started
[0m[0m03:23:27,279 INFO [org.springframework.web.context.support.AnnotationConfigWebApplicationContext] (MSC service thread 1-4) Refreshing Root WebApplicationContext: startup date [Fri Feb 06 03:23:27 ICT 2015]; root of context hierarchy
[0m[0m03:23:27,352 INFO [org.springframework.web.context.support.AnnotationConfigWebApplicationContext] (MSC service thread 1-4) Registering annotated classes: [class somem.persistence.config.JDOConfiguration]
[0m[0m03:23:27,523 INFO [org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor] (MSC service thread 1-4) JSR-330 'javax.inject.Inject' annotation found and supported for autowiring
[0m[0m03:23:28,409 INFO [stdout] (MSC service thread 1-4) test system
[0m[0m03:23:28,451 INFO [org.springframework.web.context.ContextLoader] (MSC service thread 1-4) Root WebApplicationContext: initialization completed in 1243 ms
[0m[0m03:23:28,454 INFO [io.undertow.servlet] (MSC service thread 1-4) Initializing Spring FrameworkServlet 'dispatcher'
[0m[0m03:23:28,454 INFO [org.springframework.web.servlet.DispatcherServlet] (MSC service thread 1-4) FrameworkServlet 'dispatcher': initialization started
[0m[0m03:23:28,458 INFO [org.springframework.web.context.support.AnnotationConfigWebApplicationContext] (MSC service thread 1-4) Refreshing WebApplicationContext for namespace 'dispatcher-servlet': startup date [Fri Feb 06 03:23:28 ICT 2015]; parent: Root WebApplicationContext
[0m[0m03:23:28,460 INFO [org.springframework.web.context.support.AnnotationConfigWebApplicationContext] (MSC service thread 1-4) Registering annotated classes: [class somem.web.configuration.WebConfiguration]
[0m[0m03:23:28,600 INFO [org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor] (MSC service thread 1-4) JSR-330 'javax.inject.Inject' annotation found and supported for autowiring
[0m[0m03:23:28,844 INFO [org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping] (MSC service thread 1-4) Mapped "{[/],methods=[GET],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public java.lang.String somem.web.controller.MainController.test(javax.servlet.http.HttpServletResponse)
[0m[0m03:23:28,890 INFO [org.springframework.web.servlet.handler.SimpleUrlHandlerMapping] (MSC service thread 1-4) Mapped URL path [/resources/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
[0m[0m03:23:28,902 INFO [org.springframework.web.servlet.handler.SimpleUrlHandlerMapping] (MSC service thread 1-4) Mapped URL path [/**] onto handler of type [class org.springframework.web.servlet.resource.DefaultServletHttpRequestHandler]
[0m[0m03:23:29,235 INFO [org.hibernate.validator.internal.util.Version] (MSC service thread 1-4) HV000001: Hibernate Validator 5.1.3.Final
[0m[0m03:23:29,328 INFO [org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter] (MSC service thread 1-4) Looking for @ControllerAdvice: WebApplicationContext for namespace 'dispatcher-servlet': startup date [Fri Feb 06 03:23:28 ICT 2015]; parent: Root WebApplicationContext
[0m[0m03:23:29,414 INFO [org.springframework.web.servlet.DispatcherServlet] (MSC service thread 1-4) FrameworkServlet 'dispatcher': initialization completed in 960 ms
[0m[0m03:23:29,414 INFO [org.wildfly.extension.undertow] (MSC service thread 1-4) JBAS017534: Registered web context: /web
[0m[0m03:23:29,672 INFO [org.jboss.as.server] (management-handler-thread - 1) JBAS018559: Deployed "web.war" (runtime-name : "web.war")
[0m[2015-02-06 03:23:29,708] Artifact web:war: Artifact is deployed successfully
[2015-02-06 03:23:29,708] Artifact web:war: Deploy took 5,743 milliseconds
答案 0 :(得分:0)
datanucleus.autoCreateSchema
不是DataNucleus 4.0中的有效属性(请参阅the properties doc),由migration guide from v3.x定义。使用datanucleus.schema.autoCreateAll
会更有意义。