Hi Jean-Philippe,

That is a spring problem, not a Restlet problem, so you're right to  
post to the spring forums.

Just this once, though: it looks like the error you'd get if (as in  
the code you posted earlier) you have:

<bean id="entityManagerFactory" class="org.springfra​ 
mework.orm.jpa.Local​ContainerEntityManag​erFactoryBean">
     <property name="dataSource" ref="dataSource"/>
     <property name="persistenceUnitManager" value="persistenceUn​ 
itManager"/>
     <property name="jpaVendorAdapter" value="jpaVendor"/>
</bean>

The problem is value="persistenceUnitManager" -- you are telling  
spring to wire the String "persistenceUnitManager" into the property  
persistenceUnitManager.  The property doesn't require a String, and  
you don't have any defined PropertyEditors which convert a String into  
a PersistenceUnitManager instance, so Spring doesn't know what to do.  
You meant to say ref="persistenceUnitManager".

Rhett

On Jan 21, 2009, at 11:39 PM, Jean-Philippe Steinmetz wrote:

> Hi again,
>
> I've tried posting this question on the Spring forums but haven't  
> gotten any bites yet. I am hooking up my hibernate data source and  
> so forth in Spring and am getting an error I can't quite figure out.
>
> org.springframework.beans.factory.BeanCreationException: Error  
> creating bean with name 'entityManagerFactory' defined in  
> ServletContext resource [/WEB-INF/webservices-servlet.xml]:  
> Initialization of bean failed; nested exception is  
> org.springframework.beans.TypeMismatchException: Failed to convert  
> property value of type [java.lang.String] to required type  
> [org.springframework.orm.jpa.persistenceunit.PersistenceUnitManager]  
> for property 'persistenceUnitManager'; nested exception is  
> java.lang.IllegalArgumentException: Cannot convert value of type  
> [java.lang.String] to required type  
> [org.springframework.orm.jpa.persistenceunit.PersistenceUnitManager]  
> for property 'persistenceUnitManager': no matching editors or  
> conversion strategy found
>     at  
> org 
> .springframework 
> .beans 
> .factory 
> .support 
> .AbstractAutowireCapableBeanFactory 
> .doCreateBean(AbstractAutowireCapableBeanFactory.java:547)
>     at  
> org 
> .springframework 
> .beans.factory.support.AbstractAutowireCapableBeanFactory 
> $1.run(AbstractAutowireCapableBeanFactory.java:485)
>     at java.security.AccessController.doPrivileged(Native Method)
>     at  
> org 
> .springframework 
> .beans 
> .factory 
> .support 
> .AbstractAutowireCapableBeanFactory 
> .createBean(AbstractAutowireCapableBeanFactory.java:455)
>     at org.springframework.beans.factory.support.AbstractBeanFactory 
> $1.getObject(AbstractBeanFactory.java:251)
>     at  
> org 
> .springframework 
> .beans 
> .factory 
> .support 
> .DefaultSingletonBeanRegistry 
> .getSingleton(DefaultSingletonBeanRegistry.java:169)
>     at  
> org 
> .springframework 
> .beans 
> .factory 
> .support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:248)
>     at  
> org 
> .springframework 
> .beans 
> .factory 
> .support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:170)
>     at  
> org 
> .springframework 
> .beans 
> .factory 
> .support 
> .DefaultListableBeanFactory 
> .preInstantiateSingletons(DefaultListableBeanFactory.java:407)
>     at  
> org 
> .springframework 
> .context 
> .support 
> .AbstractApplicationContext 
> .finishBeanFactoryInitialization(AbstractApplicationContext.java:735)
>     at  
> org 
> .springframework 
> .context 
> .support 
> .AbstractApplicationContext.refresh(AbstractApplicationContext.java: 
> 369)
>     at 
> org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext 
> (FrameworkServlet.java:332)
>     at 
> org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext 
> (FrameworkServlet.java:266)
>     at org.springframework.web.servlet.FrameworkServlet.initServletBean 
> (FrameworkServlet.java:236)
>     at  
> org 
> .springframework 
> .web.servlet.HttpServletBean.init(HttpServletBean.java:126)
>     at javax.servlet.GenericServlet.init(GenericServlet.java:212)
>     at  
> org 
> .apache 
> .catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1172)
>     at  
> org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java: 
> 992)
>     at  
> org 
> .apache 
> .catalina.core.StandardContext.loadOnStartup(StandardContext.java: 
> 4058)
>     at  
> org.apache.catalina.core.StandardContext.start(StandardContext.java: 
> 4371)
>     at  
> org 
> .apache 
> .catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
>     at  
> org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java: 
> 771)
>     at  
> org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)
>     at  
> org 
> .apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java: 
> 926)
>     at  
> org 
> .apache 
> .catalina.startup.HostConfig.deployDirectories(HostConfig.java:889)
>     at  
> org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:492)
>     at org.apache.catalina.startup.HostConfig.start(HostConfig.java: 
> 1149)
>     at  
> org 
> .apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java: 
> 311)
>     at  
> org 
> .apache 
> .catalina 
> .util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
>     at  
> org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
>     at org.apache.catalina.core.StandardHost.start(StandardHost.java: 
> 719)
>     at  
> org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
>     at  
> org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
>     at  
> org.apache.catalina.core.StandardService.start(StandardService.java: 
> 516)
>     at  
> org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
>     at org.apache.catalina.startup.Catalina.start(Catalina.java:578)
>     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>     at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
>     at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
>     at java.lang.reflect.Method.invoke(Unknown Source)
>     at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
>     at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
>
> Anybody seen this before?
>
> On Wed, Jan 21, 2009 at 2:11 AM, Jerome Louvel <jerome.lou...@noelios.com 
> > wrote:
> Hi Jean-Philippe,
>
> Good to hear! To customize the status page, have a look at the  
> StatusService class and related property for your Application.
>
> Best regards,
> Jérôme Louvel
> --
> Restlet ~ Founder and Lead developer ~ http://www.restlet.org
> Noelios Technologies ~ Co-founder ~ http://www.noelios.com
>
> De : Jean-Philippe Steinmetz [mailto:caskate...@gmail.com]
> Envoyé : mardi 20 janvier 2009 23:57
>
> À : discuss@restlet.tigris.org
> Objet : Re: RESTlet + Spring
>
> Ok i've changed my depedencies to use restlet 1.1-SNAPSHOT and 2.5  
> for spring. I am getting what looks like a running system.
>
> Is there any way to customize this page...
> The server has not found anything matching the request URI
> You can get technical details here.
> Please continue your visit at our home page.
>
> Thanks again,
>
> Jean-Philippe
>
>
> On Tue, Jan 20, 2009 at 2:27 PM, Jerome Louvel <jerome.lou...@noelios.com 
> > wrote:
> Hi Jean-Philippe,
>
> I've noticed that we declare a dependency on Spring 2.5 and not on  
> the latest 2.5.6. This may be the cause of your issue.
>
> I've just updated the dependency in SVN branch 1.1 and trunk.
>
> Best regards,
> J�r�me Louvel
>
> --
> Restlet ~ Founder and Lead developer ~
> http://www.restlet.org
>
> Noelios Technologies ~ Co-founder ~ http://www.noelios.com
>
>
>
> De : Jean-Philippe Steinmetz [mailto:caskate...@gmail.com]
> Envoy� : mardi 20 janvier 2009 22:42
>
> � : discuss@restlet.tigris.org
> Objet : Re: RESTlet + Spring
>
> I'm using maven to manage all the dependencies. It's possible  
> something is incorrectly done in my pom. For Spring I am using 2.5.6  
> for spring-core, spring-context and spring-web. I am using 2.0.8 for  
> spring-hibernate3 and spring-jpa. For restlet I am using 1.1.1 for  
> everything.
>
> Here is my 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>com.webservice</groupId>
>   <artifactId>webservice</artifactId>
>   <packaging>war</packaging>
>   <version>0.3</version>
>   <name>Web Service</name>
>
>   <dependencies>
>       <!-- Servlet/Restlet -->
>       <dependency>
>       <groupId>javax.servlet</groupId>
>       <artifactId>servlet-api</artifactId>
>       <version>2.5</version>
>     </dependency>
>     <dependency>
>         <groupId>com.noelios.restlet</groupId>
>         <artifactId>com.noelios.restlet</artifactId>
>         <version>1.1.1</version>
>     </dependency>
>     <dependency>
>         <groupId>com.noelios.restlet</groupId>
>         <artifactId>com.noelios.restlet.ext.servlet</artifactId>
>         <version>1.1.1</version>
>     </dependency>
>     <dependency>
>         <groupId>com.noelios.restlet</groupId>
>         <artifactId>com.noelios.restlet.ext.spring</artifactId>
>         <version>1.1.1</version>
>     </dependency>
>     <dependency>
>         <groupId>org.restlet</groupId>
>         <artifactId>org.restlet</artifactId>
>         <version>1.1.1</version>
>     </dependency>
>     <dependency>
>         <groupId>org.restlet</groupId>
>         <artifactId>org.restlet.ext.json</artifactId>
>         <version>1.1.1</version>
>     </dependency>
>
>     <!-- Serialization -->
>     <dependency>
>         <groupId>com.thoughtworks.xstream</groupId>
>         <artifactId>xstream</artifactId>
>         <version>1.3</version>
>     </dependency>
>     <dependency>
>       <groupId>org.codehaus.jettison</groupId>
>       <artifactId>jettison</artifactId>
>       <version>1.0-RC2</version>
>     </dependency>
>
>     <!-- Persistence -->
>     <dependency>
>       <groupId>javax.persistence</groupId>
>       <artifactId>persistence-api</artifactId>
>       <version>1.0</version>
>     </dependency>
>     <dependency>
>         <groupId>org.hibernate</groupId>
>         <artifactId>hibernate-core</artifactId>
>         <version>3.3.1.GA</version>
>     </dependency>
>     <dependency>
>         <groupId>mysql</groupId>
>         <artifactId>mysql-connector-java</artifactId>
>         <version>5.1.6</version>
>     </dependency>
>
>     <!-- Spring -->
>     <dependency>
>       <groupId>org.springframework</groupId>
>       <artifactId>spring-core</artifactId>
>       <version>2.5.6</version>
>     </dependency>
>     <dependency>
>       <groupId>org.springframework</groupId>
>       <artifactId>spring-context</artifactId>
>       <version>2.5.6</version>
>     </dependency>
>     <dependency>
>       <groupId>org.springframework</groupId>
>       <artifactId>spring-hibernate3</artifactId>
>       <version>2.0.8</version>
>     </dependency>
>     <dependency>
>       <groupId>org.springframework</groupId>
>       <artifactId>spring-jpa</artifactId>
>       <version>2.0.8</version>
>     </dependency>
>     <dependency>
>       <groupId>org.springframework</groupId>
>       <artifactId>spring-web</artifactId>
>       <version>2.5.6</version>
>     </dependency>
>
>     <!--  Logging -->
>     <dependency>
>       <groupId>ch.qos.logback</groupId>
>       <artifactId>logback-classic</artifactId>
>       <version>0.9.11</version>
>     </dependency>
>     <dependency>
>       <groupId>org.slf4j</groupId>
>       <artifactId>slf4j-api</artifactId>
>       <version>1.5.3</version>
>     </dependency>
>
>     <!-- Unit Testing -->
>     <dependency>
>       <groupId>junit</groupId>
>       <artifactId>junit</artifactId>
>       <version>3.8.1</version>
>       <scope>test</scope>
>     </dependency>
>   </dependencies>
>
>   <build>
>     <plugins>
>       <plugin>
>         <groupId>org.codehaus.mojo</groupId>
>         <artifactId>tomcat-maven-plugin</artifactId>
>         <configuration>
>           <server>LocalTomcat</server>
>         </configuration>
>       </plugin>
>       <plugin>
>         <artifactId>maven-compiler-plugin</artifactId>
>         <configuration>
>           <source>1.5</source>
>           <target>1.5</target>
>           <optimize>true</optimize>
>         </configuration>
>       </plugin>
>     </plugins>
>   </build>
>
>   <repositories>
>     <repository>
>       <id>jboss</id>
>       <url>http://repository.jboss.com/maven2</url>
>       <releases>
>         <enabled>true</enabled>
>       </releases>
>       <snapshots>
>         <enabled>false</enabled>
>       </snapshots>
>     </repository>
>     <repository>
>       <id>jboss-snapshot</id>
>       <url>http://repository.jboss.org/maven2</url>
>       <releases>
>         <enabled>true</enabled>
>       </releases>
>       <snapshots>
>         <enabled>true</enabled>
>       </snapshots>
>     </repository>
>     <repository>
>       <id>restlet</id>
>       <url>http://maven.restlet.org</url>
>     </repository>
>   </repositories>
> </project>
>
>
> On Tue, Jan 20, 2009 at 12:34 PM, Rhett Sutphin <rh...@detailedbalance.net 
> > wrote:
> Hi Jean-Philippe,
>
> At first glance, the error seems to be a generic spring error -- that
> one of the wired dependencies is of the wrong type.  Looking at your
> XML, I wonder if it is failing here:
>
> >         <property name="persistenceUnitManager"
> > value="persistenceUnitManager"/>
> >         <property name="jpaVendorAdapter" value="jpaVendor"/>
>
> I think those should be "ref" instead of "value".  I haven't seen this
> particular error before, though, so I'm not sure.
>
> If it's not that, would you please let us know what versions of Spring
> and Restlet you are using?
>
> Rhett
>
> On Jan 20, 2009, at 1:04 PM, Jean-Philippe Steinmetz wrote:
>
> > Hi All,
> >
> > I'm working on integrating restlet and spring for use in a web app
> > to be run under Tomcat. After reading up on the Spring extension
> > (thank you Jerome) I have decided to go the restlet as the main
> > controller route. This is due to the fact that Spring is only being
> > used as a Dao implementation layer. I came across the
> > com.noelios.restlet.ext.spring.RestletFrameworkServlet class. Based
> > on its description it would appear this is what I should use to
> > properly set things up. Unfortunately I am getting crash errors when
> > I try and access my restlet app from a browser. I am hoping someone
> > may be able to shed some light on the situation.
> >
> > The error I am getting is:
> > java.lang.IllegalArgumentException: Value does not implement
> > specified type
> >       org.springframework.util.Assert.isTrue(Assert.java:65)
> >
> > org
> > .springframework
> > .beans
> > .factory
> > .support
> > .DefaultListableBeanFactory
> > .registerResolvableDependency(DefaultListableBeanFactory.java:325)
> >
> >       
> > org.springframework.web.context.support.WebApplicationContextUtils.registerWebApplicationScopes
> > (WebApplicationContextUtils.java:129)
> >       
> > org.springframework.web.context.support.AbstractRefreshableWebApplicationContext.postProcessBeanFactory
> > (AbstractRefreshableWebApplicationContext.java:143)
> >
> >
> > org
> > .springframework
> > .context
> > .support
> > .AbstractApplicationContext.refresh(AbstractApplicationContext.java:
> > 359)
> >       
> > org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext
> > (FrameworkServlet.java:332)
> >       
> > org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext
> > (FrameworkServlet.java:266)
> >
> >
> > org
> > .springframework
> > .web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:
> > 236)
> >
> > org
> > .springframework
> > .web.servlet.HttpServletBean.init(HttpServletBean.java:126)
> >       javax.servlet.GenericServlet.init(GenericServlet.java:212)
> >
> >
> > org
> > .apache
> > .catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
> >
> > org
> > .apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:
> > 286)
> >
> > org
> > .apache
> > .coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java: 
> 857)
> >
> >       org.apache.coyote.http11.Http11AprProtocol
> > $Http11ConnectionHandler.process(Http11AprProtocol.java:565)
> >       org.apache.tomcat.util.net.AprEndpoint 
> $Worker.run(AprEndpoint.java:
> > 1509)
> >       java.lang.Thread.run(Unknown Source)
> >
> > Here is what my web.xml file looks like:
> > <!DOCTYPE web-app PUBLIC
> >  "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
> >  "http://java.sun.com/dtd/web-app_2_3.dtd"; >
> >
> > <web-app>
> >   <display-name>Web Service</display-name>
> >
> >   <context-param>
> >       <param-name>org.restlet.application</param-name>
> >       <param-value>webservice.RestApplication</param-value>
> >   </context-param>
> >
> >   <!-- Restlet Adapter -->
> >   <servlet>
> >       <servlet-name>webservices</servlet-name>
> >       <servlet-
> > class>com.noelios.restlet.ext.spring.RestletFrameworkServlet</
> > servlet-class>
> >       <load-on-startup>1</load-on-startup>
> >   </servlet>
> >
> >   <!-- Let Restlet capture all requests -->
> >   <servlet-mapping>
> >       <servlet-name>webservices</servlet-name>
> >       <url-pattern>/*</url-pattern>
> >   </servlet-mapping>
> > </web-app>
> >
> > I also have a webservices-servlet.xml file for Spring bean
> > definition. It looks like:
> > <?xml version="1.0" encoding="UTF-8"?>
> > <beans xmlns="http://www.springframework.org/schema/beans";
> >        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
> >        xmlns:util="http://www.springframework.org/schema/util";
> >        xsi:schemaLocation="
> > http://www.springframework.org/schema/beans 
> > http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
> > http://www.springframework.org/schema/util 
> > http://www.springframework.org/schema/util/spring-util-2.5.xsd
> > ">
> >
> >     <bean id="root" class="webservice.RestApplication" />
> >
> >     <!-- Data Source -->
> >     <bean id="dataSource"
> > class="com.mchange.v2.c3p0.ComboPooledDataSource"
> >         destroy-method="close">
> >         <property name="driverClass"  
> value="com.mysql.jdbc.Driver" />
> >         <property name="jdbcUrl" value="jdbc:mysql://localhost:
> > 3306" />
> >         <property name="username" value="kfpws_user" />
> >         <property name="password" value="" />
> >
> >         <property name="initialPoolSize" value="3"/>
> >         <property name="minPoolSize" value="3"/>
> >         <property name="maxPoolSize" value="50"/>
> >         <property name="idleConnectionTestPeriod" value="200"/>
> >         <property name="acquireIncrement" value="1"/>
> >         <property name="maxStatements" value="0"/>
> >         <property name="numHelperThreads" value="3"/>
> >     </bean>
> >
> >     <!-- JPA -->
> >     <bean id="persistenceUnitManager"
> >
> > class
> > =
> > "org
> > .springframework
> > .orm.jpa.persistenceunit.DefaultPersistenceUnitManager">
> >         <property name="persistenceXmlLocations">
> >             <list>
> >                 <value>classpath:persistence.xml</value>
> >             </list>
> >         </property>
> >         <property name="defaultDataSource" ref="dataSource"/>
> >     </bean>
> >     <bean id="jpaDialect"
> > class="org.springframework.orm.jpa.vendor.HibernateJpaDialect"/>
> >     <bean id="jpaVendor"
> >
> >  
> class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
> >         <property name="showSql" value="true"/>
> >         <property name="generateDdl" value="true"/>
> >     </bean>
> >     <bean id="entityManagerFactory"
> >
> > class
> >  
> ="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
> >         <property name="dataSource" ref="dataSource"/>
> >         <property name="persistenceUnitManager"
> > value="persistenceUnitManager"/>
> >         <property name="jpaVendorAdapter" value="jpaVendor"/>
> >     </bean>
> >
> >     <!-- Tx Manager -->
> >     <bean id="transactionManager"
> > class="org.springframework.orm.jpa.JpaTransactionManager">
> >         <property name="entityManagerFactory"
> > ref="entityManagerFactory"/>
> >         <property name="dataSource" ref="dataSource"/>
> >     </bean>
> >
> > </beans>
> >
> > Any ideas what the problem is?
> >
>
> ------------------------------------------------------
> http://restlet.tigris.org/ds/viewMessage.do?dsForumId=4447&dsMessageId=1039032
>
>
>

------------------------------------------------------
http://restlet.tigris.org/ds/viewMessage.do?dsForumId=4447&dsMessageId=1042912

Reply via email to