257@365

早上好!
package android.telecom; 18 19 import android.annotation.Nullable; 20 import android.media.ToneGenerator; 21 import android.os.Parcel; 22 import android.os.Parcelable; 23 import android.telephony.Annotation; 24 import android.telephony.PreciseDisconnectCause; 25 import android.telephony.ims.ImsReasonInfo; 26 import android.text.TextUtils; 27 28 import java.util.Objects; 29 30 /** 31 * Describes the cause of a disconnected call. This always includes a code describing the generic 32 * cause of the disconnect. Optionally, it may include a label and/or description to display to the 33 * user. It is the responsibility of the {@link ConnectionService} to provide localized versions of 34 * the label and description. It also may contain a reason for the disconnect, which is intended for 35 * logging and not for display to the user. 36 */ 37 public final class DisconnectCause implements Parcelable { 38 39 /** Disconnected because of an unknown or unspecified reason. */ 40 public static final int UNKNOWN = TelecomProtoEnums.UNKNOWN; // = 0 41 /** Disconnected because there was an error, such as a problem with the network. */ 42 public static final int ERROR = TelecomProtoEnums.ERROR; // = 1 43 /** Disconnected because of a local user-initiated action, such as hanging up. */ 44 public static final int LOCAL = TelecomProtoEnums.LOCAL; // = 2 45 /** 46 * Disconnected because the remote party hung up an ongoing call, or because an outgoing call 47 * was not answered by the remote party. 48 */ 49 public static final int REMOTE = TelecomProtoEnums.REMOTE; // = 3 50 /** Disconnected because it has been canceled. */ 51 public static final int CANCELED = TelecomProtoEnums.CANCELED; // = 4 52 /** Disconnected because there was no response to an incoming call. */ 53 public static final int MISSED = TelecomProtoEnums.MISSED; // = 5 54 /** Disconnected because the user rejected an incoming call. */ 55 public static final int REJECTED = TelecomProtoEnums.REJECTED; // = 6 56 /** Disconnected because the other party was busy. */ 57 public static final int BUSY = TelecomProtoEnums.BUSY; // = 7 58 /** 59 * Disconnected because of a restriction on placing the call, such as dialing in airplane 60 * mode. 61 */ 62 public static final int RESTRICTED = TelecomProtoEnums.RESTRICTED; // = 8 63 /** Disconnected for reason not described by other disconnect codes. */ 64 public static final int OTHER = TelecomProtoEnums.OTHER; // = 9 65 /** 66 * Disconnected because the connection manager did not support the call. The call will be tried 67 * again without a connection manager. See {@link PhoneAccount#CAPABILITY_CONNECTION_MANAGER}. 68 */ 69 public static final int CONNECTION_MANAGER_NOT_SUPPORTED = 70 TelecomProtoEnums.CONNECTION_MANAGER_NOT_SUPPORTED; // = 10 71 72 /** 73 * Disconnected because the user did not locally answer the incoming call, but it was answered 74 * on another device where the call was ringing. 75 */ 76 public static final int ANSWERED_ELSEWHERE = TelecomProtoEnums.ANSWERED_ELSEWHERE; // = 11 77 78 /** 79 * Disconnected because the call was pulled from the current device to another device. 80 */ 81 public static final int CALL_PULLED = TelecomProtoEnums.CALL_PULLED; // = 12 82 83 /** 84 * Reason code (returned via {@link #getReason()}) which indicates that a call could not be 85 * completed because the cellular radio is off or out of service, the device is connected to 86 * a wifi network, but the user has not enabled wifi calling. 87 */ 88 public static final String REASON_WIFI_ON_BUT_WFC_OFF = "REASON_WIFI_ON_BUT_WFC_OFF"; 89 90 /** 91 * Reason code (returned via {@link #getReason()}), which indicates that the call was 92 * disconnected because IMS access is blocked. 93 */ 94 public static final String REASON_IMS_ACCESS_BLOCKED = "REASON_IMS_ACCESS_BLOCKED"; 95 96 /** 97 * Reason code (returned via {@link #getReason()}), which indicates that the connection service 98 * is setting the call's state to {@link Call#STATE_DISCONNECTED} because it is internally 99 * changing the representation of an IMS conference call to simulate a single-party call. 100 * 101 * This reason code is only used for communication between a {@link ConnectionService} and 102 * Telecom and should not be surfaced to the user. 103 */ 104 public static final String REASON_EMULATING_SINGLE_CALL = "EMULATING_SINGLE_CALL"; 105 106 /** 107 * This reason is set when a call is ended in order to place an emergency call when a 108 * {@link PhoneAccount} doesn't support holding an ongoing call to place an emergency call. This 109 * reason string should only be associated with the {@link #LOCAL} disconnect code returned from 110 * {@link #getCode()}. 111 */ 112 public static final String REASON_EMERGENCY_CALL_PLACED = "REASON_EMERGENCY_CALL_PLACED"; 113 114 private int mDisconnectCode; 115 private CharSequence mDisconnectLabel; 116 private CharSequence mDisconnectDescription; 117 private String mDisconnectReason; 118 private int mToneToPlay; 119 private int mTelephonyDisconnectCause; 120 private int mTelephonyPreciseDisconnectCause; 121 private ImsReasonInfo mImsReasonInfo; 122 123 /** 124 * Creates a new DisconnectCause. 125 * 126 * @param code The code for the disconnect cause. 127 */ 128 public DisconnectCause(int code) { 129 this(code, null, null, null, ToneGenerator.TONE_UNKNOWN); 130 } 131 132 /** 133 * Creates a new DisconnectCause. 134 * 135 * @param code The code for the disconnect cause. 136 * @param reason The reason for the disconnect. 137 */ 138 public DisconnectCause(int code, String reason) { 139 this(code, null, null, reason, ToneGenerator.TONE_UNKNOWN); 140 } 141 142 /** 143 * Creates a new DisconnectCause. 144 * 145 * @param code The code for the disconnect cause. 146 * @param label The localized label to show to the user to explain the disconnect. 147 * @param description The localized description to show to the user to explain the disconnect. 148 * @param reason The reason for the disconnect. 149 */ 150 public DisconnectCause(int code, CharSequence label, CharSequence description, String reason) { 151 this(code, label, description, reason, ToneGenerator.TONE_UNKNOWN); 152 } 153 154 /** 155 * Creates a new DisconnectCause. 156 * 157 * @param code The code for the disconnect cause. 158 * @param label The localized label to show to the user to explain the disconnect. 159 * @param description The localized description to show to the user to explain the disconnect. 160 * @param reason The reason for the disconnect. 161 * @param toneToPlay The tone to play on disconnect, as defined in {@link ToneGenerator}. 162 */ 163 public DisconnectCause(int code, CharSequence label, CharSequence description, String reason, 164 int toneToPlay) { 165 this(code, label, description, reason, toneToPlay, 166 android.telephony.DisconnectCause.ERROR_UNSPECIFIED, 167 PreciseDisconnectCause.ERROR_UNSPECIFIED, 168 null /* imsReasonInfo */); 169 } 170 171 /** 172 * Creates a new DisconnectCause instance. 173 * @param code The code for the disconnect cause. 174 * @param label The localized label to show to the user to explain the disconnect. 175 * @param description The localized description to show to the user to explain the disconnect. 176 * @param reason The reason for the disconnect. 177 * @param toneToPlay The tone to play on disconnect, as defined in {@link ToneGenerator}. 178 * @param telephonyDisconnectCause The Telephony disconnect cause. 179 * @param telephonyPreciseDisconnectCause The Telephony precise disconnect cause. 180 * @param imsReasonInfo The relevant {@link ImsReasonInfo}, or {@code null} if not available. 181 * @hide 182 */ 183 public DisconnectCause(int code, CharSequence label, CharSequence description, String reason, 184 int toneToPlay, @Annotation.DisconnectCauses int telephonyDisconnectCause, 185 @Annotation.PreciseDisconnectCauses int telephonyPreciseDisconnectCause, 186 @Nullable ImsReasonInfo imsReasonInfo) { 187 mDisconnectCode = code; 188 mDisconnectLabel = label; 189 mDisconnectDescription = description; 190 mDisconnectReason = reason; 191 mToneToPlay = toneToPlay; 192 mTelephonyDisconnectCause = telephonyDisconnectCause; 193 mTelephonyPreciseDisconnectCause = telephonyPreciseDisconnectCause; 194 mImsReasonInfo = imsReasonInfo; 195 } 196 197 /** 198 * Returns the code for the reason for this disconnect. 199 * 200 * @return The disconnect code. 201 */ 202 public int getCode() { 203 return mDisconnectCode; 204 } 205 206 /** 207 * Returns a short label which explains the reason for the disconnect cause and is for display 208 * in the user interface. If not null, it is expected that the In-Call UI should display this 209 * text where it would normally display the call state ("Dialing", "Disconnected") and is 210 * therefore expected to be relatively small. The {@link ConnectionService } is responsible for 211 * providing and localizing this label. If there is no string provided, returns null. 212 * 213 * @return The disconnect label. 214 */ 215 public CharSequence getLabel() { 216 return mDisconnectLabel; 217 } 218 219 /** 220 * Returns a description which explains the reason for the disconnect cause and is for display 221 * in the user interface. This optional text is generally a longer and more descriptive version 222 * of {@link #getLabel}, however it can exist even if {@link #getLabel} is empty. The In-Call UI 223 * should display this relatively prominently; the traditional implementation displays this as 224 * an alert dialog. The {@link ConnectionService} is responsible for providing and localizing 225 * this message. If there is no string provided, returns null. 226 * 227 * @return The disconnect description. 228 */ 229 public CharSequence getDescription() { 230 return mDisconnectDescription; 231 } 232 233 /** 234 * Returns an explanation of the reason for the disconnect. This is not intended for display to 235 * the user and is used mainly for logging. 236 * 237 * @return The disconnect reason. 238 */ 239 public String getReason() { 240 return mDisconnectReason; 241 } 242 243 /** 244 * Returns the telephony {@link android.telephony.DisconnectCause} for the call. 245 * @return The disconnect cause. 246 * @hide 247 */ 248 public @Annotation.DisconnectCauses int getTelephonyDisconnectCause() { 249 return mTelephonyDisconnectCause; 250 } 251 252 /** 253 * Returns the telephony {@link android.telephony.PreciseDisconnectCause} for the call. 254 * @return The precise disconnect cause. 255 * @hide 256 */ 257 public @Annotation.PreciseDisconnectCauses int getTelephonyPreciseDisconnectCause() { 258 return mTelephonyPreciseDisconnectCause; 259 } 260 261 /** 262 * Returns the telephony {@link ImsReasonInfo} associated with the call disconnection. 263 * @return The {@link ImsReasonInfo} or {@code null} if not known. 264 * @hide 265 */ 266 public @Nullable ImsReasonInfo getImsReasonInfo() { 267 return mImsReasonInfo; 268 } 269 270 /** 271 * Returns the tone to play when disconnected. 272 * 273 * @return the tone as defined in {@link ToneGenerator} to play when disconnected. 274 */ 275 public int getTone() { 276 return mToneToPlay; 277 } 278 279 public static final @android.annotation.NonNull Creator<DisconnectCause> CREATOR 280 = new Creator<DisconnectCause>() { 281 @Override 282 public DisconnectCause createFromParcel(Parcel source) { 283 int code = source.readInt(); 284 CharSequence label = TextUtils.CHAR_SEQUENCE_CREATOR.createFromParcel(source); 285 CharSequence description = TextUtils.CHAR_SEQUENCE_CREATOR.createFromParcel(source); 286 String reason = source.readString(); 287 int tone = source.readInt(); 288 int telephonyDisconnectCause = source.readInt(); 289 int telephonyPreciseDisconnectCause = source.readInt(); 290 ImsReasonInfo imsReasonInfo = source.readParcelable(null, android.telephony.ims.ImsReasonInfo.class); 291 return new DisconnectCause(code, label, description, reason, tone, 292 telephonyDisconnectCause, telephonyPreciseDisconnectCause, imsReasonInfo); 293 } 294 295 @Override 296 public DisconnectCause[] newArray(int size) { 297 return new DisconnectCause[size]; 298 } 299 }; 300 301 @Override 302 public void writeToParcel(Parcel destination, int flags) { 303 destination.writeInt(mDisconnectCode); 304 TextUtils.writeToParcel(mDisconnectLabel, destination, flags); 305 TextUtils.writeToParcel(mDisconnectDescription, destination, flags); 306 destination.writeString(mDisconnectReason); 307 destination.writeInt(mToneToPlay); 308 destination.writeInt(mTelephonyDisconnectCause); 309 destination.writeInt(mTelephonyPreciseDisconnectCause); 310 destination.writeParcelable(mImsReasonInfo, 0); 311 } 312 313 @Override 314 public int describeContents() { 315 return 0; 316 } 317 318 @Override 319 public int hashCode() { 320 return Objects.hashCode(mDisconnectCode) 321 + Objects.hashCode(mDisconnectLabel) 322 + Objects.hashCode(mDisconnectDescription) 323 + Objects.hashCode(mDisconnectReason) 324 + Objects.hashCode(mToneToPlay) 325 + Objects.hashCode(mTelephonyDisconnectCause) 326 + Objects.hashCode(mTelephonyPreciseDisconnectCause) 327 + Objects.hashCode(mImsReasonInfo); 328 } 329 330 @Override 331 public boolean equals(Object o) { 332 if (o instanceof DisconnectCause) { 333 DisconnectCause d = (DisconnectCause) o; 334 return Objects.equals(mDisconnectCode, d.getCode()) 335 && Objects.equals(mDisconnectLabel, d.getLabel()) 336 && Objects.equals(mDisconnectDescription, d.getDescription()) 337 && Objects.equals(mDisconnectReason, d.getReason()) 338 && Objects.equals(mToneToPlay, d.getTone()) 339 && Objects.equals(mTelephonyDisconnectCause, d.getTelephonyDisconnectCause()) 340 && Objects.equals(mTelephonyPreciseDisconnectCause, 341 d.getTelephonyPreciseDisconnectCause()) 342 && Objects.equals(mImsReasonInfo, d.getImsReasonInfo()); 343 } 344 return false; 345 } 346 347 @Override 348 public String toString() { 349 String code = ""; 350 switch (mDisconnectCode) { 351 case UNKNOWN: 352 code = "UNKNOWN"; 353 break; 354 case ERROR: 355 code = "ERROR"; 356 break; 357 case LOCAL: 358 code = "LOCAL"; 359 break; 360 case REMOTE: 361 code = "REMOTE"; 362 break; 363 case CANCELED: 364 code = "CANCELED"; 365 break; 366 case MISSED: 367 code = "MISSED"; 368 break; 369 case REJECTED: 370 code = "REJECTED"; 371 break; 372 case BUSY: 373 code = "BUSY"; 374 break; 375 case RESTRICTED: 376 code = "RESTRICTED"; 377 break; 378 case OTHER: 379 code = "OTHER"; 380 break; 381 case CONNECTION_MANAGER_NOT_SUPPORTED: 382 code = "CONNECTION_MANAGER_NOT_SUPPORTED"; 383 break; 384 case CALL_PULLED: 385 code = "CALL_PULLED"; 386 break; 387 case ANSWERED_ELSEWHERE: 388 code = "ANSWERED_ELSEWHERE"; 389 break; 390 default: 391 code = "invalid code: " + mDisconnectCode; 392 break; 393 } 394 String label = mDisconnectLabel == null ? "" : mDisconnectLabel.toString(); 395 String description = mDisconnectDescription == null 396 ? "" : mDisconnectDescription.toString(); 397 String reason = mDisconnectReason == null ? "" : mDisconnectReason; 398 return "DisconnectCause [ Code: (" + code + ")" 399 + " Label: (" + label + ")" 400 + " Description: (" + description + ")" 401 + " Reason: (" + reason + ")" 402 + " Tone: (" + mToneToPlay + ") " 403 + " TelephonyCause: " + mTelephonyDisconnectCause + "/" 404 + mTelephonyPreciseDisconnectCause 405 + " ImsReasonInfo: " 406 + mImsReasonInfo 407 + "]"; 408 } 409 } telephonycause的值是怎么来的
08-24
[root@yfw ~]# cd /opt/openfire [root@yfw openfire]# # 1. 编译源码 [root@yfw openfire]# mkdir -p /tmp/hello-plugin/{src,classes} [root@yfw openfire]# cp /root/openfire-plugin-build/src/main/java/com/example/restapi/RestApiPlugin.java /tmp/hello-plugin/src/ cp: cannot stat '/root/openfire-plugin-build/src/main/java/com/example/restapi/RestApiPlugin.java': No such file or directory [root@yfw openfire]# javac -d /tmp/hello-plugin/classes -cp "/opt/openfire/lib/*" /tmp/hello-plugin/src/RestApiPlugin.java javac: file not found: /tmp/hello-plugin/src/RestApiPlugin.java Usage: javac <options> <source files> use -help for a list of possible options [root@yfw openfire]# [root@yfw openfire]# # 2. 打包 [root@yfw openfire]# cd /tmp/hello-plugin/classes [root@yfw classes]# jar cvf /root/openfire-plugin-build/restapi.jar . added manifest [root@yfw classes]# [root@yfw classes]# # 3. 验证 [root@yfw classes]# jar tf /root/openfire-plugin-build/restapi.jar | grep RestApiPlugin [root@yfw classes]# # 应该输出:com/example/restapi/RestApiPlugin.class [root@yfw classes]# [root@yfw classes]# # 4. 部署 [root@yfw classes]# systemctl stop openfire [root@yfw classes]# rm -rf /opt/openfire/plugins/hello-plugin [root@yfw classes]# mkdir -p /opt/openfire/plugins/hello-plugin/{classes,lib,web} [root@yfw classes]# [root@yfw classes]# cat > /opt/openfire/plugins/hello-plugin/classes/plugin.xml << 'EOF' > <?xml version="1.0" encoding="UTF-8"?> > <plugin> > <className>com.example.restapi.RestApiPlugin</className> > <name>Hello Plugin</name> > <description>A minimal working plugin</description> > <version>1.0.0</version> > <author>Admin</author> > <minServerVersion>4.0.0</minServerVersion> > <maxServerVersion>5.0.0</maxServerVersion> > </plugin> > EOF [root@yfw classes]# [root@yfw classes]# cp /root/openfire-plugin-build/restapi.jar /opt/openfire/plugins/hello-plugin/lib/ [root@yfw classes]# chown -R openfire:openfire /opt/openfire/plugins/hello-plugin [root@yfw classes]# systemctl start openfire [root@yfw classes]# sleep 30 [root@yfw classes]# grep -i "hello-plugin\|pluginmonitor\|restapi\|loaded plugin\|found new plugin\|construct\|initialize" /opt/openfire/logs/openfire.log | tail -100 2025.05.17 22:06:19.090 INFO [PluginMonitorTask-2]: org.jivesoftware.openfire.container.PluginMonitor - Finished processing all plugins. 2025.05.17 22:06:43.160 INFO [PluginMonitorExec-2]: org.jivesoftware.openfire.container.PluginManager - Successfully loaded plugin 'jabberbrowsing-1.0.1'. 2025.05.17 22:06:43.163 INFO [PluginMonitorTask-2]: org.jivesoftware.openfire.container.PluginMonitor - Finished processing all plugins. 2025.05.17 22:07:28.588 INFO [PluginMonitorTask-2]: org.jivesoftware.openfire.container.PluginMonitor - Plugin 'nodejs' was removed from the file system. 2025.05.17 22:07:28.601 INFO [PluginMonitorTask-2]: org.jivesoftware.openfire.container.PluginManager - Removing all System Properties for the plugin 'NodeJs' 2025.05.17 22:07:28.602 INFO [PluginMonitorTask-2]: org.jivesoftware.openfire.container.PluginClassLoader - Unloading plugin JAR file /opt/openfire/bin/../plugins/nodejs/lib/nodejs-0.1.1.jar 2025.05.17 22:07:30.696 INFO [PluginMonitorTask-2]: org.jivesoftware.openfire.container.PluginManager - Successfully unloaded plugin 'nodejs'. 2025.05.17 22:11:14.780 INFO [PluginMonitorExec-2]: org.jivesoftware.openfire.container.PluginManager - Successfully loaded plugin 'presence-1.7.3'. 2025.05.17 22:11:14.783 INFO [PluginMonitorTask-2]: org.jivesoftware.openfire.container.PluginMonitor - Finished processing all plugins. 2025.05.17 22:11:40.365 INFO [PluginMonitorExec-2]: uk.ifsoft.openfire.plugins.pade.PadePlugin - start pade server localhost:7443 2025.05.17 22:11:40.367 INFO [PluginMonitorExec-2]: org.jivesoftware.util.cache.CacheFactory - Created local-only cache [org.jivesoftware.util.cache.DefaultLocalCacheStrategy] for URL Source Content 2025.05.17 22:11:40.378 INFO [PluginMonitorExec-2]: org.jivesoftware.openfire.net.SASLAuthentication - Support added for the 'PADE' SASL mechanism. 2025.05.17 22:11:40.378 INFO [PluginMonitorExec-2]: uk.ifsoft.openfire.plugins.pade.PadePlugin - Create recordings folder 2025.05.17 22:11:40.379 INFO [PluginMonitorExec-2]: uk.ifsoft.openfire.plugins.pade.PadePlugin - Starting Openfire Meetings 2025.05.17 22:11:40.384 INFO [PluginMonitorExec-2]: org.jivesoftware.util.cache.CacheFactory - Created local-only cache [org.jivesoftware.util.cache.DefaultLocalCacheStrategy] for MUC Room Properties 2025.05.17 22:11:40.393 INFO [PluginMonitorExec-2]: org.jivesoftware.openfire.plugin.ofmeet.OfMeetPlugin - No pre-existing 'jvb' user detected. Generating one. 2025.05.17 22:11:40.495 INFO [PluginMonitorExec-2]: org.jivesoftware.openfire.plugin.ofmeet.JitsiJvbWrapper - Successfully initialized Jitsi Videobridge. 2025.05.17 22:11:40.510 INFO [PluginMonitorExec-2]: org.jivesoftware.openfire.plugin.ofmeet.OfMeetPlugin - No pre-existing 'focus' user detected. Generating one. 2025.05.17 22:11:40.566 INFO [PluginMonitorExec-2]: org.jivesoftware.openfire.plugin.ofmeet.OfMeetPlugin - Adding 'focus' user as a sysadmin to the 'conference' MUC service. 2025.05.17 22:11:40.572 INFO [PluginMonitorExec-2]: org.jivesoftware.openfire.plugin.ofmeet.JitsiJicofoWrapper - Initializing Jitsi Focus Component (jicofo)... 2025.05.17 22:11:40.673 INFO [PluginMonitorExec-2]: org.jivesoftware.openfire.plugin.ofmeet.JitsiJicofoWrapper - Successfully initialized Jitsi Focus Component (jicofo). 2025.05.17 22:11:40.680 INFO [PluginMonitorExec-2]: org.jivesoftware.openfire.plugin.ofmeet.OfMeetPlugin - Initialized public web socket for /colibri-ws web socket 2025.05.17 22:11:44.017 INFO [PluginMonitorExec-2]: org.jivesoftware.openfire.plugin.ofmeet.OfMeetPlugin - OfMeet Plugin - Initialize IQ handler 2025.05.17 22:11:46.516 INFO [PluginMonitorExec-2]: org.quartz.impl.StdSchedulerFactory - Using default implementation for ThreadExecutor 2025.05.17 22:11:46.518 INFO [PluginMonitorExec-2]: org.quartz.simpl.SimpleThreadPool - Job execution threads will use class loader of thread: PluginMonitorExec-2 2025.05.17 22:11:46.531 INFO [PluginMonitorExec-2]: org.quartz.core.SchedulerSignalerImpl - Initialized Scheduler Signaller of type: class org.quartz.core.SchedulerSignalerImpl 2025.05.17 22:11:46.531 INFO [PluginMonitorExec-2]: org.quartz.core.QuartzScheduler - Quartz Scheduler v.2.3.2 created. 2025.05.17 22:11:46.532 INFO [PluginMonitorExec-2]: org.quartz.simpl.RAMJobStore - RAMJobStore initialized. 2025.05.17 22:11:46.533 INFO [PluginMonitorExec-2]: org.quartz.core.QuartzScheduler - Scheduler meta-data: Quartz Scheduler (v2.3.2) 'DefaultQuartzScheduler' with instanceId 'NON_CLUSTERED' 2025.05.17 22:11:46.533 INFO [PluginMonitorExec-2]: org.quartz.impl.StdSchedulerFactory - Quartz scheduler 'DefaultQuartzScheduler' initialized from default resource file in Quartz package: 'quartz.properties' 2025.05.17 22:11:46.533 INFO [PluginMonitorExec-2]: org.quartz.impl.StdSchedulerFactory - Quartz scheduler version: 2.3.2 2025.05.17 22:11:46.533 INFO [PluginMonitorExec-2]: org.quartz.core.QuartzScheduler - Scheduler DefaultQuartzScheduler_$_NON_CLUSTERED started. 2025.05.17 22:11:46.535 ERROR [PluginMonitorExec-2]: org.jivesoftware.openfire.muc.MultiUserChatManager - A database exception occurred while trying to load the ID for MUC service 'lobby' from the database. at org.jivesoftware.openfire.plugin.ofmeet.LobbyMuc.initialize(LobbyMuc.java:46) [pade-1.8.4.jar:?] at org.jivesoftware.openfire.plugin.ofmeet.OfMeetPlugin.initializePlugin(OfMeetPlugin.java:334) [pade-1.8.4.jar:?] at uk.ifsoft.openfire.plugins.pade.PadePlugin.initializePlugin(PadePlugin.java:118) [pade-1.8.4.jar:?] at org.jivesoftware.openfire.container.PluginMonitor$MonitorTask$4.call(PluginMonitor.java:380) [xmppserver-4.9.2.jar:4.9.2] at org.jivesoftware.openfire.container.PluginMonitor$MonitorTask$4.call(PluginMonitor.java:368) [xmppserver-4.9.2.jar:4.9.2] 2025.05.17 22:11:46.535 INFO [PluginMonitorExec-2]: org.jivesoftware.openfire.muc.MultiUserChatManager - Creating MUC service 'lobby' 2025.05.17 22:11:46.535 INFO [PluginMonitorExec-2]: org.jivesoftware.util.cache.CacheFactory - Created cache [org.jivesoftware.util.cache.DefaultLocalCacheStrategy] for MUC Service 'lobby' Rooms 2025.05.17 22:11:46.564 INFO [PluginMonitorExec-2]: org.jivesoftware.util.cache.CacheFactory - Created cache [org.jivesoftware.util.cache.DefaultLocalCacheStrategy] for MUC Service 'lobby' Room Statistics 2025.05.17 22:11:46.625 INFO [PluginMonitorExec-2]: org.jivesoftware.openfire.muc.spi.MultiUserChatServiceImpl - Rescheduling user idle task, recurring every PT15M 2025.05.17 22:11:46.625 INFO [PluginMonitorExec-2]: org.jivesoftware.openfire.muc.spi.MultiUserChatServiceImpl - 多用户聊天域:lobby.localhost 2025.05.17 22:11:46.637 INFO [PluginMonitorExec-2]: uk.ifsoft.openfire.plugins.pade.PadePlugin - Creating webauthn RelyingParty 2025.05.17 22:11:46.697 INFO [PluginMonitorExec-2]: org.jivesoftware.openfire.container.PluginManager - Successfully loaded plugin 'pade-1.8.4'. 2025.05.17 22:11:46.701 INFO [PluginMonitorTask-2]: org.jivesoftware.openfire.container.PluginMonitor - Finished processing all plugins. 2025.05.17 22:30:01.079 INFO [PluginMonitorExec-2]: org.jivesoftware.openfire.container.PluginManager - Successfully loaded plugin 'clientcontrol-2.1.9'. 2025.05.17 22:30:01.081 INFO [PluginMonitorTask-2]: org.jivesoftware.openfire.container.PluginMonitor - Finished processing all plugins. 2025.05.17 23:29:36.241 INFO [PluginMonitorExec-2]: org.jivesoftware.openfire.container.PluginManager - Successfully loaded plugin 'contentfilter-1.8.2'. 2025.05.17 23:29:36.242 INFO [PluginMonitorTask-2]: org.jivesoftware.openfire.container.PluginMonitor - Finished processing all plugins. 2025.05.17 23:34:21.140 INFO [PluginMonitorExec-2]: org.jivesoftware.database.SchemaManager - 缺少 monitoring 的数据库架构。正在尝试安装… 2025.05.17 23:34:21.255 INFO [PluginMonitorExec-2]: org.jivesoftware.database.SchemaManager - 数据库更新成功。 2025.05.17 23:34:22.425 INFO [PluginMonitorExec-2]: org.jivesoftware.openfire.archive.ArchiveIndexer[CONVERSATION] - Unable to find a Lucene index in MMapDirectory@/opt/openfire/monitoring/search lockFactory=org.apache.lucene.store.NativeFSLockFactory@1c5950cc. rebuilding. 2025.05.17 23:34:22.471 INFO [PluginMonitorExec-2]: org.jivesoftware.openfire.archive.ArchiveIndexer[CONVERSATION] - Lucene index has never been modified. Removing and rebuilding. 2025.05.17 23:34:22.490 INFO [PluginMonitorExec-2]: org.jivesoftware.openfire.archive.ArchiveIndexer[MUCSEARCH] - Unable to find a Lucene index in MMapDirectory@/opt/openfire/monitoring/mucsearch lockFactory=org.apache.lucene.store.NativeFSLockFactory@1c5950cc. rebuilding. 2025.05.17 23:34:22.491 INFO [PluginMonitorExec-2]: org.jivesoftware.openfire.archive.ArchiveIndexer[MUCSEARCH] - Lucene index has never been modified. Removing and rebuilding. 2025.05.17 23:34:22.501 INFO [PluginMonitorExec-2]: org.jivesoftware.openfire.archive.ArchiveIndexer[MESSAGE] - Unable to find a Lucene index in MMapDirectory@/opt/openfire/monitoring/msgsearch lockFactory=org.apache.lucene.store.NativeFSLockFactory@1c5950cc. rebuilding. 2025.05.17 23:34:22.501 INFO [PluginMonitorExec-2]: org.jivesoftware.openfire.archive.ArchiveIndexer[MESSAGE] - Lucene index has never been modified. Removing and rebuilding. 2025.05.17 23:34:22.570 INFO [PluginMonitorExec-2]: org.jivesoftware.openfire.container.PluginManager - Successfully loaded plugin 'monitoring-2.6.1'. 2025.05.17 23:34:22.572 INFO [PluginMonitorTask-2]: org.jivesoftware.openfire.container.PluginMonitor - Finished processing all plugins. 2025.05.17 23:39:17.737 WARN [socket_c2s-thread-6]: org.jivesoftware.openfire.net.StanzaHandler - TLS requested by initiator when TLS was never offered by server. Closing connection: NettyConnection{peer: /198.19.85.144:17098, state: CLOSED, session: LocalClientSession{address=localhost/a18ef20e-7b0c-4906-b013-6c37aa434626, streamID=4r1n9o4rrd, status=CLOSED, isEncrypted=false, isDetached=false, serverName='localhost', isInitialized=false, hasAuthToken=false, peer address='198.19.85.144', presence=' 2025.05.17 23:58:24.333 WARN [socket_c2s-thread-4]: org.jivesoftware.openfire.nio.NettyXMPPDecoder - Error occurred while decoding XMPP stanza, closing connection: NettyConnection{peer: /116.30.131.71:3545, state: OPEN, session: LocalClientSession{address=admin@localhost/Spark, streamID=9zv3etldkk, status=AUTHENTICATED, isEncrypted=false, isDetached=false, serverName='localhost', isInitialized=true, hasAuthToken=true, peer address='116.30.131.71', presence=' 2025.05.18 02:11:21.455 WARN [socket_c2s-thread-8]: org.jivesoftware.openfire.net.StanzaHandler - TLS requested by initiator when TLS was never offered by server. Closing connection: NettyConnection{peer: /64.62.156.152:23954, state: CLOSED, session: LocalClientSession{address=localhost/6a875700-1bec-4059-90ca-bfd52a7f7069, streamID=9cwwog9iyw, status=CLOSED, isEncrypted=false, isDetached=false, serverName='localhost', isInitialized=false, hasAuthToken=false, peer address='64.62.156.152', presence=' 2025.05.18 04:40:46.695 WARN [socket_c2s-thread-9]: org.jivesoftware.openfire.nio.NettyXMPPDecoder - Error occurred while decoding XMPP stanza, closing connection: NettyConnection{peer: /206.168.34.95:37108, state: OPEN, session: LocalClientSession{address=localhost/5cc2629c-6b02-4c6d-99f8-29382e47998b, streamID=80z5qip1vo, status=CONNECTED, isEncrypted=false, isDetached=false, serverName='localhost', isInitialized=false, hasAuthToken=false, peer address='206.168.34.95', presence=' 2025.05.18 06:26:35.467 WARN [socket_c2s-thread-11]: org.jivesoftware.openfire.nio.NettyXMPPDecoder - Error occurred while decoding XMPP stanza, closing connection: NettyConnection{peer: /167.94.146.61:40624, state: OPEN, session: LocalClientSession{address=localhost/01b9c3c1-172a-4139-9288-9f04327a7bef, streamID=3offa8wn3a, status=CONNECTED, isEncrypted=false, isDetached=false, serverName='localhost', isInitialized=false, hasAuthToken=false, peer address='167.94.146.61', presence=' 2025.05.18 09:42:55.040 WARN [socket_c2s-thread-2]: org.jivesoftware.openfire.nio.NettyXMPPDecoder - Error occurred while decoding XMPP stanza, closing connection: NettyConnection{peer: /198.235.24.215:53794, state: OPEN, session: LocalClientSession{address=localhost/49b2957d-33e8-47a8-998e-88f64d45d268, streamID=1sfyowwbg0, status=CONNECTED, isEncrypted=false, isDetached=false, serverName='localhost', isInitialized=false, hasAuthToken=false, peer address='198.235.24.215', presence=' 2025.05.18 09:49:00.440 INFO [PluginMonitorTask-2]: org.jivesoftware.openfire.container.PluginMonitor - Plugin 'xmppweb' was removed from the file system. 2025.05.18 09:49:00.471 INFO [PluginMonitorTask-2]: org.jivesoftware.openfire.container.PluginManager - Removing all System Properties for the plugin 'xmppweb' 2025.05.18 09:49:00.472 INFO [PluginMonitorTask-2]: org.jivesoftware.openfire.container.PluginClassLoader - Unloading plugin JAR file /opt/openfire/bin/../plugins/xmppweb/lib/json-20231013.jar 2025.05.18 09:49:00.473 INFO [PluginMonitorTask-2]: org.jivesoftware.openfire.container.PluginClassLoader - Unloading plugin JAR file /opt/openfire/bin/../plugins/xmppweb/lib/xmppweb-0.10.3.1.jar 2025.05.18 09:49:02.612 INFO [PluginMonitorTask-2]: org.jivesoftware.openfire.container.PluginManager - Successfully unloaded plugin 'xmppweb'. 2025.05.18 09:49:25.325 INFO [PluginMonitorExec-2]: org.jivesoftware.openfire.container.PluginManager - Successfully loaded plugin 'xmppweb-0.10.3 Release 1'. 2025.05.18 09:49:25.327 INFO [PluginMonitorTask-2]: org.jivesoftware.openfire.container.PluginMonitor - Finished processing all plugins. 2025.05.18 11:31:26.703 WARN [socket_c2s-thread-4]: org.jivesoftware.openfire.nio.NettyXMPPDecoder - Error occurred while decoding XMPP stanza, closing connection: NettyConnection{peer: /162.142.125.120:33946, state: OPEN, session: LocalClientSession{address=localhost/848fe979-91fa-43ef-9690-5bb99e2421db, streamID=ehz2xj8lv, status=CONNECTED, isEncrypted=false, isDetached=false, serverName='localhost', isInitialized=false, hasAuthToken=false, peer address='162.142.125.120', presence=' at org.apache.jasper.runtime.PageContextImpl.initialize(PageContextImpl.java:130) ~[apache-jsp-9.0.52.jar:9.0.52] 2025.05.18 19:27:55.823 WARN [socket_c2s-thread-8]: org.jivesoftware.openfire.nio.NettyXMPPDecoder - Error occurred while decoding XMPP stanza, closing connection: NettyConnection{peer: /206.168.34.37:52832, state: OPEN, session: LocalClientSession{address=localhost/2c0ba85c-47b1-442d-9cdd-df02772f77b8, streamID=apaqifrw93, status=CONNECTED, isEncrypted=false, isDetached=false, serverName='localhost', isInitialized=false, hasAuthToken=false, peer address='206.168.34.37', presence=' 2025.05.18 20:26:42.223 INFO [PluginMonitorExec-2]: org.jivesoftware.openfire.container.PluginManager - Successfully loaded plugin 'candy-0.0.0'. 2025.05.18 20:26:42.228 INFO [PluginMonitorTask-2]: org.jivesoftware.openfire.container.PluginMonitor - Finished processing all plugins. 2025.05.18 20:39:20.427 INFO [PluginMonitorTask-2]: org.jivesoftware.openfire.container.PluginMonitor - Plugin 'xmppweb' was removed from the file system. 2025.05.18 20:39:20.480 INFO [PluginMonitorTask-2]: org.jivesoftware.openfire.container.PluginManager - Removing all System Properties for the plugin 'xmppweb' 2025.05.18 20:39:20.480 INFO [PluginMonitorTask-2]: org.jivesoftware.openfire.container.PluginClassLoader - Unloading plugin JAR file /opt/openfire/bin/../plugins/xmppweb/lib/json-20231013.jar 2025.05.18 20:39:20.481 INFO [PluginMonitorTask-2]: org.jivesoftware.openfire.container.PluginClassLoader - Unloading plugin JAR file /opt/openfire/bin/../plugins/xmppweb/lib/xmppweb-0.10.3.1.jar 2025.05.18 20:39:22.613 INFO [PluginMonitorTask-2]: org.jivesoftware.openfire.container.PluginManager - Successfully unloaded plugin 'xmppweb'. 2025.05.18 20:39:27.493 INFO [PluginMonitorTask-2]: org.jivesoftware.openfire.container.PluginMonitor - Plugin 'candy' was removed from the file system. 2025.05.18 20:39:27.505 INFO [PluginMonitorTask-2]: org.jivesoftware.openfire.container.PluginManager - Removing all System Properties for the plugin 'Candy' 2025.05.18 20:39:27.505 INFO [PluginMonitorTask-2]: org.jivesoftware.openfire.container.PluginClassLoader - Unloading plugin JAR file /opt/openfire/bin/../plugins/candy/lib/json-20231013.jar 2025.05.18 20:39:27.505 INFO [PluginMonitorTask-2]: org.jivesoftware.openfire.container.PluginClassLoader - Unloading plugin JAR file /opt/openfire/bin/../plugins/candy/lib/candy-2.2.0-release-5.jar 2025.05.18 20:39:29.656 INFO [PluginMonitorTask-2]: org.jivesoftware.openfire.container.PluginManager - Successfully unloaded plugin 'candy'. 2025.05.18 20:41:12.712 INFO [PluginMonitorTask-2]: org.jivesoftware.openfire.container.PluginMonitor - Plugin 'websocket' was removed from the file system. 2025.05.18 20:41:12.713 INFO [PluginMonitorTask-2]: org.jivesoftware.openfire.container.PluginManager - Removing all System Properties for the plugin 'Openfire WebSocket' 2025.05.18 20:41:12.714 WARN [PluginMonitorTask-2]: org.jivesoftware.openfire.container.PluginManager - No plugin loader found for 'websocket'. 2025.05.18 20:41:47.652 WARN [PluginMonitorExec-2]: org.jivesoftware.openfire.container.PluginManager - Ignoring plugin 'websocket': compatible with server versions up to but excluding 4.2.0. Current server version is 4.9.2. 2025.05.18 20:52:43.808 INFO [PluginMonitorExec-2]: org.jivesoftware.openfire.container.PluginManager - Successfully loaded plugin 'xmppweb-0.10.3 Release 1'. 2025.05.18 20:52:43.810 INFO [PluginMonitorTask-2]: org.jivesoftware.openfire.container.PluginMonitor - Finished processing all plugins. 2025.05.18 22:22:35.615 WARN [socket_c2s-thread-3]: org.jivesoftware.openfire.nio.NettyXMPPDecoder - Error occurred while decoding XMPP stanza, closing connection: NettyConnection{peer: /119.123.129.17:8032, state: OPEN, session: LocalClientSession{address=admin@localhost/Spark, streamID=6qn9egdg8p, status=AUTHENTICATED, isEncrypted=false, isDetached=false, serverName='localhost', isInitialized=true, hasAuthToken=true, peer address='119.123.129.17', presence=' 2025.05.18 23:26:17.312 WARN [socket_c2s-thread-11]: org.jivesoftware.openfire.net.StanzaHandler - TLS requested by initiator when TLS was never offered by server. Closing connection: NettyConnection{peer: /198.19.91.156:17515, state: CLOSED, session: LocalClientSession{address=localhost/50e82849-70a1-4123-865c-908c4ce26966, streamID=3xhrg241ma, status=CLOSED, isEncrypted=false, isDetached=false, serverName='localhost', isInitialized=false, hasAuthToken=false, peer address='198.19.91.156', presence=' 2025.05.18 23:44:40.257 WARN [socket_c2s-thread-13]: org.jivesoftware.openfire.net.StanzaHandler - TLS requested by initiator when TLS was never offered by server. Closing connection: NettyConnection{peer: /65.49.20.67:27622, state: CLOSED, session: LocalClientSession{address=localhost/d886b72b-1ca4-45d9-8784-e3f2fae7fb8c, streamID=7z5651o759, status=CLOSED, isEncrypted=false, isDetached=false, serverName='localhost', isInitialized=false, hasAuthToken=false, peer address='65.49.20.67', presence=' 2025.05.19 01:12:41.159 WARN [socket_c2s-thread-15]: org.jivesoftware.openfire.net.StanzaHandler - TLS requested by initiator when TLS was never offered by server. Closing connection: NettyConnection{peer: /198.19.83.27:19319, state: CLOSED, session: LocalClientSession{address=localhost/73e0a9db-0c41-4189-9662-59afd7f80f30, streamID=amdtgcxs0g, status=CLOSED, isEncrypted=false, isDetached=false, serverName='localhost', isInitialized=false, hasAuthToken=false, peer address='198.19.83.27', presence=' 2025.05.19 05:07:10.196 WARN [socket_c2s-thread-16]: org.jivesoftware.openfire.net.StanzaHandler - TLS requested by initiator when TLS was never offered by server. Closing connection: NettyConnection{peer: /185.247.137.7:33277, state: CLOSED, session: LocalClientSession{address=localhost/9cacc3df-b485-4a54-bfb7-d114733ab1d4, streamID=81aj48psvq, status=CLOSED, isEncrypted=false, isDetached=false, serverName='localhost', isInitialized=false, hasAuthToken=false, peer address='185.247.137.7', presence=' Binary file /opt/openfire/logs/openfire.log matches [root@yfw classes]#
10-04
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值