我正在使用GWT和Spring集成为控制台编写代码。我已经学习了GWT教程,并阅读了一些关于如何使用spring qith GWT的论坛。
服务:
@RemoteServiceRelativePath("GestionUserService")
public interface GestionUserService extends RemoteService {
Collection<Usuario> dameTablaUsuarios(String entidad);
}
异步:
public interface GestionUserServiceAsync {
void dameTablaUsuarios(String entidad,AsyncCallback<Collection<Usuario>> callback);
}
Impl:
@SuppressWarnings("serial")
@Service("GestionUserService")
public class GestionUsersConsultImpl extends RemoteServiceServlet implements GestionUserService {
@Autowired
UserConsoleDBUtil utilDB;
Logger logger = Logger.getLogger(GestionUsersConsultImpl.class);
@SuppressWarnings("unchecked")
public Collection<Usuario> dameTablaUsuarios(String entidad) {
GWT.log("Log");
logger.info("He llegado al IMPL dameTablaUsuarios.======================="+entidad);
logger.info("UtilDB "+utilDB.toString());
return utilDB.getDao().getUsuarios(entidad);
}
<?xml version="1.0" encoding="UTF-8"?>
<module rename-to='userConsole'>
<!-- Inherit the core Web Toolkit stuff. -->
<inherits name='com.google.gwt.user.User' />
<!-- Compilar solamente para Firefox -->
<!--<set-property name="user.agent" value="gecko1_8"></set-property> -->
<inherits name='com.google.gwt.user.theme.standard.Standard' />
<inherits name="com.google.gwt.i18n.I18N" />
<!-- Specify the app entry point class. -->
<entry-point class='com.santander.bam.comun.userconsole.client.GestionUsers' />
<!-- English language, independent of country -->
<extend-property name="locale" values="es_ES" />
<extend-property name="locale" values="en_US" />
<extend-property name="locale" values="de_DE" />
<!-- Specify the application specific style sheet. -->
<stylesheet src='UserConsole.css' />
<!-- Specify the paths for translatable code -->
<source path='client' />
<source path='client/services' />
<source path='db/bean' />
</module>
<beans>
<!-- Activates scanning of @Autowired -->
<context:annotation-config />
<context:component-scan base-package="com.santander.bam.comun.userconsole" />
<!-- FIN Agregado de la consola gwt-spring -->
<import resource="config.xml" />
<util:constant id="VARCHAR" static-field="java.sql.Types.VARCHAR" />
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="myDataSource"/>
</bean>
<bean id="GestionUserService" class="com.santander.bam.comun.userconsole.server.GestionUsersConsultImpl"></bean>
<bean id="utilDB" class="com.santander.bam.comun.userconsole.db.UserConsoleDBUtil">
<property name="dao" ref="UserConsoleDAO" />
<property name="transactionManager" ref="transactionManager"/>
</bean>
</beans>
<beans >
<bean id="UserConsoleDAO" class="com.santander.bam.comun.userconsole.db.UserConsoleDAO">
<property name="dataSource" ref="myDataSource" />
<!-- Definicion de consultas -->
<property name="sqlUsuarios"
value=" SELECT DISTINCT (IDUSER) IDUser,
NOMBRE Nombre,
IDPerfil IDPerfil,
FECHAALTA FechaAlta,
FECHABAM FechaBAM,
FECHACON FechaConsola
FROM
A_APAMA.USERS
WHERE
EMPRESA=?" />
<property name="sqlUsuarios2"
value=" SELECT DISTINCT (IDUSER) IDUser
FROM
A_APAMA.USERS
WHERE
EMPRESA=?" />
</bean>
<bean id="myDataSource" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName" value="com.ibm.db2.jcc.DB2Driver" />
<property name="url"
value="jdbc:db2://udisapma.isban.dev.corp:60090/udisapma" />
<property name="username" value="a_apama" />
<property name="password" value="********" />
</bean>
<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="myDataSource" />
</bean>
</beans>
<?xml version="1.0" encoding="UTF-8"?>
<!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>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>
<!-- Loads and makes available the context defined in springconfig-service.xml -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<servlet>
<servlet-name>springGwtRemoteServiceServlet</servlet-name>
<servlet-class>org.spring4gwt.server.SpringGwtRemoteServiceServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>gestionUsersConsultImpl</servlet-name>
<servlet-class>com.santander.bam.comun.userconsole.server.GestionUsersConsultImpl</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>springGwtRemoteServiceServlet</servlet-name>
<url-pattern>/springGwtServices/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>gestionUsersConsultImpl</servlet-name>
<url-pattern>/userConsole/GestionUserService</url-pattern>
</servlet-mapping>
<!-- Default page to serve -->
<welcome-file-list>
<welcome-file>GestionUsers.html</welcome-file>
</welcome-file-list>
<!-- Paginas de error -->
<error-page>
<error-code>401</error-code>
<location>/accessDeny.html</location>
</error-page>
<error-page>
<error-code>500</error-code>
<location>/serverError.html</location>
</error-page>
</web-app>
AsyncCallback<Collection<Usuario>> getUserID2 = new AsyncCallback<Collection<Usuario>>() {
// Failure: muestra error
public void onFailure(Throwable caught) {
whatever;
}
// Succes: obtener usuario
public void onSuccess(Collection<Usuario> Users) {
Whatever;
}
};
gestionUservc.dameTablaUsuarios("3293", getUserID2);
编辑:如果有用,这里是错误:
com.google.gwt.user.server.rpc.unceptionedException:服务方法'public abstract java.util.collection com.santander.bam.comun.userconsole.client.gestionuserservice.dameta.lang.string)'引发意外异常:java.lang.nullpointerException(java.lang.rpc.rpc.encoderesponseForFailure(rpc.java.java:378)位于com.google.gwt.user.server.rpc.remoteserviceservlet.processPost(remoteserviceservlet.java:243)com.google.gwt.user.server.rpc.abstractremoteservlet.java:62)javax.servlet.http.httpservlet.Service(httpservlet.java:637)javax.servlet.http.httpservlet.Service(httpservlet.java:717)org.mortbay.jetty.servlet.servlet.handle(servletholder.handle der.java:487)位于org.mortbay.jetty.servlet.servlethandler.handle(servlethandler.java:362)在org.mortbay.jetty.security.securityHandler.handle(securityHandler.java:216)在org.mortbay.jetty.servlet.sessionHandler.handle(sessionHandler.java:181)在org.mortbay.jetty.handler.contextHandler.handle(contextHandler.java:729)在org.mortbay.jetty.webapp.webappcontext.handle(webappContext.handle handle(requestloghandler.java:49)在org.mortbay.jetty.handlerwrapper.handlerwrapper.handlerwrapper.handlerwrapper.handlerwrapper.handlerwrapper.handlerwrapper.java:152)在org.mortbay.jetty.server.handler(handlerwrapper.java:152),在org.mortbay.jetty.httpconnection.handler(server.java:324)在211)在org.mortbay.jetty.httpconnection.handle(httpconnection.java:380)在org.mortbay.io.nio.selectChannelEndpoint.run(Selectchannelendpoint.java:395)在org.mortbay.thread.queuedthreadpool$poolthread.run(queuedthreadpool.java:488)由:java.lang.nullpointerexception:null在com.santander.bam.comun.userconsole.server.gestionusersconsultimpl.dametablausuarios(GestionUsersConsultimpl.java:31)在sun.reflect.nativeMethodAccessorimpl.java:31)在orimpl.java:25)在java.lang.reflect.Method.invoke(Method.java:597)在com.google.gwt.user.server.rpc.rpc.invokeandencoderesponse(rpc.java:562)在com.google.gwt.user.server.rpc.remoteserviceservlet.processcall(remoteserviceservlet.java:207)在com.google.gwt.user.server.rpc.remoteserviceservlet.java:243)在tremoteServiceServlet.java:62)位于javax.servlet.http.httpservlet.service(httpservlet.javA:637)在javax.servlet.http.httpservlet.service(httpservlet.java:717)在org.mortbay.jetty.servlet.servlet.servletholder.handle(servletholder.java:487)在org.mortbay.jetty.servlet.servlethandler.handle(servlethandler.java:362)在org.mortbay.jetty.security.securityhandler.handle(securityhandler.java:216)在thandler.java:729)在org.mortbay.jetty.webapp.webappcontext.handle(webappcontext.java:405)在org.mortbay.jetty.handler.handlerWrapper.handle(handlerWrapper.java:152)在org.mortbay.jetty.handler.java:49)在org.mortbay.jetty.handler.handle(requestLoghandler.handle(handlerWrapper.handle(handlerWrapper.java:pconnection.java:505)在org.mortbay.jetty.httpconnection$requesthandler.content(httpconnection.java:843),在org.mortbay.jetty.httpParser.parsenext(httpparser.java:647)在org.mortbay.jetty.httpparser.parseAvailable(httpparser.java:211)在org.mortbay.jetty.httpconnection.handle(httpconnection.java:380)在org.mortbay.io.nio.selectchannelendpoint.run(selectchannelendpoint.java:395)在org.mortbay.thread.queuedthreadpool$poolthread.run
编辑2:这里是我的日志所说的:
2013-02-25 16:20:02,424信息[org.springframework.web.context.contextloader]-根WebApplicationContext:初始化开始2013-02-25 16:20:02,453信息[org.springframework.web.context.support.xmlWebApplicationContext]-刷新根WebApplicationContext:启动日期[Mon 2月25日16:20:02 CET 2013];上下文层次结构的根2013-02-25 16:20:02,496信息[org.springframework.beans.factory.XML.xmlBeanDefinitionReader]-从ServletContext资源[/WEB-INF/applicationContext.XML]中加载XML bean定义2013-02-25 16:20:02,696信息[org.springframework.beans.factory.XML.xmlBeanDefinitionReader]-从ServletContext资源[/WEB-INF/config.XML]中加载XML bean定义Manager“:用[Generic bean:class[org.springframework.jdbc.datasource.datasourceTransactionManager]替换[Generic bean:class[org.springframework.jdbc.datasource.datasourceTransactionManager];scope=;abstract=false;lazyinit=false;autowiremode=0;dependencycheck=0;autowiremode=true;primary=false;factorybeanname=nullr];scope=;abstract=false;lazyinit=false;autowiremode=0;dependencycheck=0;autowirecandidate=true;primary=false;factorybeanname=null;factorymethodname=null;factorymethodname=null;initmethodname=null;destroymethodname=null;在ServletContext资源[/WEB-INF/applicationcontext.xml]]2013-02-25 16:20:02,724 console.server.gestionusersconsultimpl];scope=singleton;abstract=false;lazyinit=false;autowiremode=0;dependencycheck=0;autowirecandidate=true;primary=false;factorybeanname=null;factorymethodname=null;factorymethodname=null;destroymethodname=null;在文件usersConsultimpl];scope=;abstract=false;lazyinit=false;autowiremode=0;dependencycheck=0;autowirecandidate=true;primary=false;factorybeanname=null;factorymethodname=null;factorymethodname=null;initmethodname=null;destroymethodname=null;在ServletContext资源中定义[/WEB-INF/applicationcontext.xml]]2013-02-25 16:20:02,803@3F96EE:定义beans[org.springframework.context.annotation.internalconfigurationannotationprocessor,org.springframework.context.annotation.internalautowiredanNotationprocessor,org.springframework.context.annotation.internalrequiredanNotationprocessor,org.springframework.context.annotation.internalcommonannotationprocessor,t WebApplicationContext:初始化在466 ms完成2013-02-25 16:20:10,020 INFO[com.santander.bam.comun.userconsole.server.gestionusersconsultimpl]-He llegado al IMPL DametaBlausuarios.===============================3293
似乎在方法Dametablausuarios(String entidad)
中
logger.info(“utildb”+utildb.tostring());
导致nullpointer异常
.utildb
是null
。
我是新点燃的。 步骤1:我在两个VM(ubuntu)中安装了Ignite 2.6.0,在一个VM中启动了节点。下面有COMAND。bin/ignite.sh examples/config/example-ignite.xml 步骤2:我的所有配置都在example-default.xml中 步骤3:在其他VM中执行包含datagrid逻辑的client.jar(该VM既是客户机也是节点)。 步骤
我创建了一个新示例,并将代码分为客户端和服务器端。 完整的代码可以在这里找到。 服务器端有3个版本。 服务器无Spring Boot应用程序,使用Spring Integration RSocket InboundGateway 服务器引导重用Spring RSocket autconfiguration,并通过serverrsocketmessagehandler创建ServerRSocketC
可运行和可调用 如果你在Runnable或Callable中包含你的逻辑,就可以将这些类包装在他们的Sleuth代表中。 Runnable的示例: Runnable runnable = new Runnable() { @Override public void run() { // do some work } @Override public String toString()
Jinja2 提供了一些代码来继承到其它工具,诸如框架、 Babel 库或你偏好的编辑器 的奇特的代码高亮。这里是包含的这些的简要介绍。 帮助继承的文件在 这里 可 用。 Babel 集成 Jinja 提供了用 Babel 抽取器从模板中抽取 gettext 消息的支持,抽取器的接入点 名为 jinja2.ext.babel_extract 。 Babel 支持的被作为 i18n 扩展 的 一部分
Jinja2 提供了一些代码来继承到其它工具,诸如框架、 Babel 库或你偏好的编辑器 的奇特的代码高亮。这里是包含的这些的简要介绍。 帮助继承的文件在 这里 可 用。 Babel 集成 Jinja 提供了用 Babel 抽取器从模板中抽取 gettext 消息的支持,抽取器的接入点 名为 jinja2.ext.babel_extract 。 Babel 支持的被作为 i18n 扩展 的 一部分
我有一个redis集群,有主服务器、从服务器和3个哨兵服务器。主从映射到dns名称node1-redis-dev.com、node2-redis-dev.com。redis服务器版本为2.8 我在application.properties文件中包含以下内容。 但是,当我检查StringRedisTemplate时,在JedisConnectionFactory的hostName属性下,我看到的是
sdiff key1 key2...keyN 返回所有给定key的差集 sdiffstore dstkey key1...keyN 同sdiff,并同时保存差集到dstkey下
sunion key1 key2...keyN 返回所有给定key的并集 sunionstore dstkey key1...keyN 同sunion,并同时保存并集到dstkey下