0

我已经开始使用 Eclipse Indigo+JBoss 7.1+MySQL。我是 Java EE 的初学者程序员。所以,我对教程有疑问:http ://www.youtube.com/watch?v=z55reyPqH44 。(这是如何使用 MySql 数据库的简单示例)。

所以,这个项目使用:EJB 3.1 JSF 2.0 JBOSS AS 7.1 MySQL,当我在控制台中运行这个或类似的项目时,“休眠”有很多问题。

安慰:

15:12:46,808 WARN [org.hibernate.service.jdbc.connections.internal.ConnectionProviderInitiator] (MSC service thread 1-3) HHH000181: No appropriate connection provider encountered, assuming application will be supplying connections 
15:12:46,914 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-3) MSC00001: Failed to start service jboss.persistenceunit."TestLogowanie.war#TestLogowanie": 
org.jboss.msc.service.StartException in service jboss.persistenceunit."TestLogowanie.war#TestLogowanie": Failed to start service 
    at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1767) [jboss-msc-1.0.2.GA.jar:1.0.2.GA] 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [rt.jar:1.7.0_01] 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [rt.jar:1.7.0_01] 
    at java.lang.Thread.run(Unknown Source) [rt.jar:1.7.0_01] 

Caused by: javax.persistence.PersistenceException: [PersistenceUnit: TestLogowanie] Unable to build EntityManagerFactory 
    at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:914) 
    at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:889) 
    at org.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFactory(HibernatePersistence.java:73) 
    at org.jboss.as.jpa.service.PersistenceUnitServiceImpl.createContainerEntityManagerFactory(PersistenceUnitServiceImpl.java:162) 
    at org.jboss.as.jpa.service.PersistenceUnitServiceImpl.start(PersistenceUnitServiceImpl.java:85) 
    at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811) [jboss-msc-1.0.2.GA.jar:1.0.2.GA] 
    at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746) [jboss-msc-1.0.2.GA.jar:1.0.2.GA] 
    ... 3 more 
Caused by: org.hibernate.HibernateException: Connection cannot be null when 'hibernate.dialect' not set 
    at org.hibernate.service.jdbc.dialect.internal.DialectFactoryImpl.determineDialect(DialectFactoryImpl.java:97) 
    at org.hibernate.service.jdbc.dialect.internal.DialectFactoryImpl.buildDialect(DialectFactoryImpl.java:67) 
    at org.hibernate.engine.jdbc.internal.JdbcServicesImpl.configure(JdbcServicesImpl.java:176) 
    at org.hibernate.service.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:75) 
    at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:159) 
    at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:131) 
    at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:71) 
    at org.hibernate.cfg.Configuration.buildSettingsInternal(Configuration.java:2270) 
    at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2266) 
    at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1735) 
    at org.hibernate.ejb.EntityManagerFactoryImpl.(EntityManagerFactoryImpl.java:84) 
    at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:904) 
    ... 9 more

15:12:47,142 INFO [org.jboss.as.server] (DeploymentScanner-threads - 2) JBAS015870: Deploy of deployment "TestLogowanie.war" was rolled back with failure message {"JBAS014671: Failed services" => {"jboss.persistenceunit.\"TestLogowanie.war#TestLogowanie\"" => "org.jboss.msc.service.StartException in service jboss.persistenceunit.\"TestLogowanie.war#TestLogowanie\": Failed to start service"}} 
15:12:47,191 INFO [org.jboss.as.server.deployment] (MSC service thread 1-4) JBAS015877: Stopped deployment TestLogowanie.war in 49ms 
15:12:47,193 INFO [org.jboss.as.controller] (DeploymentScanner-threads - 2) JBAS014774: Service status report JBAS014777: Services which failed to start: service jboss.persistenceunit."TestLogowanie.war#TestLogowanie": org.jboss.msc.service.StartException in service jboss.persistenceunit."TestLogowanie.war#TestLogowanie": Failed to start service
15:12:47,196 ERROR [org.jboss.as.server.deployment.scanner] (DeploymentScanner-threads - 1) {"JBAS014653: Composite operation failed and was rolled back. Steps that failed:" => {"Operation step-2" => {"JBAS014671: Failed services" => {"jboss.persistenceunit.\"TestLogowanie.war#TestLogowanie\"" => "org.jboss.msc.service.StartException in service jboss.persistenceunit.\"TestLogowanie.war#TestLogowanie\": Failed to start service"}}}}

哦,对不起,当我今天重新启动计算机时,看起来问题丢失了。我的意思是控制台中的错误。但每次我有“HTTP 状态 404”。看看我的控制台和屏幕。我不知道为什么每次 JBoss 从我的旧项目(CountryWebService)中启动站点被删除。我想启动'SiteMYSQL'。我还有另一个问题。当我删除我的 JBoss 7.1 服务器并启动新的 Tomcat 7 时,我的端口 8080 每次都被 JBoss 站点忙碌。我必须更改 Tomcat 的端口,例如 8081。

安慰:

 10:55:37,826 INFO  [org.jboss.modules] JBoss Modules version 1.1.1.GA
10:55:38,216 INFO  [org.jboss.msc] JBoss MSC version 1.0.2.GA
10:55:38,277 INFO  [org.jboss.as] JBAS015899: JBoss AS 7.1.0.Final "Thunder" starting
10:55:39,747 INFO  [org.xnio] XNIO Version 3.0.3.GA
10:55:39,760 INFO  [org.xnio.nio] XNIO NIO Implementation Version 3.0.3.GA
10:55:39,770 INFO  [org.jboss.remoting] JBoss Remoting version 3.2.2.GA
10:55:39,780 INFO  [org.jboss.as.server] JBAS015888: Creating http management service using socket-binding (management-http)
10:55:39,901 INFO  [org.jboss.as.logging] JBAS011502: Removing bootstrap log handlers
10:55:39,907 INFO  [org.jboss.as.configadmin] (ServerService Thread Pool -- 26) JBAS016200: Activating ConfigAdmin Subsystem
10:55:39,994 INFO  [org.jboss.as.clustering.infinispan] (ServerService Thread Pool -- 31) JBAS010280: Activating Infinispan subsystem.
10:55:40,026 INFO  [org.jboss.as.connector] (MSC service thread 1-2) JBAS010408: Starting JCA Subsystem (JBoss IronJacamar 1.0.7.Final)
10:55:40,038 INFO  [org.jboss.as.naming] (ServerService Thread Pool -- 38) JBAS011800: Activating Naming Subsystem
10:55:40,048 INFO  [org.jboss.as.security] (ServerService Thread Pool -- 44) JBAS013101: Activating Security Subsystem
10:55:40,054 INFO  [org.jboss.as.osgi] (ServerService Thread Pool -- 39) JBAS011940: Activating OSGi Subsystem
10:55:40,073 INFO  [org.jboss.as.connector.subsystems.datasources] (ServerService Thread Pool -- 27) JBAS010403: Deploying JDBC-compliant driver class org.h2.Driver (version 1.3)
10:55:40,074 INFO  [org.jboss.as.webservices] (ServerService Thread Pool -- 48) JBAS015537: Activating WebServices Extension
10:55:40,134 INFO  [org.jboss.as.connector.subsystems.datasources] (ServerService Thread Pool -- 27) JBAS010404: Deploying non-JDBC-compliant driver class com.mysql.jdbc.Driver (version 5.1)
10:55:40,373 INFO  [org.jboss.as.naming] (MSC service thread 1-3) JBAS011802: Starting Naming Service
10:55:40,379 INFO  [org.jboss.as.security] (MSC service thread 1-3) JBAS013100: Current PicketBox version=4.0.6.final
10:55:40,595 INFO  [org.jboss.ws.common.management.AbstractServerConfig] (MSC service thread 1-2) JBoss Web Services - Stack CXF Server 4.0.1.GA
10:55:40,706 INFO  [org.jboss.as.mail.extension] (MSC service thread 1-2) JBAS015400: Bound mail session [java:jboss/mail/Default]
10:55:40,955 INFO  [org.jboss.as.server.deployment.scanner] (MSC service thread 1-3) JBAS015012: Started FileSystemDeploymentService for directory C:\Users\Andrew\Desktop\Wojtek\Studia\sem7\jboss-as-7.1.0.Final\jboss-as-7.1.0.Final\standalone\deployments
10:55:40,974 INFO  [org.jboss.as.server.deployment.scanner] (DeploymentScanner-threads - 1) JBAS015003: Found SiteMYSQL.war in deployment directory. To trigger deployment create a file called SiteMYSQL.war.dodeploy
10:55:41,157 INFO  [org.jboss.as.remoting] (MSC service thread 1-1) JBAS017100: Listening on localhost/127.0.0.1:4447
10:55:41,220 INFO  [org.apache.coyote.http11.Http11Protocol] (MSC service thread 1-1) Starting Coyote HTTP/1.1 on http-localhost-127.0.0.1-8080
10:55:41,350 INFO  [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-3) JBAS010400: Bound data source [java:/Client]
10:55:41,351 INFO  [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-2) JBAS010400: Bound data source [java:jboss/datasources/ExampleDS]
10:55:41,415 INFO  [org.jboss.as.remoting] (MSC service thread 1-1) JBAS017100: Listening on /127.0.0.1:9999
10:55:41,597 INFO  [org.jboss.as.server.deployment] (MSC service thread 1-1) JBAS015876: Starting deployment of "SiteMYSQL.war"
10:55:41,765 INFO  [org.jboss.as.jpa] (MSC service thread 1-1) JBAS011401: Read persistence.xml for SiteMYSQL
10:55:42,402 INFO  [org.jboss.as.jpa] (MSC service thread 1-3) JBAS011402: Starting Persistence Unit Service 'SiteMYSQL.war#SiteMYSQL'
10:55:42,619 INFO  [org.hibernate.annotations.common.Version] (MSC service thread 1-3) HCANN000001: Hibernate Commons Annotations {4.0.1.Final}
10:55:42,629 INFO  [org.hibernate.Version] (MSC service thread 1-3) HHH000412: Hibernate Core {4.0.1.Final}
10:55:42,650 INFO  [org.hibernate.cfg.Environment] (MSC service thread 1-3) HHH000206: hibernate.properties not found
10:55:42,657 INFO  [org.hibernate.cfg.Environment] (MSC service thread 1-3) HHH000021: Bytecode provider name : javassist
10:55:42,678 INFO  [org.hibernate.ejb.Ejb3Configuration] (MSC service thread 1-3) HHH000204: Processing PersistenceUnitInfo [
    name: SiteMYSQL
    ...]
10:55:42,923 INFO  [org.hibernate.service.jdbc.connections.internal.ConnectionProviderInitiator] (MSC service thread 1-3) HHH000130: Instantiating explicit connection provider: org.hibernate.ejb.connection.InjectedDataSourceConnectionProvider
10:55:43,208 INFO  [org.hibernate.dialect.Dialect] (MSC service thread 1-3) HHH000400: Using dialect: org.hibernate.dialect.MySQLDialect
10:55:43,230 INFO  [org.hibernate.engine.transaction.internal.TransactionFactoryInitiator] (MSC service thread 1-3) HHH000268: Transaction strategy: org.hibernate.engine.transaction.internal.jta.CMTTransactionFactory
10:55:43,236 INFO  [org.hibernate.hql.internal.ast.ASTQueryTranslatorFactory] (MSC service thread 1-3) HHH000397: Using ASTQueryTranslatorFactory
10:55:43,281 INFO  [org.hibernate.validator.util.Version] (MSC service thread 1-3) Hibernate Validator 4.2.0.Final
10:55:43,694 INFO  [javax.enterprise.resource.webcontainer.jsf.config] (MSC service thread 1-3) Initializing Mojarra 2.1.5 (SNAPSHOT 20111202) for context '/SiteMYSQL'
10:55:46,140 INFO  [org.jboss.web] (MSC service thread 1-3) JBAS018210: Registering web context: /SiteMYSQL
10:55:46,147 INFO  [org.jboss.as] (MSC service thread 1-1) JBAS015874: JBoss AS 7.1.0.Final "Thunder" started in 8818ms - Started 179 of 253 services (72 services are passive or on-demand)
10:55:46,258 INFO  [org.jboss.as.server] (DeploymentScanner-threads - 2) JBAS018559: Deployed "SiteMYSQL.war"

屏幕:

http://imgur.com/Peja7

4

2 回答 2

0

在您的persistence.xml中,您有:

    <jta-data-source>jdbc:mysql://localhost:3306/Client</jta-data-source>

那是错误的。这不应该是一个 JDBC URL,它应该是一个标识 JBoss 提供的数据源的 JNDI URL。

在我的一个(工作!)项目中,我有这个persistence.xml

    <jta-data-source>jdbc/catalogueDS</jta-data-source>

这在standalone.xml

<subsystem xmlns="urn:jboss:domain:datasources:1.0">
    <datasources>
        <datasource jndi-name="java:/jdbc/catalogueDS" pool-name="catalogueDS" enabled="true" use-java-context="true">
            <connection-url>jdbc:h2:data/catalogueDS</connection-url>
            <driver>h2</driver>
            <security>
                <user-name />
                <password />
            </security>
            <statement>
                <track-statements>TRUE</track-statements>
            </statement>
        </datasource>

        <drivers>
            <driver name="h2" module="com.h2database.h2">
                <xa-datasource-class>org.h2.jdbcx.JdbcDataSource
                </xa-datasource-class>
            </driver>
        </drivers>
    </datasources>
</subsystem>

如您所见,jta-data-sourceinpersistence.xmljndi-namein匹配standalone.xml

于 2012-12-12T17:46:55.863 回答
-1

Persistence.xml 应该放在战争的根文件夹 META-INF 中(对不起我的英文)

于 2014-02-12T10:11:37.247 回答