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

Reply via email to