- 浏览: 1225509 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (353)
- java基础 (40)
- tapestry (16)
- gwt (14)
- ajax (7)
- linux (8)
- ubuntu (18)
- eclipse (6)
- dojo (2)
- javascript (7)
- maven (4)
- 日常生活 (29)
- web2.0 (2)
- jsonrpc (1)
- compass (1)
- lucene (0)
- spring (10)
- cluster (3)
- 数据结构 (2)
- sqlserver (1)
- tomcat (2)
- swing (1)
- servlet (1)
- hibernate (1)
- firefox (1)
- Java-Puzzlers (1)
- Wicket (2)
- mysql (10)
- windows (5)
- Webwork (1)
- struts2 (1)
- Seam (2)
- jboss (1)
- idea (6)
- 分布计算 (3)
- Python-Django (7)
- Hadoop (1)
- 工具 (3)
- Tokyo Tyrant (2)
- Comet (1)
- android (115)
- 音乐 (6)
- cxf (1)
- mqtt (1)
最新评论
-
hesai_vip:
学习了,感谢
gradlew wrapper使用下载到本地的gradle.zip文件安装。 -
imknown:
姚瑶大坏蛋 写道我也遇到了这个,用你这个方法,导致下拉刷新不起 ...
解决android-Ultra-Pull-To-Refresh下拉刷新组件中嵌套ViewPager的一个bug -
姚瑶大坏蛋:
我也遇到了这个,用你这个方法,导致下拉刷新不起作用了,你遇到过 ...
解决android-Ultra-Pull-To-Refresh下拉刷新组件中嵌套ViewPager的一个bug -
寐语者:
LeaderElection(String zookeeper ...
使用Zookeeper来为你的程序加上Leader Election的功能。 -
fyc0109:
博主, 安装了一部分还是报这个错误!FAILURE: Buil ...
gradlew wrapper使用下载到本地的gradle.zip文件安装。
1. 我们这里整合spring主要是用到了一个组件gwt-widgets-server 可以在http://jaist.dl.sourceforge.net/sourceforge/gwt-widget/gwt-widgets-server-0.1.2-bin.zip下载。
2. 我们使用gwt的命令(projectCreator applicationCreator )生成gwt的eclipse项目,参见:http://code.google.com/webtoolkit/gettingstarted.html
3. 导入eclipse中,导入后请看附件1.
4. 分析代码
首先看web.xml
可以看到我们增加了段GWTSpring的servlet配置,熟悉spring-web的朋友一眼就可以看出。gwt-widgets-server 正是使用了spring-web的control来做gwt的remoteServiceServlet的。他是使用了cglib或者javassist 来动态使我们的Sevice class继承RemoteServiceServlet。细心的朋友可以看到代码中的粗体部分,本来直接生成的gwt模版是"/*"的url- pattern。但是我这里为什么要在前面加上"/static"部分呢?请让我在后面为你解释。下面看看GWTSpring-servlet.xml的配置。
<beans><bean depends-on="userServiceTarget" class="org.gwtwidgets.server.spring.GWTHandler" id="urlMapping"> <property value="false" name="usingInstrumentation"><bean class="org.springframework.aop.framework.ProxyFactoryBean" id="userService">
</bean></property> </bean></beans><beans><bean depends-on="userServiceTarget" class="org.gwtwidgets.server.spring.GWTHandler" id="urlMapping"> <property value="false" name="usingInstrumentation"><bean class="org.springframework.aop.framework.ProxyFactoryBean" id="userService"> <property ref="userServiceTarget" name="target"><bean id="requestSetter"> </bean></property> </bean></property> </bean></beans> <beans><bean depends-on="userServiceTarget" class="org.gwtwidgets.server.spring.GWTHandler" id="urlMapping"> <property value="false" name="usingInstrumentation"><bean class="org.springframework.aop.framework.ProxyFactoryBean" id="userService"> <property ref="userServiceTarget" name="target"><bean id="requestSetter">我们配置了一个“/userService.rpc”的servlet mapping。你应该可以想到这个url应该就是gwt的RemoteServiceServlet的url。我不想多解释配置里面的内容,因为我也是抄的,如果仔细看的话应该可以明白,如果不明白的话可以看看gwt-widgets-server的源码。这段配置里面主要就是初始化了一个gwt的RemoteServiceServlet。他可以是任何的object。不需要显示的继承RemoteServiceServlet,一切都让org.gwtwidgets.server.spring.GWTHandler帮你解决吧。他还帮你在RemoteServiceServlet注入了httpServletRequest 和 httpServletResponse。你不需要使用通过RemoteServiceServlet.getThreadLocalRequest()去取。下面看看UserServiceImpl
这里面有个checkUser方法。在这里我发现了一个问题。gwt-widgets-server中的例子上面setRequest和setResponse方法里面的参数的类型是HttpServletRequest和HttpServletResponse但是这样的话,requst和response不能被注入。清看gwt-widgets-server中的RequestInjection class
请看上面的粗体部分他这里取的参数类型是ServletRequest和ServletResponse。所以我把UserServiceImpl中的setRequest和setResponse类型改成了ServletRequest和ServletResponse。在getRequest中cast成HttpServletRequest。ok,看看在gwt的client中怎么调用吧。
ok。到此配置结束。对了好像还忘了解释为什么要在web.xml中加上/static这段。原因是如果shell的url-pattern是/*的话,就会handler了gwt的RemoteServiceServlet的路径,这样的话remote rpc调用就总是Server error了。这时我们访问地址需要变成http://localhost:8888/static/com.javaeye.dengyin2000.truck.TruckApp/TruckApp.html 这样了。我提交了整个eclipse gwt项目所有代码但是把require lib去掉了。 需要的lib是spring-1.2.8.jar log4j-1.2.13.jar javassist-3.0.jar gwt-widgets-server-0.1.2.jar gwt-servlet.jar commons-logging-1.1.jar cglib-nodep-2.1_3.jar。请自行下载然后放到eclipse项目中的tomcat\webapps\ROOT\WEB-INF\lib\下面。你还需要把项目中引用到gwt lib的路径换成你自己机子上的。
:)
参考:http://g.georgovassilis.googlepages.com/usingthegwthandler
</bean></property> </bean></property> </bean></beans>
路径有没有换成 http://localhost:8888/static/com.javaeye.dengyin2000.truck.TruckApp/TruckApp.html 呢??
主意web.xml中的shell需要配成
2. 我们使用gwt的命令(projectCreator applicationCreator )生成gwt的eclipse项目,参见:http://code.google.com/webtoolkit/gettingstarted.html
3. 导入eclipse中,导入后请看附件1.
4. 分析代码
首先看web.xml
- xml version="1.0" encoding="UTF-8"?>
- <web-app>
- <servlet>
- <servlet-name>GWTSpring<!---->servlet-name>
- <servlet-class>
- org.springframework.web.servlet.DispatcherServlet
- <!---->servlet-class>
- <load-on-startup>1<!---->load-on-startup>
- <!---->servlet>
- <servlet-mapping>
- <servlet-name>GWTSpring<!---->servlet-name>
- <url-pattern>*.rpc<!---->url-pattern>
- <!---->servlet-mapping>
- <servlet>
- <servlet-name>shell<!---->servlet-name>
- <servlet-class>com.google.gwt.dev.shell.GWTShellServlet<!---->servlet-class>
- <!---->servlet>
- <servlet-mapping>
- <servlet-name>shell<!---->servlet-name>
- <url-pattern>/static/*<!---->url-pattern>
- <!---->servlet-mapping>
- <!---->web-app>
可以看到我们增加了段GWTSpring的servlet配置,熟悉spring-web的朋友一眼就可以看出。gwt-widgets-server 正是使用了spring-web的control来做gwt的remoteServiceServlet的。他是使用了cglib或者javassist 来动态使我们的Sevice class继承RemoteServiceServlet。细心的朋友可以看到代码中的粗体部分,本来直接生成的gwt模版是"/*"的url- pattern。但是我这里为什么要在前面加上"/static"部分呢?请让我在后面为你解释。下面看看GWTSpring-servlet.xml的配置。
- xml version="1.0" encoding="UTF-8"?>
- >
- <beans>
- <bean id="urlMapping" class="org.gwtwidgets.server.spring.GWTHandler" depends-on="userServiceTarget">
- <property name="mapping">
- <map>
- <entry key="/userService.rpc" value-ref="userService" />
- <!---->map>
- <!---->property>
- <property name="usingInstrumentation" value="false" />
- <property name="unwrappingGWTExceptions" value="true" />
- <!---->
- You can specify your own class enhancer here
- <property name="classEnhancer">
- <bean class="org.gwtwidgets.server.spring.enhancer.JavassistEnhancer"/>
- <!---->property>
- -->
- <!---->bean>
- <bean id="userServiceTarget" class="com.javaeye.dengyin2000.truck.server.impl.UserServiceImpl">
- <!---->bean>
- <bean id="userService" class="org.springframework.aop.framework.ProxyFactoryBean">
- <property name="target" ref="userServiceTarget" />
- <property name="autodetectInterfaces" value="true" />
- <property name="interceptorNames">
- <list>
- <value>requestSetter<!---->value>
- <!---->list>
- <!---->property>
- <!---->bean>
- <bean id="requestSetter"
- class="org.gwtwidgets.server.spring.RequestInjection">
- <property name="requestSetterName" value="setRequest" />
- <property name="responseSetterName" value="setResponse" />
- <!---->bean>
- <!---->beans>
<beans><bean depends-on="userServiceTarget" class="org.gwtwidgets.server.spring.GWTHandler" id="urlMapping"> <property value="false" name="usingInstrumentation"><bean class="org.springframework.aop.framework.ProxyFactoryBean" id="userService">
</bean></property> </bean></beans><beans><bean depends-on="userServiceTarget" class="org.gwtwidgets.server.spring.GWTHandler" id="urlMapping"> <property value="false" name="usingInstrumentation"><bean class="org.springframework.aop.framework.ProxyFactoryBean" id="userService"> <property ref="userServiceTarget" name="target"><bean id="requestSetter"> </bean></property> </bean></property> </bean></beans> <beans><bean depends-on="userServiceTarget" class="org.gwtwidgets.server.spring.GWTHandler" id="urlMapping"> <property value="false" name="usingInstrumentation"><bean class="org.springframework.aop.framework.ProxyFactoryBean" id="userService"> <property ref="userServiceTarget" name="target"><bean id="requestSetter">我们配置了一个“/userService.rpc”的servlet mapping。你应该可以想到这个url应该就是gwt的RemoteServiceServlet的url。我不想多解释配置里面的内容,因为我也是抄的,如果仔细看的话应该可以明白,如果不明白的话可以看看gwt-widgets-server的源码。这段配置里面主要就是初始化了一个gwt的RemoteServiceServlet。他可以是任何的object。不需要显示的继承RemoteServiceServlet,一切都让org.gwtwidgets.server.spring.GWTHandler帮你解决吧。他还帮你在RemoteServiceServlet注入了httpServletRequest 和 httpServletResponse。你不需要使用通过RemoteServiceServlet.getThreadLocalRequest()去取。下面看看UserServiceImpl
java 代码
- package com.javaeye.dengyin2000.truck.server.impl;
- import javax.servlet.ServletRequest;
- import javax.servlet.ServletResponse;
- import javax.servlet.http.HttpServletRequest;
- import com.javaeye.dengyin2000.truck.client.server.UserService;
- public class UserServiceImpl implements UserService {
- private static ThreadLocal<servletrequest> servletRequest = </servletrequest>new ThreadLocal<servletrequest>(); </servletrequest>
- private static ThreadLocal<servletresponse> servletResponse = </servletresponse>new ThreadLocal<servletresponse>(); </servletresponse>
- public void setRequest(ServletRequest request) {
- servletRequest.set(request);
- }
- public void setResponse(ServletResponse request) {
- servletResponse.set(request);
- }
- protected HttpServletRequest getRequest() {
- return (HttpServletRequest) servletRequest.get();
- }
- public boolean checkUser(String userName, String password) {
- if ("denny".equals(userName) && "123456".equals(password)) {
- getRequest().getSession().setAttribute("user", userName);
- return Boolean.TRUE;
- }
- return Boolean.FALSE;
- }
- }
这里面有个checkUser方法。在这里我发现了一个问题。gwt-widgets-server中的例子上面setRequest和setResponse方法里面的参数的类型是HttpServletRequest和HttpServletResponse但是这样的话,requst和response不能被注入。清看gwt-widgets-server中的RequestInjection class
java 代码
- package org.gwtwidgets.server.spring;
- import java.lang.reflect.Method;
- import javax.servlet.ServletRequest;
- import javax.servlet.ServletResponse;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import org.aopalliance.intercept.MethodInterceptor;
- import org.aopalliance.intercept.MethodInvocation;
- /**
- * Method interceptor that injects the current {@link HttpServletRequest} and
- * the current {@link HttpServletResponse} via reflection to a target. You must specify
- * the setter names via {@link #setRequestSetterName(String)} and {@link #setResponseSetterName(String)}
- * otherwise they will fail silently. These setters can and must have only a single argument
- * namely {@link ServletRequest} and {@link ServletResponse} respectively.
- *
- * @author George Georgovassilis
- *
- */
- public class RequestInjection implements MethodInterceptor {
- protected String requestSetterName;
- protected String responseSetterName;
- private void setRequestOnTarget(HttpServletRequest request, HttpServletResponse response, Object target)
- throws Exception {
- if (requestSetterName != null)
- try {
- Method method = target.getClass().getMethod(requestSetterName,
- new Class[] { ServletRequest.class });
- method.invoke(target, new Object[] { request });
- } catch (NoSuchMethodException e) {
- }
- if (responseSetterName != null)
- try {
- Method method = target.getClass().getMethod(responseSetterName,
- new Class[] { ServletResponse.class });
- method.invoke(target, new Object[] { response });
- } catch (NoSuchMethodException e) {
- }
- }
- public Object invoke(MethodInvocation invocation) throws Throwable {
- Object target = invocation.getThis();
- setRequestOnTarget(GWTSpringController.getRequest(), GWTSpringController.getResponse(), target);
- return invocation.proceed();
- }
- /**
- * Specify the name of the setter method that can be invoked to set the
- * current request and response on the target. If the method does not
- * exist on the target, it is silently discarded.
- *
- * @param setterName
- */
- public void setRequestSetterName(String setterName) {
- this.requestSetterName = setterName;
- }
- /**
- * Specify the name of the setter method that can be invoked to set the
- * current response on the target. If the method does not exist on the
- * target, it is silently discarded.
- *
- * @param setterName
- */
- public void setResponseSetterName(String setterName) {
- this.responseSetterName = setterName;
- }
- }
请看上面的粗体部分他这里取的参数类型是ServletRequest和ServletResponse。所以我把UserServiceImpl中的setRequest和setResponse类型改成了ServletRequest和ServletResponse。在getRequest中cast成HttpServletRequest。ok,看看在gwt的client中怎么调用吧。
java 代码
- package com.javaeye.dengyin2000.truck.client;
- import com.google.gwt.core.client.EntryPoint;
- import com.google.gwt.core.client.GWT;
- import com.google.gwt.user.client.Window;
- import com.google.gwt.user.client.rpc.AsyncCallback;
- import com.google.gwt.user.client.rpc.ServiceDefTarget;
- import com.google.gwt.user.client.ui.Button;
- import com.google.gwt.user.client.ui.ClickListener;
- import com.google.gwt.user.client.ui.DockPanel;
- import com.google.gwt.user.client.ui.FlexTable;
- import com.google.gwt.user.client.ui.HTML;
- import com.google.gwt.user.client.ui.PasswordTextBox;
- import com.google.gwt.user.client.ui.RootPanel;
- import com.google.gwt.user.client.ui.TextBox;
- import com.google.gwt.user.client.ui.Widget;
- import com.javaeye.dengyin2000.truck.client.server.UserService;
- import com.javaeye.dengyin2000.truck.client.server.UserServiceAsync;
- /**
- * Entry point classes define
onModuleLoad()
. - */
- public class TruckApp implements EntryPoint {
- private TextBox userName;
- private PasswordTextBox password;
- private Button submit;
- private FlexTable loginTable;
- public static final HTML HEAD_TITLE = new HTML(");
- private UserServiceAsync userService;
- /**
- * This is the entry point method.
- */
- public void onModuleLoad() {
- DockPanel panel = new DockPanel();
- panel.setVerticalAlignment(DockPanel.ALIGN_MIDDLE);
- panel.setHorizontalAlignment(DockPanel.ALIGN_CENTER);
- submit = new Button("提交");
- submit.addClickListener(new ClickListener(){
- public void onClick(Widget sender) {
- // TODO check the user for validate
- getUserClientService().checkUser(userName.getText(), password.getText(), new AsyncCallback(){
- public void onFailure(Throwable caught) {
- Window.alert("Server error!");
- }
- public void onSuccess(Object result) {
- if (((Boolean)result).booleanValue() == true){
- Window.alert("Login successfully!");
- }else{
- Window.alert("Login failed!");
- }
- }
- });
- }
- });
- userName = new TextBox();
- password = new PasswordTextBox();
- loginTable = createLoginTable();
- panel.setWidth("100%");
- panel.setHeight("100%");
- loginTable.setWidget(2, 0, submit);
- panel.add(loginTable, DockPanel.CENTER);
- panel.add(HEAD_TITLE, DockPanel.NORTH);
- RootPanel.get().add(panel);
- }
- private FlexTable createLoginTable() {
- FlexTable table = new FlexTable();
- table.setText(0, 0, "用户名:");
- table.setWidget(0, 1, userName);
- table.setText(1, 0, "密 码:");
- table.setWidget(1, 1, password);
- table.setStyleName("ks-layouts-Label");
- return table;
- }
- private UserServiceAsync getUserClientService(){
- if (userService == null){
- userService = (UserServiceAsync) GWT.create(UserService.class);
- ServiceDefTarget endPoint = (ServiceDefTarget) userService;
- String moduleRelativeURL = "/userService.rpc";
- endPoint.setServiceEntryPoint(moduleRelativeURL);
- }
- return userService;
- }
- }
java 代码
- package com.javaeye.dengyin2000.truck.client.server;
- import com.google.gwt.user.client.rpc.RemoteService;
- public interface UserService extends RemoteService {
- boolean checkUser(String userName, String password);
- }
java 代码
- package com.javaeye.dengyin2000.truck.client.server;
- import com.google.gwt.user.client.rpc.AsyncCallback;
- public interface UserServiceAsync {
- void checkUser(String userName, String password, AsyncCallback callback);
- }
ok。到此配置结束。对了好像还忘了解释为什么要在web.xml中加上/static这段。原因是如果shell的url-pattern是/*的话,就会handler了gwt的RemoteServiceServlet的路径,这样的话remote rpc调用就总是Server error了。这时我们访问地址需要变成http://localhost:8888/static/com.javaeye.dengyin2000.truck.TruckApp/TruckApp.html 这样了。我提交了整个eclipse gwt项目所有代码但是把require lib去掉了。 需要的lib是spring-1.2.8.jar log4j-1.2.13.jar javassist-3.0.jar gwt-widgets-server-0.1.2.jar gwt-servlet.jar commons-logging-1.1.jar cglib-nodep-2.1_3.jar。请自行下载然后放到eclipse项目中的tomcat\webapps\ROOT\WEB-INF\lib\下面。你还需要把项目中引用到gwt lib的路径换成你自己机子上的。
:)
参考:http://g.georgovassilis.googlepages.com/usingthegwthandler
</bean></property> </bean></property> </bean></beans>
评论
11 楼
dengyin2000
2007-03-12
vicself 写道
我引入你的project,但是在hosted mode 下出现以下错误:
[ERROR] Unable to find 'userService/rpc.gwt.xml' on your classpath; could be a typo, or maybe you forgot to include a classpath entry for source?
那些依赖包都放好,什么原因啊?
谢谢。
[ERROR] Unable to find 'userService/rpc.gwt.xml' on your classpath; could be a typo, or maybe you forgot to include a classpath entry for source?
那些依赖包都放好,什么原因啊?
谢谢。
路径有没有换成 http://localhost:8888/static/com.javaeye.dengyin2000.truck.TruckApp/TruckApp.html 呢??
主意web.xml中的shell需要配成
<servlet> <servlet-name>shell</servlet-name> <servlet-class>com.google.gwt.dev.shell.GWTShellServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>shell</servlet-name> <url-pattern>/static/*</url-pattern> </servlet-mapping>
10 楼
vicself
2007-03-12
我引入你的project,但是在hosted mode 下出现以下错误:
[ERROR] Unable to find 'userService/rpc.gwt.xml' on your classpath; could be a typo, or maybe you forgot to include a classpath entry for source?
那些依赖包都放好,什么原因啊?
谢谢。
[ERROR] Unable to find 'userService/rpc.gwt.xml' on your classpath; could be a typo, or maybe you forgot to include a classpath entry for source?
那些依赖包都放好,什么原因啊?
谢谢。
9 楼
dengyin2000
2007-03-09
还是没有搞定, 可以用了feditor后不能用bbcode了
8 楼
dearwolf
2007-03-09
bbcode排版我还没学会....但是我重新粘帖以后就没问题了的说,你可以看看我这个帖子:
http://www.iteye.com/topic/58265
http://www.iteye.com/topic/58265
7 楼
dengyin2000
2007-03-09
重新粘贴还是有问题。 在写的时候没有问题, 提交后就乱了。 回家后, 我改成bbcode排版吧。 听说bbcode没有问题。
6 楼
dearwolf
2007-03-09
xml格式的编辑器有bug,你第一次粘贴进去以后,以后再改文章的时候,基本上都要重新粘贴一边才行
5 楼
dengyin2000
2007-03-08
报表是server端的事情吧。
4 楼
adablue77
2007-03-08
可惜还是初级会员不能投票,呵呵
早点看到这篇文章就好了,我是参考GwtPetstore那个项目,我水平太低,分析了好久才模仿成功的.
兄台有没有关于Gwt和报表结合使用相关的文章?
早点看到这篇文章就好了,我是参考GwtPetstore那个项目,我水平太低,分析了好久才模仿成功的.
兄台有没有关于Gwt和报表结合使用相关的文章?
3 楼
dengyin2000
2007-03-08
dengyin2000 写道
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id="urlMapping" class="org.gwtwidgets.server.spring.GWTHandler" depends-on="userServiceTarget">
<property name="mapping">
<map>
<entry key="/userService.rpc" value-ref="userService" />
</map>
</property>
<property name="usingInstrumentation" value="false" />
<property name="unwrappingGWTExceptions" value="true" />
<!--
You can specify your own class enhancer here
<property name="classEnhancer">
<bean class="org.gwtwidgets.server.spring.enhancer.JavassistEnhancer"/>
</property>
-->
</bean>
<bean id="userServiceTarget" class="com.javaeye.dengyin2000.truck.server.impl.UserServiceImpl">
</bean>
<bean id="userService" class="org.springframework.aop.framework.ProxyFactoryBean">
<property name="target" ref="userServiceTarget" />
<property name="autodetectInterfaces" value="true" />
<property name="interceptorNames">
<list>
<value>requestSetter</value>
</list>
</property>
</bean>
<bean id="requestSetter"
class="org.gwtwidgets.server.spring.RequestInjection">
<property name="requestSetterName" value="setRequest" />
<property name="responseSetterName" value="setResponse" />
</bean>
</beans>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id="urlMapping" class="org.gwtwidgets.server.spring.GWTHandler" depends-on="userServiceTarget">
<property name="mapping">
<map>
<entry key="/userService.rpc" value-ref="userService" />
</map>
</property>
<property name="usingInstrumentation" value="false" />
<property name="unwrappingGWTExceptions" value="true" />
<!--
You can specify your own class enhancer here
<property name="classEnhancer">
<bean class="org.gwtwidgets.server.spring.enhancer.JavassistEnhancer"/>
</property>
-->
</bean>
<bean id="userServiceTarget" class="com.javaeye.dengyin2000.truck.server.impl.UserServiceImpl">
</bean>
<bean id="userService" class="org.springframework.aop.framework.ProxyFactoryBean">
<property name="target" ref="userServiceTarget" />
<property name="autodetectInterfaces" value="true" />
<property name="interceptorNames">
<list>
<value>requestSetter</value>
</list>
</property>
</bean>
<bean id="requestSetter"
class="org.gwtwidgets.server.spring.RequestInjection">
<property name="requestSetterName" value="setRequest" />
<property name="responseSetterName" value="setResponse" />
</bean>
</beans>
2 楼
dengyin2000
2007-03-08
调整格式花了一个小时,基本上每种格式都试过了。 还是不行。请看附件里面的文件吧。java代码的格式没有问题。
1 楼
dengyin2000
2007-03-08
xml格式不正确,浪费了很多时间呀。本以为java格式是正确的,想用java格式。可是出来更吓人。
发表评论
-
避免调试大型gwt项目中容易出现的out of memory error。
2010-11-02 17:30 1975我们在调试稍大些的gwt项目(用run方式也一样)非常容易出现 ... -
Integrate gwt + mvp4g + gwt-incubator-lib + Spring 3.0.2 + Spring Security 2
2010-05-08 17:13 1849Work successfully on integratin ... -
使用maven来创建和管理你的gwt1.6项目
2009-07-03 10:52 1081下面这段代码就是创建gwt1.6项目的maven命令。 引用 ... -
Maven 2 Plugin for the Google Web Toolkit
2008-09-21 22:12 1279http://code.google.com/p/gwt-ma ... -
让gwt在linux 64位机上跑起来
2008-07-22 11:22 2737gwt本身只提供32位的lib。所以你用64位的jdk去跑的话 ... -
The MyGWT Library--Extjs looking widgets, no external JS
2007-10-17 15:46 2978MyGWT is an open source Java li ... -
READING GWT IN ACTION
2007-09-17 10:56 2031公司即将用gwt重写一个项目。 把GWT IN ACTION从 ... -
GWT中有没有Model的概念呀(就是可以绑定textField的值到某个对象)
2007-09-13 17:37 4110如果我有个domain 对象有许多的property,如果每个 ... -
GWT的loading indicator(装载指示器)
2007-03-21 23:32 3342本文参考:http://groups.google.com/g ... -
小试GWT
2006-10-24 16:00 1863当gwt发布的时候我就初略的看了gwt的文档。当时没有在注意这 ... -
让GWT的FlexTable支持双击(double click)
2006-11-23 16:00 2800Each event has a set of browser ... -
Echo2。 Echo2 is the next-generation of the Echo Web Framewor
2006-11-10 13:14 3138主页:http://www.nextapp.com/platf ... -
关于gwt的帖子很少呀。
2006-10-25 09:45 9002javaeye关于gwt的帖子很少呀。 搜索整个论坛才发现两篇 ...
相关推荐
【GWT整合Spring】是指将Google Web Toolkit (GWT) 应用程序与Spring框架集成,以便利用Spring的强大功能,如依赖注入、事务管理、安全控制等。GWT 是一个用于构建高性能、富客户端Web应用的Java开发工具,而Spring...
综上所述,"gwt+spring+hibernate"的整合旨在展示如何在Java Web应用中同时利用GWT的富客户端特性、Spring的架构优势和Hibernate的数据持久化能力。通过这样的整合,开发者可以构建出用户体验良好、业务逻辑清晰且...
【标题】"GWT+Spring demo- springgwt_sudoku" 涉及的主要知识点是Google Web Toolkit (GWT) 和Spring框架的整合应用。这是一个实际的项目示例,展示了如何将GWT的客户端能力与Spring的服务器端功能相结合,以创建一...
本项目"smartGwt、spring、Mybatis整合"就是一个很好的例子,它将三种流行的技术——SmartGWT、Spring和Mybatis融合在一起,创建了一个包含登录功能和分页查询功能的应用。以下是关于这三个技术及其整合方式的详细...
【GWT与Spring整合】是现代企业级应用开发中的一个重要话题。Google Web Toolkit (GWT) 是一个由Google开发的开源工具包,它允许开发者使用Java编写富互联网应用(RIA),然后自动将其编译为高效的JavaScript代码。...
首先,整合GWT和Spring的主要目标是利用GWT的客户端功能和Spring的服务器端能力。这通常涉及以下步骤: 1. **配置Spring**:在服务器端,我们需要创建一个Spring配置文件(如`applicationContext.xml`),定义bean...
标题 "gwt spring整合资源下载" 暗示了这个压缩包包含的是一些关于将Google Web Toolkit (GWT) 和Spring框架整合的资源。GWT是一个用于构建高性能、交互式JavaScript应用程序的Java开发框架,而Spring是一个广泛使用...
为了整合这三个框架,开发者需要配置Spring的ApplicationContext,声明SmartGWT的视图组件和Spring的业务层bean。同时,需要设置Hibernate的SessionFactory,通过Hibernate的Configuration类加载数据库配置,并创建...
GWT(Google Web Toolkit)和Spring框架的集成是...此外,还可以了解到如何整合数据库操作,以及Spring的依赖注入和事务管理功能。这个例子对于理解GWT和Spring的集成原理,以及实践Web应用开发具有很高的参考价值。
标题 "Ext-Gwt(GWT)开发实例(整合Spring +Hibernate)" 涉及到的是一个实际项目开发的教程,其中结合了三个重要的技术框架:Google Web Toolkit (GWT),Spring 和 Hibernate。这个实例旨在展示如何在Web应用开发中...
标题 "gwt-spring" 指的是一个整合了 Google Web Toolkit (GWT) 和 Spring 框架的示例项目。GWT 是一个用于构建和优化富互联网应用程序(RIA)的开发工具,而 Spring 是一个广泛使用的 Java 应用程序开发框架,尤其...
SmartGwt、Mybatis与Spring的整合是企业级Java应用开发中的常见技术栈组合,这三种框架各有其专长,可以高效地构建出强大的后台系统。SmartGwt是一款基于GWT(Google Web Toolkit)的开源UI组件库,提供丰富的用户...
将GXT、GWT与Spring结合使用,可以构建出高效、可维护且功能齐全的企业级Web应用。 GXT是Ext JS的一个Java版本,提供了大量的桌面级UI组件,如表格、图表、树形视图等,同时还支持数据绑定和分页功能。GXT的优势...
本篇文章将聚焦于如何在EXT-GWT中整合Spring框架和Hibernate ORM,以实现高效的数据操作。 首先,让我们了解EXT-GWT(GXT)的核心概念。EXT-GWT是GWT的一个扩展,它提供了大量的UI组件,如表格、树、表单等,以及...
GWT整合Spring时需要这个包,在官网上没有最新的jar包,这是自己用jar命令生成的,并测试可以使用。
GSH:spring3.1.0M2+Hibernate3.5+GWT2.4+JPA+Annotation+Spring4gwt0.0.1亲手整合,也可以上新浪博客去看 http://blog.sina.com.cn/s/blog_687dfecb0100yrmf.html
3. **GWT 与 Spring 的整合** - **Spring-GWT-RPC**:GWT的Remote Procedure Call (RPC)机制可以与Spring的AOP和DI集成,实现服务端的Spring Bean作为GWT RPC的服务端点。这样,客户端可以直接调用服务端的业务逻辑...