网站首页 > java教程 正文
import os
import jpype
def open_jvm():
"""开启Java虚拟机(JVM)"""
# # 获取jvm.dll 的文件路径
# jvmPath = jpype.getDefaultJVMPath()
jpype.startJVM("-ea", convertStrings=True)
def add_jars_directory(path):
"""从给定目录中导入所有jar包,路径不能有中文,必须在开启虚拟机之前"""
if os.path.isdir(path):
jpype.addClassPath(os.path.join(path, "*"))
else:
raise TypeError("不是文件夹")
def add_jar(jar_path):
"""导入某个指定路径的jar包,,必须在开启虚拟机之前"""
if os.path.isfile(jar_path) and jar_path.endswith("jar"):
jpype.addClassPath(jar_path)
else:
raise TypeError("不是jar文件")
def java_obj(class_name):
"""给定java完整类名,获取java对象"""
return jpype.JClass(class_name)
##############################################################
def send_message(cmpp_path=r'D:\cmpp',src_terminal_id="106575218526",dest_terminal_id=["17625089882"],msg_content="5128185260073",reserve="123"):
"""
需提前将config.xml文件配置好并放在文件夹下
具体是哪个文件夹可以先运行后从报错信息中获取
: @param cmpp_path 存放Cmpp.jar和smproxy_cmpp.jar的路径
: @param src_terminal_id 源终端MSISDN号码
: @param dest_terminal_id 接收业务的MSISDN号码,可以有多个
: @param msg_content 消息内容
: @param reserve 保留内容
"""
add_jars_directory(cmpp_path) # 导入jar包
print("1")
open_jvm() # 开启java虚拟机
print("2")
# 构造短信对象
CMPPSubmitMessage = java_obj("com.huawei.smproxy.comm.cmpp.message.CMPPSubmitMessage") # 2
msg = CMPPSubmitMessage(1, # @param pk_Total 相同msg_Id消息总条数
1, # @param pk_Number 相同msg_Id的消息序号
1, # @param registered_Delivery 是否要求返回状态报告
1, # @param msg_Level 信息级别
"websms", # @param service_Id 业务类型
0, # @param fee_UserType 计费用户类型字段
"", # @param fee_Terminal_Id 被计费用户的号码
0, # @param tp_Pid GSM协议类型
0, # @param tp_Udhi GSM协议类型
15, # @param msg_Fmt 消息格式 8或15
"900100", # @param msg_Src 消息内容来源
"02", # @param fee_Type 资费类别
"10", # @param fee_Code 资费代码(以分为单位)
java_obj("java.util.Date")(jpype.java.lang.System.currentTimeMillis() + 172800000),
# @param valid_Time 存活有效期
None, # @param at_Time 定时发送时间
src_terminal_id, # @param src_Terminal_Id 源终端MSISDN号码
dest_terminal_id, # @param dest_Terminal_Id 接收业务的MSISDN号码
jpype.JString(msg_content).getBytes(), # @param msg_Content 消息内容
reserve # @param reserve 保留内容
)
# 建立连接并发送短信
return java_obj("demo.cmppdemo20.WebSMSender").getInstance().send(msg)
print("开始发短信")
send_message()
print("短信发送结束")
import os
import jpype
def open_jvm():
"""开启Java虚拟机(JVM)"""
# # 获取jvm.dll 的文件路径
# jvmPath = jpype.getDefaultJVMPath()
jpype.startJVM("-ea", convertStrings=True)
def add_jars_directory(path):
"""从给定目录中导入所有jar包,路径不能有中文,必须在开启虚拟机之前"""
if os.path.isdir(path):
jpype.addClassPath(os.path.join(path, "*"))
else:
raise TypeError("不是文件夹")
def add_jar(jar_path):
"""导入某个指定路径的jar包,,必须在开启虚拟机之前"""
if os.path.isfile(jar_path) and jar_path.endswith("jar"):
jpype.addClassPath(jar_path)
else:
raise TypeError("不是jar文件")
def java_obj(class_name):
"""给定java完整类名,获取java对象"""
return jpype.JClass(class_name)
##############################################################
def send_message(cmpp_path=r'D:\cmpp',src_terminal_id="106575218526",dest_terminal_id=["17625089882"],msg_content="5128185260073",reserve="123"):
"""
需提前将config.xml文件配置好并放在文件夹下
具体是哪个文件夹可以先运行后从报错信息中获取
: @param cmpp_path 存放Cmpp.jar和smproxy_cmpp.jar的路径
: @param src_terminal_id 源终端MSISDN号码
: @param dest_terminal_id 接收业务的MSISDN号码,可以有多个
: @param msg_content 消息内容
: @param reserve 保留内容
"""
add_jars_directory(cmpp_path) # 导入jar包
print("1")
open_jvm() # 开启java虚拟机
print("2")
# 构造短信对象
CMPPSubmitMessage = java_obj("com.huawei.smproxy.comm.cmpp.message.CMPPSubmitMessage") # 2
msg = CMPPSubmitMessage(1, # @param pk_Total 相同msg_Id消息总条数
1, # @param pk_Number 相同msg_Id的消息序号
1, # @param registered_Delivery 是否要求返回状态报告
1, # @param msg_Level 信息级别
"websms", # @param service_Id 业务类型
0, # @param fee_UserType 计费用户类型字段
"", # @param fee_Terminal_Id 被计费用户的号码
0, # @param tp_Pid GSM协议类型
0, # @param tp_Udhi GSM协议类型
15, # @param msg_Fmt 消息格式 8或15
"900100", # @param msg_Src 消息内容来源
"02", # @param fee_Type 资费类别
"10", # @param fee_Code 资费代码(以分为单位)
java_obj("java.util.Date")(jpype.java.lang.System.currentTimeMillis() + 172800000),
# @param valid_Time 存活有效期
None, # @param at_Time 定时发送时间
src_terminal_id, # @param src_Terminal_Id 源终端MSISDN号码
dest_terminal_id, # @param dest_Terminal_Id 接收业务的MSISDN号码
jpype.JString(msg_content).getBytes(), # @param msg_Content 消息内容
reserve # @param reserve 保留内容
)
# 建立连接并发送短信
return java_obj("demo.cmppdemo20.WebSMSender").getInstance().send(msg)
print("开始发短信")
send_message()
print("短信发送结束")
3 回帖
猜你喜欢
- 2024-09-22 python实现WebService协议使用(pythonwebserver接口开发)
- 2024-09-22 玩转Termux:教你在手机上安装运行Python!
- 2024-09-22 Javaer自学python,吐槽难受的点(学了java再学python容易吗)
- 2024-09-22 实例编程:多语言语言调用Golang共享库
- 2024-09-22 Python 和 Java 基础对比 05 —— 程序的控制语句
- 2024-09-22 Python的模块导入和重载(python中模块导入的方法)
- 2024-09-22 python内置函数通过字符串的方式来执行函数代码块
- 2024-09-22 关于不同编程语言相互调用的思考(不同编程语言对接)
- 2024-09-22 Python 3.13 或将引入 JIT!(python引入包从哪里引入)
- 2024-09-22 如何使用 Python 实现网页自动化朗读?
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)