В настоящее время я пытаюсь настроить проект Spring MVC 3.1.1 с использованием Maven и развертывания на JBoss 7.1.1. Я пробовал несколько учебных пособий, но я не мог закончить, так как в какой-то момент я застрял бы с чем-то, что предполагалось в уроке и отсутствовало в моей настройке.Spring MVC + Maven + JBoss: невозможно развернуть (приложение должно поставлять соединения JDBC)
Моя вторая попытка состояла в том, чтобы создать «проект Spring MVC» с использованием затмения и скопировать/вставить файлы конфигурации из работающего проекта Spring MVC в мой новый, но пока ничего хорошего.
Я создал весь свой домен с помощью JPA и теперь, когда я пытаюсь развернуть я получаю это исключение: Schema export unsuccessful: java.lang.UnsupportedOperationException: The application must supply JDBC connections.
Я нашел много сообщений на форуме и т.д. с людьми, имеющими один и тот же вопрос, но ни один из предложенных решений не устраивает мою проблему. Драйвер Postgresql хорошо определен в зависимостях maven и находится в пути сборки.
Вот основные/SRC/ресурсы/META-INF/persistence.xml файл:
<persistence-unit name="root">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<class>com.macoloc.domain.Colocation</class>
<class>com.macoloc.domain.Invitation</class>
<class>com.macoloc.domain.Key</class>
<class>com.macoloc.domain.Message</class>
<class>com.macoloc.domain.MessageSeenBy</class>
<class>com.macoloc.domain.Payment</class>
<class>com.macoloc.domain.PaymentParticipation</class>
<class>com.macoloc.domain.Ping</class>
<class>com.macoloc.domain.Subtask</class>
<class>com.macoloc.domain.Task</class>
<class>com.macoloc.domain.TaskOrder</class>
<class>com.macoloc.domain.User</class>
<class>com.macoloc.domain.Versionable</class>
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQLDialect" />
<property name="hibernate.show_sql" value="true" />
<property name="hibernate.hbm2ddl.auto" value="create" />
</properties>
</persistence-unit>
Вот SRC/главная/веб-приложение/WEB-INF/web.xml файл :
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring/root-context.xml,/WEB-INF/spring/infrastructure/infrastructure.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<servlet>
<servlet-name>appServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring/appServlet/servlet-context.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>appServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
Вот часть SRC/главная/ресурсы/WEB-INF/весна/appServlet/сервлет-context.xml файл:
<context:component-scan base-package="com.macoloc" />
<annotation-driven />
<tx:annotation-driven />
<mvc:annotation-driven />
<mvc:resources mapping="/js/**" location="/resources/js/" />
<mvc:resources mapping="/css/**" location="/resources/css/" />
<resources mapping="/resources/**" location="/resources/" />
<beans:bean
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<beans:property name="prefix" value="/WEB-INF/views/" />
<beans:property name="suffix" value=".jsp" />
</beans:bean>
И, наконец, SRC/главная/ресурсы/WEB-INF/весна/инфраструктура/infrastructure.xml файл:
<context:annotation-config />
<tx:annotation-driven />
<bean id="entityManagerFactory"
class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="dataSource" ref="dataSourceDirect" />
</bean>
<bean id="dataSourceDirect" class="org.postgresql.ds.PGSimpleDataSource">
<property name="user" value="macoloc"></property>
<property name="password" value="macoloc"></property>
<property name="portNumber" value="5432"></property>
<property name="serverName" value="localhost"></property>
<property name="databaseName" value="MaColoc"></property>
</bean>
<bean class="org.springframework.orm.jpa.JpaTransactionManager"
id="transactionManager">
<property name="entityManagerFactory" ref="entityManagerFactory" />
</bean>
В Postgres Я установил пользователь «macoloc msgstr "использовать схему" macoloc ".
Обратите внимание, что проект, который я принимаю во всех этих файлах конфигурации, не был установлен мной (очевидно, поскольку этот работает ...). Возможно, некоторые файлы не используются? Я не знаю. Я действительно новичок в этом.
Любая идея, где это происходит не так? Вам, ребята, нужны больше файлов?
Спасибо!
EDIT: вот StackTrace:
16:11:21,568 INFO [org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-8) JBAS010404: Deploying non-JDBC-compliant driver class org.postgresql.Driver (version 9.0)
16:11:21,585 INFO [org.jboss.as.jpa] (MSC service thread 1-4) JBAS011402: Starting Persistence Unit Service 'MaColoc.war#root'
16:11:22,205 ERROR [org.hibernate.tool.hbm2ddl.SchemaExport] (MSC service thread 1-4) HHH000231: Schema export unsuccessful: java.lang.UnsupportedOperationException: The application must supply JDBC connections
at org.hibernate.service.jdbc.connections.internal.UserSuppliedConnectionProviderImpl.getConnection(UserSuppliedConnectionProviderImpl.java:62) [hibernate-core-4.0.1.Final.jar:4.0.1.Final]
at org.hibernate.tool.hbm2ddl.SuppliedConnectionProviderConnectionHelper.prepare(SuppliedConnectionProviderConnectionHelper.java:51) [hibernate-core-4.0.1.Final.jar:4.0.1.Final]
at org.hibernate.tool.hbm2ddl.DatabaseExporter.<init>(DatabaseExporter.java:52) [hibernate-core-4.0.1.Final.jar:4.0.1.Final]
at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:368) [hibernate-core-4.0.1.Final.jar:4.0.1.Final]
at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:305) [hibernate-core-4.0.1.Final.jar:4.0.1.Final]
at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:294) [hibernate-core-4.0.1.Final.jar:4.0.1.Final]
at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:452) [hibernate-core-4.0.1.Final.jar:4.0.1.Final]
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1737) [hibernate-core-4.0.1.Final.jar:4.0.1.Final]
at org.hibernate.ejb.EntityManagerFactoryImpl.<init>(EntityManagerFactoryImpl.java:84) [hibernate-entitymanager-4.0.1.Final.jar:4.0.1.Final]
at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:904) [hibernate-entitymanager-4.0.1.Final.jar:4.0.1.Final]
at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:889) [hibernate-entitymanager-4.0.1.Final.jar:4.0.1.Final]
at org.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFactory(HibernatePersistence.java:73) [hibernate-entitymanager-4.0.1.Final.jar:4.0.1.Final]
at org.jboss.as.jpa.service.PersistenceUnitServiceImpl.createContainerEntityManagerFactory(PersistenceUnitServiceImpl.java:162) [jboss-as-jpa-7.1.1.Final.jar:7.1.1.Final]
at org.jboss.as.jpa.service.PersistenceUnitServiceImpl.start(PersistenceUnitServiceImpl.java:85) [jboss-as-jpa-7.1.1.Final.jar:7.1.1.Final]
at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811)
at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [rt.jar:1.7.0_21]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [rt.jar:1.7.0_21]
at java.lang.Thread.run(Unknown Source) [rt.jar:1.7.0_21]
И: Самое странное, я заметил, что таблицы были созданы в моей БД ... Что?
Это работает нормально, но теперь, когда я 'm развертывание моего приложения Я получаю много это сообщение для каждой таблицы (они c reated tho): 13: 56: 22,290 ERROR [org.hibernate.tool.hbm2ddl.SchemaExport] (поток обслуживания MSC 1-2) HHH000389: Неудачный: создать таблицу User (id int4 not null, version int4 not null, email varchar (255) не null, firstName varchar (255) не null, lastName varchar (255) не null, пароль varchar (255) не null, colocation_id int4, key_id int4, первичный ключ (id)) 13: 56: 22,290 ОШИБКА [org.hibernate.tool.hbm2ddl.SchemaExport] (поток обслуживания MSC 1-2) ОШИБКА: синтаксическая ошибка рядом с «Пользователь». –
OK nvm Я получаю только для пользователя и всех ассоциаций с пользователем, я думаю, что это защищенное слово в SQL. –