Oracle数据库触发器如何调用Java程序实现Openfire消息推送

本文档详细介绍了如何通过Oracle数据库触发器调用Java程序来实现Openfire消息推送。首先,你需要准备Openfire服务端、Spark客户端及相关jar包。接着,配置Openfire数据库连接,编写Java程序,将程序和jar包加载到Oracle数据库中。然后,创建Oracle函数和触发器,并为Oracle用户授予相应权限。最后,通过测试验证触发器的正确性。若遇到问题,可参考博主提供的教程。
摘要由CSDN通过智能技术生成

写在前面,要想实现整个过程的成功执行请先准备以下文件:

1. 登陆Openfire服务端以及Spark客户端相关程序(openfire_4_0_1.exe、spark_2_7_6.exe)

2. 连接Openfire和Oracle相关的jar包(presence.jar、smack.jar、smackx-debug.jar、smackx.jar、ojdbc.jar) 

Step1:安装Openfire服务端并配置数据库连接,配置参考《Openfire服务器安装与配置教程

Step2:在Eclipse等IDE开发工具中编写Java Application程序并导入smack的3个jar包

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
import org.jivesoftware.smack.Chat;
import org.jivesoftware.smack.XMPPConnection;
import org.jivesoftware.smack.packet.Message;
import org.jivesoftware.smackx.MessageEventManager;

/**
 * Openfire服务端发送消息到指定客户端账号
 * 
 * @author xiaolj
 * @date 2016-01-05
 */
public class SendMsgFunc {

  public static void main(String args[]) {

       //参数1:openfire服务端创建的账号(发送消息前请先用Spark客户端登录10000账号)
       //参数2:需要发送的消息内容
       int status = sendImMessage("10000", "主减装配一线设备异常,请及时处理!【反馈人:张三;联系电话:13883638681】");
       System.err.println(status);
  }

  /**
   * 根据返回状态确认是否发送成功
   */
   public static int sendImMessage(String userid, String content) {
   
        System.out.println("开始执行消息推送");
        String ip = "127.0.0.1";//服务里IP或服务器对应主机名
        String port = "5222";// 客户端PID默认都是5222
        String domain = "server-pc";//服务器主机名或IP地址
        String adminid = "admin";//固定不变发起人(openfire服务器默认最高级权限账户)
        String pwd = "admin";//固定不变(openfire服务器默认最高级权限账户密码)
        int on_line = 0;// 是否在线

        try {

            // 判断用户是否在线:--若出现error设置插件在线状态任何权限访问
            String url = "http://127.0.0.1:9090/plugins/presence/status?jid="+ userid + "@server-pc&type=xml";
            on_line = judgUserOnline(url);

            // 建立连接发送客户端消息
            XMPPConnection con = new XMPPConnection(ip, Integer.parseInt(port));
            con.login(adminid, pwd);
            Chat chat = con.createChat(userid + "@" + domain);
            Message msg = 
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值