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=1038898