一个消息客户端的问题

gangnet 2011-04-25 10:01:29
原来有一个类似b/s的OA 系统;登录系统后,可以通过定时刷新的方式获取自己的消息提示内容;
现在客户要求,不用打开IE 登录;就可以实现类似QQ 那样的消息提示,而且直接可以点击消息定位到相应的IE功能页面;
请问这个该怎么实现,最好有人做过类似的例子;

我的设想是:开发一个客户端,开机自动启动,然后定时去读取数据库弹出消息提示;点击连接到IE模块上;没搞过c/s;有点棘手。
分不够可以再给,请帮忙!
...全文
67 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
oO临时工Oo 2011-04-25
  • 打赏
  • 举报
回复
以下是AXIS2的一个试例:
关于AXIS的lib请到apche上去找,我当初学习的时候比较难搞的是这个配置文件:

配置文件名[server-config.wsdd],置于web-inf下:

<?xml version="1.0" encoding="UTF-8"?>
<deployment name="defaultClientConfig"
xmlns="http://xml.apache.org/axis/wsdd/"
xmlns:java="http://xml.apache.org/axis/wsdd/providers/java"
xmlns:handler="http://xml.apache.org/axis/wsdd/providers/handler">

<globalConfiguration>
<parameter name="disablePrettyXML" value="true"/>
<parameter name="dotNetSoapEncFix" value="true"/>
<parameter name="enableNamespacePrefixOptimization" value="false"/>
<requestFlow>
<handler type="java:org.apache.axis.handlers.JWSHandler">
<parameter name="scope" value="session"/>
</handler>
<handler type="java:org.apache.axis.handlers.JWSHandler">
<parameter name="scope" value="request"/>
<parameter name="extension" value=".jwr"/>
</handler>
<!-- uncomment this if you want the SOAP monitor -->
<!--
<handler type="java:org.apache.axis.handlers.SOAPMonitorHandler"/>
-->
</requestFlow>
<!-- uncomment this if you want the SOAP monitor -->
<!--
<responseFlow>
<handler type="java:org.apache.axis.handlers.SOAPMonitorHandler"/>
</responseFlow>
-->
</globalConfiguration>

<handler type="java:org.apache.axis.handlers.http.URLMapper" name="URLMapper"/>
<handler type="java:org.apache.axis.transport.local.LocalResponder" name="LocalResponder"/>
<handler type="java:org.apache.axis.handlers.SimpleAuthenticationHandler" name="Authenticate"/>

<service name="AdminService" provider="java:MSG">
<namespace>http://xml.apache.org/axis/wsdd/</namespace>
<parameter name="allowedMethods" value="AdminService"/>
<parameter name="enableRemoteAdmin" value="false"/>
<parameter name="className" value="org.apache.axis.utils.Admin"/>
</service>

<service name="Version" provider="java:RPC">
<parameter name="allowedMethods" value="getVersion"/>
<parameter name="className" value="org.apache.axis.Version"/>
</service>

<!-- ======================以上内容一般不需要修改===========================-->
<!-- ======================================================================
Services:Demo,此段包含Sevice配置实例
=======================-->
<!--
示例1: 简单 Service
情境: 包含下例代码中基本属性.所有参数传递均为元数据,即int、float、double、String、boolean等非对象数据;
可以访问此Service中所有的方法
引用: 在C#中借助于IDE引用
-->
<service name="WSTest1" provider="java:RPC"> <!-- name: 此WebService的名称;provider:工作模式 -->
<parameter name="className" value="pc.mk.ws.SayHello"/><!-- 此Service对应的实现类 -->
<parameter name="allowedMethods" value="*"/><!-- 可以访问这个Service中所有的方法 -->
</service>


<!-- ======================以下内容一般不需要修改===========================-->
<transport name="http">
<parameter name="qs:list"
value="org.apache.axis.transport.http.QSListHandler"/>
<parameter name="qs:method"
value="org.apache.axis.transport.http.QSMethodHandler"/>
<parameter name="qs:wsdl"
value="org.apache.axis.transport.http.QSWSDLHandler"/>
<requestFlow>
<handler type="URLMapper"/>
<handler type="java:org.apache.axis.handlers.http.HTTPAuthHandler"/>
</requestFlow>
</transport>

<transport name="local">
<responseFlow>
<handler type="LocalResponder"/>
</responseFlow>
</transport>

</deployment>



上面配置文件中的pc.mk.ws.SayHello为webservice的实现类,一个普通类,可不继承任何,不实现任何.

AXIS在WEB.XML中的配置,可不用修改


<servlet>
<servlet-name>AxisServlet</servlet-name>
<servlet-class>
org.apache.axis.transport.http.AxisServlet
</servlet-class>
</servlet>
<servlet>
<servlet-name>AdminServlet</servlet-name>
<servlet-class>
org.apache.axis.transport.http.AdminServlet
</servlet-class>
<load-on-startup>100</load-on-startup>
</servlet>
<servlet>
<servlet-name>SOAPMonitorService</servlet-name>
<servlet-class>
org.apache.axis.monitor.SOAPMonitorService
</servlet-class>
<init-param>
<param-name>SOAPMonitorPort</param-name>
<param-value>5001</param-value>
</init-param>
<load-on-startup>100</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>AxisServlet</servlet-name>
<url-pattern>/servlet/AxisServlet</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>AxisServlet</servlet-name>
<url-pattern>*.jws</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>AxisServlet</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>SOAPMonitorService</servlet-name>
<url-pattern>/SOAPMonitor</url-pattern>
</servlet-mapping>


查看已发布的方法是在IE地址栏输入:http://xxx/app/services
gangnet 2011-04-25
  • 打赏
  • 举报
回复
哦;妄说了,我的系统用java语言的,C# 不熟悉
oO临时工Oo 2011-04-25
  • 打赏
  • 举报
回复
我的回复不见了....有意思....

客户端可以用C#开发,界面很快就成型...
oO临时工Oo 2011-04-25
  • 打赏
  • 举报
回复
还有一个更快的办法,客户端改用C#的东西,成形快.作个托盘图标也方便.
napier 2011-04-25
  • 打赏
  • 举报
回复
用WebService比较好,以后再扩展也简单.
gangnet 2011-04-25
  • 打赏
  • 举报
回复
嗯;有没有一个例子呢;这个小东西时间比较紧张;我也看看你说的webservice;乘机学习下!
qingyuan18 2011-04-25
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 gangnet 的回复:]
我的设想是作一个很小的桌面,开机启动服务,然后定期去查数据,给出提示。
[/Quote]

做桌面端是可行的,关键是桌面客户端与远程服务器的交互是直接去查远程的数据库,还是像楼上说的调WebService

调WebService是大势所趋,毕竟你桌面客户端需要的信息量是不多的,自己连数据还要跨防火墙,加载数据库驱动,明显增大了客户端的工作量
gangnet 2011-04-25
  • 打赏
  • 举报
回复
同意老兄的看法啊;让他登录了再给他一个弹窗提示,还是不愿意,说,非要自动弹出消息;不用登录,安装客户端也愿意;无语了!

我就要最简单的,实现了就可以;关键是能给个例子吗?
我的设想是作一个很小的桌面,开机启动服务,然后定期去查数据,给出提示。
oO临时工Oo 2011-04-25
  • 打赏
  • 举报
回复
QQ把客户都带坏了...

C/S
C:主要主一个托盘图标,加上一个通信客户端的实现,每隔X的时间到服务器取消息,
S:如果简单点,S就是一个DB,否则可以开发一个服务器软件,接收客户端连接,

或者,用Webservice,服务器端发布的还是WEB应用,客户端用的却是一个桌面应用程序.
这个比较快.服务器改动也比较小,主要就是增加几个接口就好了.关于webservice可以采用Apache的AXIS/AXIS2,当然也有其它的.

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧