Hello,
Actually I have developed an Application integrating "GWT+Spring
+Hibernate" in the Hosted mode , with the help of the below given
links by you -
Part One :http://eggsylife.blogspot.com/2007/10/well-this-tutorial-
aims-at-helping.html
Part Two:
http://eggsylife.blogspot.com/2007/11/hibernate-spring-google-web-toolkit.html
Part Three:
http://eggsylife.blogspot.com/2008/02/hibernate-spring-google-web-toolkit.html
Now I am getting many warnings in this application, but the warning I
am unable to solve is :
[WARN]StandardContext[]Exception while dispatching incoming RPC call
com.google.gwt.user.server.rpc.UnexpectedException: Service method
'public abstract java.util.List
com.company.client.rpc.TeacherService.getPupils(java.lang.Integer)'
threw an unexpected exception: java.lang.NoClassDefFoundError: org/
springframework/context/ApplicationContext
at com.google.gwt.user.server.rpc.RPC.encodeResponseForFailure
(RPC.java:360)
at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse
(RPC.java:546)
at com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall
(RemoteServiceServlet.java:164)
at com.google.gwt.user.server.rpc.RemoteServiceServlet.doPost
(RemoteServiceServlet.java:86)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at com.google.gwt.dev.shell.GWTShellServlet.service
(GWTShellServlet.java:289)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter
(ApplicationFilterChain.java:237)
at org.apache.catalina.core.ApplicationFilterChain.doFilter
(ApplicationFilterChain.java:157)
at org.apache.catalina.core.StandardWrapperValve.invoke
(StandardWrapperValve.java:214)
at org.apache.catalina.core.StandardValveContext.invokeNext
(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke
(StandardPipeline.java:520)
at org.apache.catalina.core.StandardContextValve.invokeInternal
(StandardContextValve.java:198)
at org.apache.catalina.core.StandardContextValve.invoke
(StandardContextValve.java:152)
at org.apache.catalina.core.StandardValveContext.invokeNext
(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke
(StandardPipeline.java:520)
at org.apache.catalina.core.StandardHostValve.invoke
(StandardHostValve.java:137)
at org.apache.catalina.core.StandardValveContext.invokeNext
(StandardValveContext.java:104)
at org.apache.catalina.valves.ErrorReportValve.invoke
(ErrorReportValve.java:118)
at org.apache.catalina.core.StandardValveContext.invokeNext
(StandardValveContext.java:102)
at org.apache.catalina.core.StandardPipeline.invoke
(StandardPipeline.java:520)
at org.apache.catalina.core.StandardEngineValve.invoke
(StandardEngineValve.java:109)
at org.apache.catalina.core.StandardValveContext.invokeNext
(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke
(StandardPipeline.java:520)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:
929)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:
160)
at org.apache.coyote.http11.Http11Processor.process
(Http11Processor.java:799)
at org.apache.coyote.http11.Http11Protocol
$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt
(PoolTcpEndpoint.java:577)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run
(ThreadPool.java:683)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.NoClassDefFoundError: org/springframework/context/
ApplicationContext
at com.company.server.gwt.TeacherServiceImpl.getPupils
(TeacherServiceImpl.java:28)
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 com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse
(RPC.java:527)
at com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall
(RemoteServiceServlet.java:164)
at com.google.gwt.user.server.rpc.RemoteServiceServlet.doPost
(RemoteServiceServlet.java:86)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at com.google.gwt.dev.shell.GWTShellServlet.service
(GWTShellServlet.java:289)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter
(ApplicationFilterChain.java:237)
at org.apache.catalina.core.ApplicationFilterChain.doFilter
(ApplicationFilterChain.java:157)
at org.apache.catalina.core.StandardWrapperValve.invoke
(StandardWrapperValve.java:214)
at org.apache.catalina.core.StandardValveContext.invokeNext
(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke
(StandardPipeline.java:520)
at org.apache.catalina.core.StandardContextValve.invokeInternal
(StandardContextValve.java:198)
at org.apache.catalina.core.StandardContextValve.invoke
(StandardContextValve.java:152)
at org.apache.catalina.core.StandardValveContext.invokeNext
(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke
(StandardPipeline.java:520)
at org.apache.catalina.core.StandardHostValve.invoke
(StandardHostValve.java:137)
at org.apache.catalina.core.StandardValveContext.invokeNext
(StandardValveContext.java:104)
at org.apache.catalina.valves.ErrorReportValve.invoke
(ErrorReportValve.java:118)
at org.apache.catalina.core.StandardValveContext.invokeNext
(StandardValveContext.java:102)
at org.apache.catalina.core.StandardPipeline.invoke
(StandardPipeline.java:520)
at org.apache.catalina.core.StandardEngineValve.invoke
(StandardEngineValve.java:109)
at org.apache.catalina.core.StandardValveContext.invokeNext
(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke
(StandardPipeline.java:520)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:
929)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:
160)
at org.apache.coyote.http11.Http11Processor.process
(Http11Processor.java:799)
at org.apache.coyote.http11.Http11Protocol
$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt
(PoolTcpEndpoint.java:577)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run
(ThreadPool.java:683)
at java.lang.Thread.run(Unknown Source)
I am sending you the Structure of few of the classes due to which I
feel I got the warning, those are :
1) applicationContext.xml -
<?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:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation=" http://www.springframework.org/schema/beans
classpath:spring-beans-2.0.xsd http://www.springframework.org/schema/tx
classpath:spring-tx-2.0.xsd http://www.springframework.org/schema/aop
classpath:spring-aop-2.0.xsd">
<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName">
<value>org.hsqldb.jdbcDriver</value>
</property>
<property name="url">
<value>>jdbc:hsqldb:hsql://localhost/testdatabase</value>
</property>
<property name="username">
<value>root</value>
</property>
<property name="password">
<value>root</value>
</property>
<property name="initialSize">
<value>2</value>
</property>
<property name="maxActive">
<value>5</value>
</property>
<property name="maxIdle">
<value>2</value>
</property>
</bean>
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="dataSource"/>
</property>
<property name="configLocation">
<value>hibernate.cfg.xml</value>
</property>
<property name="configurationClass">
<value>org.hibernate.cfg.AnnotationConfiguration</value>
</property>
<property name="hibernateProperties">
<props>
<prop
key="hibernate.dialect">org.hibernate.dialect.HSQLDialect</prop>
<prop key="show_sql">true</prop>
</props>
</property>
</bean>
<bean id="txManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
<!-- enable the configuration of transactional behavior based on
annotations -->
<tx:annotation-driven transaction-manager="txManager" proxy-
target-class="false" />
<bean id="pupilCollection"
class="com.company.server.domain.PupilCollectionImpl"
scope="prototype"> <property name="sessionFactory"><ref
bean="sessionFactory"/></property> </bean>
</beans>
2) MyApplication.java -
package com.company.client;
import java.util.Iterator;
import com.company.client.dto.PupilDTO;
import com.company.client.model.Observer;
import com.company.client.model.Subject;
import com.company.client.model.TeacherModel;
import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.core.client.GWT;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.ClickListener;
import com.google.gwt.user.client.ui.HTML;
import com.google.gwt.user.client.ui.HorizontalPanel;
import com.google.gwt.user.client.ui.RootPanel;
import com.google.gwt.user.client.ui.TextBox;
import com.google.gwt.user.client.ui.VerticalPanel;
import com.google.gwt.user.client.ui.Widget;
public class MyApplication implements EntryPoint, Observer
{
private TeacherModel model = null;
private VerticalPanel display = null;
private VerticalPanel resultsPanel = null;
/** * This is the entry point method. */
public void onModuleLoad()
{
model = new TeacherModel();
display = new VerticalPanel();
model.addObserver(this);
HorizontalPanel searchPanel = new HorizontalPanel();
final TextBox teacherIdBox= new TextBox();
final Button button = new Button("Search");
GWT.log("button added",null);
button.addClickListener(new
ClickListener()
{
public void onClick(Widget sender)
{
resultsPanel.add(new HTML("Searching...."));
GWT.log("addClickListener call",null);
System.out.println("addClickListener
call1_"+teacherIdBox.getText
());
GWT.log("addClickListener
call"+teacherIdBox.getText(),null);
model.getPupils(new Integer(teacherIdBox.getText()));
GWT.log("after model.getPupils ",null);
} });
searchPanel.add(teacherIdBox);
searchPanel.add(button);
resultsPanel = new VerticalPanel();
display.add(searchPanel);
display.add(resultsPanel);
GWT.log("database",null);
RootPanel.get("database").add(display);
GWT.log("database",null);
}
public void update(Subject o) {
if ( model.getPupils() != null &&
model.getPupils().size() > 0)
{
GWT.log("database",null);
resultsPanel.clear();
for( Iterator<?> it =
model.getPupils().iterator(); it.hasNext
();) {
PupilDTO dto =
(PupilDTO)it.next();
GWT.log("database",null);
resultsPanel.add(new
HTML(dto.getName()));
} }
}
}
3) ContextUtil.java -
package com.company.spring;
import org.springframework.context.ApplicationContext;
import
org.springframework.context.support.ClassPathXmlApplicationContext;
public class ContextUtil{
private static ApplicationContext context = null;
private ContextUtil( ) {
super();
}
public static ApplicationContext getContext( ) {
// Load up our Application context
if (context == null) {
context = new ClassPathXmlApplicationContext
("applicationContext.xml") ;
}
return context;
}
}
4) TeacherService.java -
package com.company.client.rpc;
import java.util.List;
import com.google.gwt.user.client.rpc.RemoteService;
public interface TeacherService extends RemoteService{
/**
* * @gwt.typeArgs <com.company.client.dto.PupilDTO>
* */
public List<?> getPupils(Integer teacherId);
}
5) TeacherServiceAsync.java -
package com.company.client.rpc;
import com.google.gwt.user.client.rpc.AsyncCallback;
public interface TeacherServiceAsync{
public void getPupils(Integer teacherId, AsyncCallback<?> callback);
}
6) TeacherServiceImpl.java -
package com.company.server.gwt;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import org.springframework.beans.BeanUtils;
// import com.google.gwt.user.client.rpc.SerializationException;
import com.company.client.rpc.TeacherService;
import com.company.client.dto.PupilDTO;
import com.company.server.domain.PupilCollection;
import com.company.server.persistent.Pupil;
import com.company.spring.ContextUtil;
import com.google.gwt.user.server.rpc.RemoteServiceServlet;
public class TeacherServiceImpl extends RemoteServiceServlet
implements TeacherService{
/**
*
*/
private static final long serialVersionUID = 1L;
public List<PupilDTO> getPupils(Integer teacherId)
{
System.out.println(" getPupils method of
TeacherServiceImpl ");
List<PupilDTO> results = null;
try
{
PupilCollection<?> collection = (PupilCollection<?>)
ContextUtil.getContext().getBean("pupilCollection");
collection.getPupils(teacherId);
results = new ArrayList<PupilDTO>();
for ( Iterator<?> it = collection.getList().iterator();
it.hasNext
(); )
{
Pupil pupil = (Pupil) it.next();
PupilDTO dto = new PupilDTO();
BeanUtils.copyProperties(dto, pupil);
System.out.println(" dto : "+dto);
results.add(dto);
}
}
catch(Exception e)
{
System.out.println(" catch method of
TeacherServiceImpl ");
e.printStackTrace();
throw new RuntimeException(e);
}
return results;
}
}
Please help me in solving this problem.
Thanks,
Poonam.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Google Web Toolkit" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/Google-Web-Toolkit?hl=en
-~----------~----~----~----~------~----~------~--~---