Setup of simple Spring MVC, EclipseLink, Wildfly, Maven project -


i build spring mvc webapp maven, uses eclipselink jpa provider , runs on wildfly application server. unfortunately cannot make run. want use newest version of everything.

i'm getting following error when try run webapp on wildfly 8.2 or tomcat 8:

01:25:11,648 warn [org.springframework.web.context.support.xmlwebapplicationcontext] (msc service thread 1-1) exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.beancreationexception:

error creating bean name 'emf' defined in servletcontext resource [/web-inf/spring-servlet.xml]: invocation of init method failed; nested exception javax.persistence.persistenceexception:

exception [eclipselink-28018] (eclipse persistence services - 2.6.0.v20150309-bf26070): org.eclipse.persistence.exceptions.entitymanagersetupexception exception description: predeployment of persistenceunit [movietime] failed.

internal exception: exception [eclipselink-28010] (eclipse persistence services - 2.6.0.v20150309-bf26070): org.eclipse.persistence.exceptions.entitymanagersetupexception exception description: persistenceunitinfo movietime has transactiontype jta, not have jtadatasource defined.

a googled lot, didn't find helpful. think missing persistence.xml, or pom.xml, can't figure out what. the whole exception here.

here file hierarchy of project. (i cannot share image on yet)

i didn't open entities package because have ~30 entities generated database tables.

here pom.xml:

<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/maven-v4_0_0.xsd">   <modelversion>4.0.0</modelversion>   <groupid>movietimeproject</groupid>   <artifactid>movietimeproject</artifactid>   <packaging>war</packaging>   <version>0.0.1-snapshot</version>   <name>movietimeproject maven webapp</name>   <url>http://maven.apache.org</url>    <repositories>         <repository>             <id>oss.sonatype.org</id>             <name>oss sonatype staging</name>             <url>https://oss.sonatype.org/content/groups/staging</url>         </repository>         <repository>             <id>jboss repository</id>             <url>https://repository.jboss.org/nexus/content/groups/public/</url>         </repository>   </repositories>    <properties>         <spring.version>4.1.6.release</spring.version>   </properties>    <dependencymanagement>     <dependencies>         <dependency>             <groupid>org.jboss.spec</groupid>             <artifactid>jboss-javaee-7.0</artifactid>             <version>1.0.2.final</version>             <type>pom</type>             <scope>import</scope>         </dependency>     </dependencies>   </dependencymanagement>    <dependencies>     <!-- junit -->     <dependency>         <groupid>junit</groupid>         <artifactid>junit</artifactid>         <version>3.8.2</version>         <scope>test</scope>     </dependency>      <!-- jboss sever -->       <!-- mysql & jpa & eclipselink -->     <dependency>         <groupid>mysql</groupid>         <artifactid>mysql-connector-java</artifactid>         <version>5.1.35</version>     </dependency>     <dependency>         <groupid>org.eclipse.persistence</groupid>         <artifactid>javax.persistence</artifactid>         <version>2.1.0</version>         <!-- <scope>provided</scope> --> <!-- since running inside java ee container -->     </dependency>     <dependency>         <groupid>org.eclipse.persistence</groupid>         <artifactid>eclipselink</artifactid>         <version>2.6.0</version>         <!-- <scope>provided</scope> --> <!-- running inside java ee container -->     <!-- <scope>compile</scope> -->     </dependency>         <!-- spring dependencies -->     <dependency>         <groupid>org.springframework</groupid>         <artifactid>spring-core</artifactid>         <version>${spring.version}</version>     </dependency>     <dependency>         <groupid>org.springframework</groupid>         <artifactid>spring-webmvc</artifactid>         <version>${spring.version}</version>     </dependency>     <dependency>         <groupid>org.springframework</groupid>         <artifactid>spring-tx</artifactid>         <version>${spring.version}</version>     </dependency>     <dependency>         <groupid>org.springframework</groupid>         <artifactid>spring-orm</artifactid>         <version>${spring.version}</version>     </dependency>     <dependency>         <groupid>org.springframework</groupid>         <artifactid>spring-web</artifactid>         <version>${spring.version}</version>     </dependency>     <dependency>         <groupid>org.springframework</groupid>         <artifactid>spring-instrument</artifactid>         <version>${spring.version}</version>     </dependency>      <!-- servlet & jstl -->     <dependency>             <groupid>jstl</groupid>             <artifactid>jstl</artifactid>             <version>1.2</version>         </dependency>     <dependency>         <groupid>javax.servlet</groupid>         <artifactid>javax.servlet-api</artifactid>         <version>3.1.0</version>     </dependency>     <dependency>         <groupid>javax.servlet.jsp</groupid>         <artifactid>javax.servlet.jsp-api</artifactid>         <version>2.3.2-b01</version>     </dependency>       <dependency>         <groupid>aopalliance</groupid>         <artifactid>aopalliance</artifactid>         <version>1.0</version>     </dependency>     <dependency>         <groupid>cglib</groupid>         <artifactid>cglib</artifactid>         <version>3.1</version>     </dependency>       <dependency>         <groupid>aspectj</groupid>         <artifactid>aspectjrt</artifactid>         <version>1.5.4</version>     </dependency>     <dependency>         <groupid>org.aspectj</groupid>         <artifactid>aspectjweaver</artifactid>         <version>1.8.5</version>     </dependency>   </dependencies>   <build>     <plugins>         <plugin>             <groupid>org.apache.maven.plugins</groupid>             <artifactid>maven-compiler-plugin</artifactid>             <version>3.1</version>             <configuration>                 <source>1.8</source>                 <target>1.8</target>             </configuration>         </plugin>      </plugins>     <finalname>movietimeproject</finalname>   </build> </project> 

here persistence.xml:

<?xml version="1.0" encoding="utf-8"?> <persistence version="2.1" xmlns="http://xmlns.jcp.org/xml/ns/persistence"      xmlns:xsi="http://www.w3.org/2001/xmlschema-instance"     xsi:schemalocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">     <persistence-unit name="movietime" transaction-type="jta">         <provider>org.eclipse.persistence.jpa.persistenceprovider</provider>         <properties>                 <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.driver"/>                 <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/movietime2"/>                 <property name="javax.persistence.jdbc.user" value="root"/>                 <property name="javax.persistence.jdbc.password" value="root"/>         </properties>     </persistence-unit> </persistence> 

web.xml:

<web-app xmlns:xsi="http://www.w3.org/2001/xmlschema-instance"     xmlns="http://xmlns.jcp.org/xml/ns/javaee"     xsi:schemalocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"     id="webapp_id" version="3.1">   <display-name>movietime!</display-name>    <welcome-file-list>     <welcome-file>index.jsp</welcome-file>   </welcome-file-list>    <servlet>     <servlet-name>spring</servlet-name>     <servlet-class>         org.springframework.web.servlet.dispatcherservlet     </servlet-class>     <load-on-startup>1</load-on-startup>     <!--      <init-param>         <param-name>contextconfiglocation</param-name>         <param-value>src/main/webapp/web-inf/dispatcher-servlet.xml</param-value>     </init-param>      -->   </servlet>   <servlet-mapping>     <servlet-name>spring</servlet-name>     <!-- <url-pattern>/</url-pattern> -->     <url-pattern>/</url-pattern>   </servlet-mapping>    <!--    <context-param>     <param-name>contextconfiglocation</param-name>     <param-value>src/main/webapp/web-inf/applicationcontext.xml</param-value>   </context-param>   -->    <!-- creates spring container shared servlets , filters -->   <!--    <listener>     <listener-class>org.springframework.web.context.contextloaderlistener</listener-class>   </listener>     -->  </web-app> 

spring-servlet.xml:

<beans xmlns="http://www.springframework.org/schema/beans"     xmlns:xsi="http://www.w3.org/2001/xmlschema-instance"     xmlns:p="http://www.springframework.org/schema/p"     xmlns:mvc="http://www.springframework.org/schema/mvc"     xmlns:context="http://www.springframework.org/schema/context"     xmlns:aop="http://www.springframework.org/schema/aop"     xmlns:tx="http://www.springframework.org/schema/tx"     xsi:schemalocation="     http://www.springframework.org/schema/beans          http://www.springframework.org/schema/beans/spring-beans.xsd     http://www.springframework.org/schema/context     http://www.springframework.org/schema/context/spring-context.xsd     http://www.springframework.org/schema/mvc     http://www.springframework.org/schema/mvc/spring-mvc.xsd     http://www.springframework.org/schema/aop     http://www.springframework.org/schema/aop/spring-aop-3.0.xsd     http://www.springframework.org/schema/tx     http://www.springframework.org/schema/tx/spring-tx-3.0.xsd">      <!-- use @component annotations bean definitions -->     <context:component-scan base-package="com.movietime.controller" />      <!-- use @controller annotations mvc controller definitions -->     <mvc:annotation-driven enable-matrix-variables="true"/>       <!-- add jpa support -->      <bean id="emf" class="org.springframework.orm.jpa.localcontainerentitymanagerfactorybean">         <property name="loadtimeweaver">            <bean class="org.springframework.instrument.classloading.instrumentationloadtimeweaver"/>          </property>      </bean>       <!-- add transaction support -->     <bean id="mytxmanager"        class="org.springframework.orm.jpa.jpatransactionmanager">           <property name="entitymanagerfactory" ref="emf"/>     </bean>      <!-- use @transaction annotations managing transactions -->     <tx:annotation-driven transaction-manager="mytxmanager" />      <!-- view resolver -->     <bean class=         "org.springframework.web.servlet.view.internalresourceviewresolver">       <property name="prefix" value="/web-inf/"/>     </bean>        <!-- resolves views selected rendering @controllers .jsp resources in /web-inf/pages directory -->     <!--      <bean id="viewresolver"         class="org.springframework.web.servlet.view.internalresourceviewresolver">         <property name="prefix">             <value>/web-inf/pages/</value>         </property>         <property name="suffix">             <value>.jsp</value>         </property>          </bean>      -->      <!-- configure plugin json request , response in method handler -->     <!--      <bean class="org.springframework.web.servlet.mvc.method.annotation.requestmappinghandleradapter">         <property name="messageconverters">             <list>                 <ref bean="jsonmessageconverter"/>             </list>         </property>     </bean>       -->      <!-- configure bean convert json pojo , vice versa -->     <!--      <bean id="jsonmessageconverter" class="org.springframework.http.converter.json.mappingjackson2httpmessageconverter"/>      -->  </beans> 

hellocontroller.java:

package com.movietime.controller;  import java.util.list;  import javax.annotation.resource;  import org.springframework.stereotype.controller; import org.springframework.web.bind.annotation.requestmapping; import org.springframework.web.servlet.modelandview;  import com.movietime.entities.movie; import com.movietime.dataaccesslayer.movieservice;;  /**  * @author attila  *   * presentation layer (mvc) / controller  */ @controller public class hellocontroller {      @resource     movieservice service;      @requestmapping("/index")     public modelandview welcomepage() {          list<movie> result = service.findbytitle("the eternal sunshine of");         system.out.println(result.get(0));          return new modelandview("index.jsp");     } } 

movieservice.java:

package com.movietime.dataaccesslayer;  import java.util.list;  import javax.annotation.resource;  import org.springframework.stereotype.service; import org.springframework.transaction.annotation.transactional;  import com.movietime.dao.movierepository; import com.movietime.entities.movie;  @service public class movieservice {      @resource     private movierepository movierepository;      @transactional(readonly = true)     public list<movie> findbytitle(string title) {          list<movie> result = movierepository.findmoviesbytitle(title);          return result;     } } 

movierepository.java:

package com.movietime.dao;  import java.util.list;  import javax.persistence.entitymanager; import javax.persistence.persistencecontext; import javax.persistence.query;  import org.springframework.context.annotation.scope; import org.springframework.stereotype.repository; import org.springframework.transaction.annotation.transactional;  import com.movietime.entities.movie;  @repository @scope(value="singleton") public class movierepository {      @persistencecontext     private entitymanager em;      @transactional     public void register(movie mov) {         // save employee         this.em.persist(mov);     }       @suppresswarnings("unchecked")     public list<movie> findmoviesbytitle(string title) {          string querystring = "select m movie m m.title '" + title + "%'";         query query = em.createquery(querystring, movie.class);          return query.getresultlist();     }  } 

okey, solved error changing transaction type resource_local.


Comments

Popular posts from this blog

cakephp - simple blog with croogo -

How to group boxplot outliers in gnuplot -

bash - Performing variable substitution in a string -