This commit is contained in:
Jared Ye 2026-03-05 19:27:04 +08:00
parent a290eb889f
commit 2116e46751
1321 changed files with 810 additions and 616736 deletions

1
.gitignore vendored
View File

@ -40,3 +40,4 @@ client/nbproject/private/private.properties
/JuderUI/build
/JuderUI/log
/client/build
/client/可运行客户端环境

1
.idea/.name Normal file
View File

@ -0,0 +1 @@
Judger.jar

View File

@ -10,6 +10,9 @@
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
<option name="LAST_RESOLUTION" value="IGNORE" />
</component>
<component name="ComposerSettings">
<execution />
</component>
<component name="ProjectColorInfo">{
&quot;associatedIndex&quot;: 6
}</component>
@ -18,21 +21,23 @@
<option name="hideEmptyMiddlePackages" value="true" />
<option name="showLibraryContents" value="true" />
</component>
<component name="PropertiesComponent">{
&quot;keyToString&quot;: {
&quot;RunOnceActivity.OpenProjectViewOnStart&quot;: &quot;true&quot;,
&quot;RunOnceActivity.ShowReadmeOnStart&quot;: &quot;true&quot;,
&quot;WebServerToolWindowFactoryState&quot;: &quot;false&quot;,
&quot;last_opened_file_path&quot;: &quot;D:/OJ&quot;,
&quot;node.js.detected.package.eslint&quot;: &quot;true&quot;,
&quot;node.js.detected.package.tslint&quot;: &quot;true&quot;,
&quot;node.js.selected.package.eslint&quot;: &quot;(autodetect)&quot;,
&quot;node.js.selected.package.tslint&quot;: &quot;(autodetect)&quot;,
&quot;settings.editor.selected.configurable&quot;: &quot;vcs.Subversion&quot;,
&quot;spring.configuration.checksum&quot;: &quot;d41d8cd98f00b204e9800998ecf8427e&quot;,
&quot;vue.rearranger.settings.migration&quot;: &quot;true&quot;
<component name="PropertiesComponent"><![CDATA[{
"keyToString": {
"RunOnceActivity.OpenProjectViewOnStart": "true",
"RunOnceActivity.ShowReadmeOnStart": "true",
"WebServerToolWindowFactoryState": "false",
"kotlin-language-version-configured": "true",
"last_opened_file_path": "D:/dhu/3B/软件架构设计/实验/实验 4 设计模式/必考/Adapter",
"node.js.detected.package.eslint": "true",
"node.js.detected.package.tslint": "true",
"node.js.selected.package.eslint": "(autodetect)",
"node.js.selected.package.tslint": "(autodetect)",
"nodejs_package_manager_path": "npm",
"settings.editor.selected.configurable": "vcs.Subversion",
"spring.configuration.checksum": "d41d8cd98f00b204e9800998ecf8427e",
"vue.rearranger.settings.migration": "true"
}
}</component>
}]]></component>
<component name="RunManager">
<configuration name="Test1" type="Application" factoryName="Application" temporary="true" nameIsGenerated="true">
<option name="MAIN_CLASS_NAME" value="client.test.Test1" />
@ -53,6 +58,14 @@
</list>
</recent_temporary>
</component>
<component name="SharedIndexes">
<attachedChunks>
<set>
<option value="bundled-jdk-9823dce3aa75-28b599e66164-intellij.indexing.shared.core-IU-242.23339.11" />
<option value="bundled-js-predefined-d6986cc7102b-5c90d61e3bab-JavaScript-IU-242.23339.11" />
</set>
</attachedChunks>
</component>
<component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="应用程序级" UseSingleDictionary="true" transferred="true" />
<component name="SvnConfiguration" cleanupOnStartRun="true">
<configuration>C:\Users\32592\AppData\Roaming\Subversion</configuration>
@ -67,6 +80,8 @@
<updated>1704801979303</updated>
<workItem from="1704801980316" duration="598000" />
<workItem from="1719379629921" duration="24000" />
<workItem from="1742820783863" duration="109000" />
<workItem from="1743039478282" duration="37000" />
</task>
<servers />
</component>

BIN
Common/dist/Common.jar vendored

Binary file not shown.

View File

@ -6,4 +6,4 @@ do.jar=true
>>>>>>> 9424929ba4fe9afe21ab70bff638a1960335fa7f
javac.debug=true
javadoc.preview=true
user.properties.file=C:\\Users\\tange\\AppData\\Roaming\\NetBeans\\24\\build.properties
user.properties.file=C:\\Users\\tange\\AppData\\Roaming\\NetBeans\\8.0.2\\build.properties

View File

@ -3,8 +3,6 @@
<editor-bookmarks xmlns="http://www.netbeans.org/ns/editor-bookmarks/2" lastBookmarkId="0"/>
<open-files xmlns="http://www.netbeans.org/ns/projectui-open-files/2">
<group name="最新版本代码"/>
<group>
<file>file:/D:/oj/Common/src/common/FileFinder.java</file>
</group>
<group/>
</open-files>
</project-private>

View File

@ -1,4 +1,4 @@
#Mon, 10 Feb 2025 21:12:48 +0800
#Thu, 18 Sep 2025 20:27:28 +0800
D\:\\oj\\JuderUI=

View File

@ -1,5 +1,5 @@
#update config.properties
#Mon Feb 10 21:10:14 GMT+08:00 2025
#Wed Feb 19 12:24:17 GMT+08:00 2025
=\=\=\=\=\=\=
<<<<<<<=.mine
>>>>>>>=.r76

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1 +0,0 @@
2024-05-08 22:08:19[INFO]اًا<D98B>dubbo<62><6F>خّ

View File

@ -1,2 +0,0 @@
2024-07-08 19:56:54[INFO]اًا<D98B>dubbo<62><6F>خّ
2024-07-08 19:57:19[INFO]اًا<D98B>dubbo<62><6F>خّ

View File

@ -1,147 +0,0 @@
2024-07-16 13:07:29[INFO]ÇëÇódubbo·þÎñ
2024-07-16 13:07:35[ERROR]ÇëÇódubbo·þÎñʧ°Ü
2024-07-16 13:07:35[ERROR]null
2024-07-16 13:07:35[INFO]ÇëÇódubbo·þÎñ
2024-07-16 13:07:37[ERROR]ÇëÇódubbo·þÎñʧ°Ü
2024-07-16 13:07:37[ERROR]null
2024-07-16 13:07:37[INFO]ÇëÇódubbo·þÎñ
2024-07-16 13:07:39[ERROR]ÇëÇódubbo·þÎñʧ°Ü
2024-07-16 13:07:39[ERROR]null
2024-07-16 13:07:39[INFO]ÇëÇódubbo·þÎñ
2024-07-16 13:07:41[ERROR]ÇëÇódubbo·þÎñʧ°Ü
2024-07-16 13:07:41[ERROR]null
2024-07-16 13:07:41[INFO]ÇëÇódubbo·þÎñ
2024-07-16 13:07:43[ERROR]ÇëÇódubbo·þÎñʧ°Ü
2024-07-16 13:07:43[ERROR]null
2024-07-16 13:07:43[INFO]ÇëÇódubbo·þÎñ
2024-07-16 13:07:45[ERROR]ÇëÇódubbo·þÎñʧ°Ü
2024-07-16 13:07:45[ERROR]null
2024-07-16 13:07:45[INFO]ÇëÇódubbo·þÎñ
2024-07-16 13:07:47[ERROR]ÇëÇódubbo·þÎñʧ°Ü
2024-07-16 13:07:47[ERROR]null
2024-07-16 13:07:47[INFO]ÇëÇódubbo·þÎñ
2024-07-16 13:07:49[ERROR]ÇëÇódubbo·þÎñʧ°Ü
2024-07-16 13:07:49[ERROR]null
2024-07-16 13:07:49[INFO]ÇëÇódubbo·þÎñ
2024-07-16 13:07:51[ERROR]ÇëÇódubbo·þÎñʧ°Ü
2024-07-16 13:07:51[ERROR]null
2024-07-16 13:09:58[INFO]ÇëÇódubbo·þÎñ
2024-07-16 13:10:04[ERROR]ÇëÇódubbo·þÎñʧ°Ü
2024-07-16 13:10:04[ERROR]null
2024-07-16 13:10:04[INFO]ÇëÇódubbo·þÎñ
2024-07-16 13:10:06[ERROR]ÇëÇódubbo·þÎñʧ°Ü
2024-07-16 13:10:06[ERROR]null
2024-07-16 13:10:06[INFO]ÇëÇódubbo·þÎñ
2024-07-16 13:10:08[ERROR]ÇëÇódubbo·þÎñʧ°Ü
2024-07-16 13:10:08[ERROR]null
2024-07-16 13:10:08[INFO]ÇëÇódubbo·þÎñ
2024-07-16 13:10:10[ERROR]ÇëÇódubbo·þÎñʧ°Ü
2024-07-16 13:10:10[ERROR]null
2024-07-16 13:12:46[INFO]ÇëÇódubbo·þÎñ
2024-07-16 13:12:53[ERROR]ÇëÇódubbo·þÎñʧ°Ü
2024-07-16 13:12:53[ERROR]null
2024-07-16 13:12:53[INFO]ÇëÇódubbo·þÎñ
2024-07-16 13:12:55[ERROR]ÇëÇódubbo·þÎñʧ°Ü
2024-07-16 13:12:55[ERROR]null
2024-07-16 13:12:55[INFO]ÇëÇódubbo·þÎñ
2024-07-16 13:12:57[ERROR]ÇëÇódubbo·þÎñʧ°Ü
2024-07-16 13:12:57[ERROR]null
2024-07-16 13:12:57[INFO]ÇëÇódubbo·þÎñ
2024-07-16 13:12:59[ERROR]ÇëÇódubbo·þÎñʧ°Ü
2024-07-16 13:12:59[ERROR]null
2024-07-16 13:12:59[INFO]ÇëÇódubbo·þÎñ
2024-07-16 13:13:01[ERROR]ÇëÇódubbo·þÎñʧ°Ü
2024-07-16 13:13:01[ERROR]null
2024-07-16 13:13:01[INFO]ÇëÇódubbo·þÎñ
2024-07-16 13:13:03[ERROR]ÇëÇódubbo·þÎñʧ°Ü
2024-07-16 13:13:03[ERROR]null
2024-07-16 13:13:03[INFO]ÇëÇódubbo·þÎñ
2024-07-16 13:13:05[ERROR]ÇëÇódubbo·þÎñʧ°Ü
2024-07-16 13:13:05[ERROR]null
2024-07-16 13:13:05[INFO]ÇëÇódubbo·þÎñ
2024-07-16 13:13:07[ERROR]ÇëÇódubbo·þÎñʧ°Ü
2024-07-16 13:13:07[ERROR]null
2024-07-16 13:13:07[INFO]ÇëÇódubbo·þÎñ
2024-07-16 13:13:09[ERROR]ÇëÇódubbo·þÎñʧ°Ü
2024-07-16 13:13:09[ERROR]null
2024-07-16 13:13:09[INFO]ÇëÇódubbo·þÎñ
2024-07-16 13:13:11[ERROR]ÇëÇódubbo·þÎñʧ°Ü
2024-07-16 13:13:11[ERROR]null
2024-07-16 13:13:11[INFO]ÇëÇódubbo·þÎñ
2024-07-16 13:13:13[ERROR]ÇëÇódubbo·þÎñʧ°Ü
2024-07-16 13:13:13[ERROR]null
2024-07-16 13:15:12[INFO]ÇëÇódubbo·þÎñ
2024-07-16 13:15:18[ERROR]ÇëÇódubbo·þÎñʧ°Ü
2024-07-16 13:15:18[ERROR]null
2024-07-16 13:15:18[INFO]ÇëÇódubbo·þÎñ
2024-07-16 13:15:20[ERROR]ÇëÇódubbo·þÎñʧ°Ü
2024-07-16 13:15:20[ERROR]null
2024-07-16 13:15:20[INFO]ÇëÇódubbo·þÎñ
2024-07-16 13:15:22[ERROR]ÇëÇódubbo·þÎñʧ°Ü
2024-07-16 13:15:22[ERROR]null
2024-07-16 13:15:22[INFO]ÇëÇódubbo·þÎñ
2024-07-16 13:15:24[ERROR]ÇëÇódubbo·þÎñʧ°Ü
2024-07-16 13:15:24[ERROR]null
2024-07-16 13:15:24[INFO]ÇëÇódubbo·þÎñ
2024-07-16 13:15:26[ERROR]ÇëÇódubbo·þÎñʧ°Ü
2024-07-16 13:15:26[ERROR]null
2024-07-16 13:15:26[INFO]ÇëÇódubbo·þÎñ
2024-07-16 13:15:28[ERROR]ÇëÇódubbo·þÎñʧ°Ü
2024-07-16 13:15:28[ERROR]null
2024-07-16 13:17:00[INFO]ÇëÇódubbo·þÎñ
2024-07-16 13:17:06[ERROR]ÇëÇódubbo·þÎñʧ°Ü
2024-07-16 13:17:06[ERROR]null
2024-07-16 13:17:06[INFO]ÇëÇódubbo·þÎñ
2024-07-16 13:17:08[ERROR]ÇëÇódubbo·þÎñʧ°Ü
2024-07-16 13:17:08[ERROR]null
2024-07-16 13:17:08[INFO]ÇëÇódubbo·þÎñ
2024-07-16 13:17:10[ERROR]ÇëÇódubbo·þÎñʧ°Ü
2024-07-16 13:17:10[ERROR]null
2024-07-16 13:17:10[INFO]ÇëÇódubbo·þÎñ
2024-07-16 13:17:12[ERROR]ÇëÇódubbo·þÎñʧ°Ü
2024-07-16 13:17:12[ERROR]null
2024-07-16 13:17:12[INFO]ÇëÇódubbo·þÎñ
2024-07-16 13:17:14[ERROR]ÇëÇódubbo·þÎñʧ°Ü
2024-07-16 13:17:14[ERROR]null
2024-07-16 13:17:14[INFO]ÇëÇódubbo·þÎñ
2024-07-16 13:17:16[ERROR]ÇëÇódubbo·þÎñʧ°Ü
2024-07-16 13:17:16[ERROR]null
2024-07-16 13:17:16[INFO]ÇëÇódubbo·þÎñ
2024-07-16 13:17:18[ERROR]ÇëÇódubbo·þÎñʧ°Ü
2024-07-16 13:17:18[ERROR]null
2024-07-16 13:17:18[INFO]ÇëÇódubbo·þÎñ
2024-07-16 13:17:21[ERROR]ÇëÇódubbo·þÎñʧ°Ü
2024-07-16 13:17:21[ERROR]null
2024-07-16 13:17:21[INFO]ÇëÇódubbo·þÎñ
2024-07-16 13:17:23[ERROR]ÇëÇódubbo·þÎñʧ°Ü
2024-07-16 13:17:23[ERROR]null
2024-07-16 13:21:55[INFO]ÇëÇódubbo·þÎñ
2024-07-16 13:22:01[ERROR]ÇëÇódubbo·þÎñʧ°Ü
2024-07-16 13:22:01[ERROR]null
2024-07-16 13:22:01[INFO]ÇëÇódubbo·þÎñ
2024-07-16 13:22:03[ERROR]ÇëÇódubbo·þÎñʧ°Ü
2024-07-16 13:22:03[ERROR]null
2024-07-16 13:22:03[INFO]ÇëÇódubbo·þÎñ
2024-07-16 13:22:05[ERROR]ÇëÇódubbo·þÎñʧ°Ü
2024-07-16 13:22:05[ERROR]null
2024-07-16 13:22:05[INFO]ÇëÇódubbo·þÎñ
2024-07-16 13:22:07[ERROR]ÇëÇódubbo·þÎñʧ°Ü
2024-07-16 13:22:07[ERROR]null
2024-07-16 13:22:07[INFO]ÇëÇódubbo·þÎñ
2024-07-16 13:22:09[ERROR]ÇëÇódubbo·þÎñʧ°Ü
2024-07-16 13:22:09[ERROR]null
2024-07-16 13:22:09[INFO]ÇëÇódubbo·þÎñ
2024-07-16 13:22:11[ERROR]ÇëÇódubbo·þÎñʧ°Ü
2024-07-16 13:22:11[ERROR]null
2024-07-16 13:22:11[INFO]ÇëÇódubbo·þÎñ
2024-07-16 13:22:14[ERROR]ÇëÇódubbo·þÎñʧ°Ü
2024-07-16 13:22:14[ERROR]null
2024-07-16 13:22:14[INFO]ÇëÇódubbo·þÎñ
2024-07-16 13:22:16[ERROR]ÇëÇódubbo·þÎñʧ°Ü
2024-07-16 13:22:16[ERROR]null
2024-07-16 13:22:16[INFO]ÇëÇódubbo·þÎñ
2024-07-16 13:22:18[ERROR]ÇëÇódubbo·þÎñʧ°Ü
2024-07-16 13:22:18[ERROR]null
2024-07-16 13:22:18[INFO]ÇëÇódubbo·þÎñ
2024-07-16 13:22:20[ERROR]ÇëÇódubbo·þÎñʧ°Ü
2024-07-16 13:22:20[ERROR]null

View File

@ -1,559 +0,0 @@
2024-07-31 13:11:12[INFO]managerThreadCounts:a=1
2024-07-31 13:11:12[INFO]JudgeFromQueue:threadNo=1
2024-07-31 13:11:12[INFO]managerThreadCounts:a=1
2024-07-31 13:11:12[INFO]managerThreadCounts:a=1
2024-07-31 13:11:12[INFO]managerThreadCounts:a=1
2024-07-31 13:11:12[INFO]JudgeFromQueue:线程1开始运行
2024-07-31 13:11:12[INFO]请求dubbo服务
2024-07-31 13:11:19[ERROR]请求dubbo服务失败
2024-07-31 13:11:19[ERROR]null
2024-07-31 13:11:19[INFO]请求dubbo服务
2024-07-31 13:11:19[INFO]线程已关闭总数5
2024-07-31 13:11:19[INFO]managerThreadCounts:a=1
2024-07-31 13:11:19[INFO]JudgeFromQueue:threadNo=1
2024-07-31 13:11:19[INFO]managerThreadCounts:a=1
2024-07-31 13:11:19[INFO]请求dubbo服务
2024-07-31 13:11:19[INFO]managerThreadCounts:a=1
2024-07-31 13:11:19[INFO]managerThreadCounts:a=1
2024-07-31 13:11:19[INFO]JudgeFromQueue:线程1开始运行
2024-07-31 13:11:19[INFO]裁判机线程已自动刷新!
2024-07-31 13:11:21[ERROR]请求dubbo服务失败
2024-07-31 13:11:21[ERROR]null
2024-07-31 13:11:21[INFO]请求dubbo服务
2024-07-31 13:11:23[INFO]线程已关闭总数5
2024-07-31 13:11:23[ERROR]请求dubbo服务失败
2024-07-31 13:11:23[ERROR]null
2024-07-31 13:11:25[ERROR]请求dubbo服务失败
2024-07-31 13:11:25[ERROR]null
2024-07-31 13:11:54[INFO]managerThreadCounts:a=1
2024-07-31 13:11:54[INFO]JudgeFromQueue:threadNo=1
2024-07-31 13:11:54[INFO]managerThreadCounts:a=1
2024-07-31 13:11:54[INFO]managerThreadCounts:a=1
2024-07-31 13:11:54[INFO]managerThreadCounts:a=1
2024-07-31 13:11:54[INFO]JudgeFromQueue:线程1开始运行
2024-07-31 13:11:55[INFO]请求dubbo服务
2024-07-31 13:12:02[ERROR]请求dubbo服务失败
2024-07-31 13:12:02[ERROR]null
2024-07-31 13:12:02[INFO]请求dubbo服务
2024-07-31 13:12:03[INFO]线程已关闭总数5
2024-07-31 13:12:03[INFO]managerThreadCounts:a=1
2024-07-31 13:12:03[INFO]JudgeFromQueue:threadNo=1
2024-07-31 13:12:03[INFO]managerThreadCounts:a=1
2024-07-31 13:12:03[INFO]managerThreadCounts:a=1
2024-07-31 13:12:03[INFO]managerThreadCounts:a=1
2024-07-31 13:12:03[INFO]JudgeFromQueue:线程1开始运行
2024-07-31 13:12:03[INFO]请求dubbo服务
2024-07-31 13:12:03[INFO]裁判机线程已自动刷新!
2024-07-31 13:12:04[ERROR]请求dubbo服务失败
2024-07-31 13:12:04[ERROR]null
2024-07-31 13:12:04[INFO]请求dubbo服务
2024-07-31 13:12:06[ERROR]请求dubbo服务失败
2024-07-31 13:12:06[ERROR]null
2024-07-31 13:12:06[INFO]请求dubbo服务
2024-07-31 13:12:08[ERROR]请求dubbo服务失败
2024-07-31 13:12:08[ERROR]null
2024-07-31 13:12:08[INFO]请求dubbo服务
2024-07-31 13:12:10[ERROR]请求dubbo服务失败
2024-07-31 13:12:10[ERROR]null
2024-07-31 13:12:10[INFO]请求dubbo服务
2024-07-31 13:12:12[ERROR]请求dubbo服务失败
2024-07-31 13:12:12[ERROR]null
2024-07-31 13:12:12[INFO]请求dubbo服务
2024-07-31 13:12:13[INFO]线程已关闭总数5
2024-07-31 13:12:13[INFO]managerThreadCounts:a=1
2024-07-31 13:12:13[INFO]JudgeFromQueue:threadNo=1
2024-07-31 13:12:13[INFO]managerThreadCounts:a=1
2024-07-31 13:12:13[INFO]managerThreadCounts:a=1
2024-07-31 13:12:13[INFO]managerThreadCounts:a=1
2024-07-31 13:12:13[INFO]JudgeFromQueue:线程1开始运行
2024-07-31 13:12:13[INFO]请求dubbo服务
2024-07-31 13:12:13[INFO]裁判机线程已自动刷新!
2024-07-31 13:12:14[ERROR]请求dubbo服务失败
2024-07-31 13:12:14[ERROR]null
2024-07-31 13:12:14[INFO]请求dubbo服务
2024-07-31 13:12:16[ERROR]请求dubbo服务失败
2024-07-31 13:12:16[ERROR]null
2024-07-31 13:12:16[INFO]请求dubbo服务
2024-07-31 13:12:18[ERROR]请求dubbo服务失败
2024-07-31 13:12:18[ERROR]null
2024-07-31 13:12:18[INFO]请求dubbo服务
2024-07-31 13:12:18[INFO]线程已关闭总数5
2024-07-31 13:12:20[ERROR]请求dubbo服务失败
2024-07-31 13:12:20[ERROR]null
2024-07-31 13:12:22[ERROR]请求dubbo服务失败
2024-07-31 13:12:22[ERROR]null
2024-07-31 13:12:23[INFO]线程已关闭总数5
2024-07-31 13:12:23[INFO]managerThreadCounts:a=1
2024-07-31 13:12:23[INFO]JudgeFromQueue:threadNo=1
2024-07-31 13:12:23[INFO]managerThreadCounts:a=1
2024-07-31 13:12:23[INFO]managerThreadCounts:a=1
2024-07-31 13:12:23[INFO]managerThreadCounts:a=1
2024-07-31 13:12:23[INFO]JudgeFromQueue:线程1开始运行
2024-07-31 13:12:23[INFO]裁判机线程已自动刷新!
2024-07-31 13:12:23[INFO]请求dubbo服务
2024-07-31 13:12:24[ERROR]请求dubbo服务失败
2024-07-31 13:12:24[ERROR]null
2024-07-31 13:12:24[INFO]请求dubbo服务
2024-07-31 13:12:26[ERROR]请求dubbo服务失败
2024-07-31 13:12:26[ERROR]null
2024-07-31 13:12:26[INFO]请求dubbo服务
2024-07-31 13:12:28[ERROR]请求dubbo服务失败
2024-07-31 13:12:28[ERROR]null
2024-07-31 13:12:28[INFO]请求dubbo服务
2024-07-31 13:12:30[ERROR]请求dubbo服务失败
2024-07-31 13:12:30[ERROR]null
2024-07-31 13:12:30[INFO]请求dubbo服务
2024-07-31 13:12:32[ERROR]请求dubbo服务失败
2024-07-31 13:12:32[ERROR]null
2024-07-31 13:12:32[INFO]请求dubbo服务
2024-07-31 13:12:33[INFO]线程已关闭总数5
2024-07-31 13:12:33[INFO]managerThreadCounts:a=1
2024-07-31 13:12:33[INFO]JudgeFromQueue:threadNo=1
2024-07-31 13:12:33[INFO]managerThreadCounts:a=1
2024-07-31 13:12:33[INFO]JudgeFromQueue:线程1开始运行
2024-07-31 13:12:33[INFO]managerThreadCounts:a=1
2024-07-31 13:12:33[INFO]managerThreadCounts:a=1
2024-07-31 13:12:33[INFO]请求dubbo服务
2024-07-31 13:12:33[INFO]裁判机线程已自动刷新!
2024-07-31 13:12:34[ERROR]请求dubbo服务失败
2024-07-31 13:12:34[ERROR]null
2024-07-31 13:12:35[INFO]请求dubbo服务
2024-07-31 13:12:37[ERROR]请求dubbo服务失败
2024-07-31 13:12:37[ERROR]null
2024-07-31 13:12:37[INFO]请求dubbo服务
2024-07-31 13:12:39[ERROR]请求dubbo服务失败
2024-07-31 13:12:39[ERROR]null
2024-07-31 13:12:39[INFO]请求dubbo服务
2024-07-31 13:12:41[ERROR]请求dubbo服务失败
2024-07-31 13:12:41[ERROR]null
2024-07-31 13:12:41[INFO]请求dubbo服务
2024-07-31 13:12:43[ERROR]请求dubbo服务失败
2024-07-31 13:12:43[ERROR]null
2024-07-31 13:12:43[INFO]请求dubbo服务
2024-07-31 13:12:43[INFO]线程已关闭总数5
2024-07-31 13:12:43[INFO]managerThreadCounts:a=1
2024-07-31 13:12:43[INFO]JudgeFromQueue:threadNo=1
2024-07-31 13:12:43[INFO]managerThreadCounts:a=1
2024-07-31 13:12:43[INFO]managerThreadCounts:a=1
2024-07-31 13:12:43[INFO]managerThreadCounts:a=1
2024-07-31 13:12:43[INFO]JudgeFromQueue:线程1开始运行
2024-07-31 13:12:43[INFO]裁判机线程已自动刷新!
2024-07-31 13:12:43[ERROR]请求dubbo服务失败
2024-07-31 13:12:43[ERROR]null
2024-07-31 13:12:43[INFO]请求dubbo服务
2024-07-31 13:12:45[ERROR]请求dubbo服务失败
2024-07-31 13:12:45[ERROR]null
2024-07-31 13:12:45[INFO]请求dubbo服务
2024-07-31 13:12:47[ERROR]请求dubbo服务失败
2024-07-31 13:12:47[ERROR]null
2024-07-31 13:12:47[INFO]请求dubbo服务
2024-07-31 13:12:49[ERROR]请求dubbo服务失败
2024-07-31 13:12:49[ERROR]null
2024-07-31 13:12:49[INFO]请求dubbo服务
2024-07-31 13:12:51[ERROR]请求dubbo服务失败
2024-07-31 13:12:51[ERROR]null
2024-07-31 13:12:51[INFO]请求dubbo服务
2024-07-31 13:12:53[ERROR]请求dubbo服务失败
2024-07-31 13:12:53[ERROR]null
2024-07-31 13:12:53[INFO]请求dubbo服务
2024-07-31 13:12:53[INFO]线程已关闭总数5
2024-07-31 13:12:53[INFO]managerThreadCounts:a=1
2024-07-31 13:12:53[INFO]JudgeFromQueue:threadNo=1
2024-07-31 13:12:53[INFO]managerThreadCounts:a=1
2024-07-31 13:12:53[INFO]managerThreadCounts:a=1
2024-07-31 13:12:53[INFO]managerThreadCounts:a=1
2024-07-31 13:12:53[INFO]JudgeFromQueue:线程1开始运行
2024-07-31 13:12:53[INFO]裁判机线程已自动刷新!
2024-07-31 13:12:53[INFO]请求dubbo服务
2024-07-31 13:12:55[ERROR]请求dubbo服务失败
2024-07-31 13:12:55[ERROR]null
2024-07-31 13:12:55[INFO]请求dubbo服务
2024-07-31 13:12:57[ERROR]请求dubbo服务失败
2024-07-31 13:12:57[ERROR]null
2024-07-31 13:12:57[INFO]请求dubbo服务
2024-07-31 13:12:59[ERROR]请求dubbo服务失败
2024-07-31 13:12:59[ERROR]null
2024-07-31 13:12:59[INFO]请求dubbo服务
2024-07-31 13:13:01[ERROR]请求dubbo服务失败
2024-07-31 13:13:01[ERROR]null
2024-07-31 13:13:01[INFO]请求dubbo服务
2024-07-31 13:13:03[ERROR]请求dubbo服务失败
2024-07-31 13:13:03[ERROR]null
2024-07-31 13:13:03[INFO]请求dubbo服务
2024-07-31 13:13:03[INFO]线程已关闭总数5
2024-07-31 13:13:03[INFO]managerThreadCounts:a=1
2024-07-31 13:13:03[INFO]JudgeFromQueue:threadNo=1
2024-07-31 13:13:03[INFO]managerThreadCounts:a=1
2024-07-31 13:13:03[INFO]managerThreadCounts:a=1
2024-07-31 13:13:03[INFO]managerThreadCounts:a=1
2024-07-31 13:13:03[INFO]JudgeFromQueue:线程1开始运行
2024-07-31 13:13:03[INFO]请求dubbo服务
2024-07-31 13:13:03[INFO]裁判机线程已自动刷新!
2024-07-31 13:13:05[ERROR]请求dubbo服务失败
2024-07-31 13:13:05[ERROR]null
2024-07-31 13:13:05[INFO]请求dubbo服务
2024-07-31 13:13:07[ERROR]请求dubbo服务失败
2024-07-31 13:13:07[ERROR]null
2024-07-31 13:13:07[INFO]请求dubbo服务
2024-07-31 13:13:09[ERROR]请求dubbo服务失败
2024-07-31 13:13:09[ERROR]null
2024-07-31 13:13:09[INFO]请求dubbo服务
2024-07-31 13:13:11[ERROR]请求dubbo服务失败
2024-07-31 13:13:11[ERROR]null
2024-07-31 13:13:11[INFO]请求dubbo服务
2024-07-31 13:13:13[ERROR]请求dubbo服务失败
2024-07-31 13:13:13[ERROR]null
2024-07-31 13:13:13[INFO]请求dubbo服务
2024-07-31 13:13:13[INFO]线程已关闭总数5
2024-07-31 13:13:13[INFO]managerThreadCounts:a=1
2024-07-31 13:13:13[INFO]JudgeFromQueue:threadNo=1
2024-07-31 13:13:13[INFO]managerThreadCounts:a=1
2024-07-31 13:13:13[INFO]managerThreadCounts:a=1
2024-07-31 13:13:13[INFO]managerThreadCounts:a=1
2024-07-31 13:13:13[INFO]JudgeFromQueue:线程1开始运行
2024-07-31 13:13:13[INFO]裁判机线程已自动刷新!
2024-07-31 13:13:13[INFO]请求dubbo服务
2024-07-31 13:13:15[ERROR]请求dubbo服务失败
2024-07-31 13:13:15[ERROR]null
2024-07-31 13:13:15[INFO]请求dubbo服务
2024-07-31 13:13:17[ERROR]请求dubbo服务失败
2024-07-31 13:13:17[ERROR]null
2024-07-31 13:13:17[INFO]请求dubbo服务
2024-07-31 13:13:19[ERROR]请求dubbo服务失败
2024-07-31 13:13:19[ERROR]null
2024-07-31 13:13:19[INFO]请求dubbo服务
2024-07-31 13:13:21[ERROR]请求dubbo服务失败
2024-07-31 13:13:21[ERROR]null
2024-07-31 13:13:21[INFO]请求dubbo服务
2024-07-31 13:13:23[INFO]线程已关闭总数5
2024-07-31 13:13:23[INFO]managerThreadCounts:a=1
2024-07-31 13:13:23[INFO]JudgeFromQueue:threadNo=1
2024-07-31 13:13:23[INFO]managerThreadCounts:a=1
2024-07-31 13:13:23[INFO]managerThreadCounts:a=1
2024-07-31 13:13:23[INFO]managerThreadCounts:a=1
2024-07-31 13:13:23[INFO]JudgeFromQueue:线程1开始运行
2024-07-31 13:13:23[INFO]请求dubbo服务
2024-07-31 13:13:23[INFO]裁判机线程已自动刷新!
2024-07-31 13:13:23[ERROR]请求dubbo服务失败
2024-07-31 13:13:23[ERROR]null
2024-07-31 13:13:23[INFO]请求dubbo服务
2024-07-31 13:13:25[ERROR]请求dubbo服务失败
2024-07-31 13:13:25[ERROR]null
2024-07-31 13:13:25[INFO]请求dubbo服务
2024-07-31 13:13:28[ERROR]请求dubbo服务失败
2024-07-31 13:13:28[ERROR]null
2024-07-31 13:13:28[INFO]请求dubbo服务
2024-07-31 13:13:30[ERROR]请求dubbo服务失败
2024-07-31 13:13:30[ERROR]null
2024-07-31 13:13:30[INFO]请求dubbo服务
2024-07-31 13:13:32[ERROR]请求dubbo服务失败
2024-07-31 13:13:32[ERROR]null
2024-07-31 13:13:32[INFO]请求dubbo服务
2024-07-31 13:13:33[INFO]线程已关闭总数5
2024-07-31 13:13:33[INFO]managerThreadCounts:a=1
2024-07-31 13:13:33[INFO]JudgeFromQueue:threadNo=1
2024-07-31 13:13:33[INFO]managerThreadCounts:a=1
2024-07-31 13:13:33[INFO]managerThreadCounts:a=1
2024-07-31 13:13:33[INFO]managerThreadCounts:a=1
2024-07-31 13:13:33[INFO]JudgeFromQueue:线程1开始运行
2024-07-31 13:13:33[INFO]裁判机线程已自动刷新!
2024-07-31 13:13:33[INFO]请求dubbo服务
2024-07-31 13:13:34[ERROR]请求dubbo服务失败
2024-07-31 13:13:34[ERROR]null
2024-07-31 13:13:34[INFO]请求dubbo服务
2024-07-31 13:13:36[ERROR]请求dubbo服务失败
2024-07-31 13:13:36[ERROR]null
2024-07-31 13:13:36[INFO]请求dubbo服务
2024-07-31 13:13:38[ERROR]请求dubbo服务失败
2024-07-31 13:13:38[ERROR]null
2024-07-31 13:13:38[INFO]请求dubbo服务
2024-07-31 13:13:40[ERROR]请求dubbo服务失败
2024-07-31 13:13:40[ERROR]null
2024-07-31 13:13:40[INFO]请求dubbo服务
2024-07-31 13:13:42[ERROR]请求dubbo服务失败
2024-07-31 13:13:42[ERROR]null
2024-07-31 13:13:42[INFO]请求dubbo服务
2024-07-31 13:13:43[INFO]线程已关闭总数5
2024-07-31 13:13:43[INFO]managerThreadCounts:a=1
2024-07-31 13:13:43[INFO]JudgeFromQueue:threadNo=1
2024-07-31 13:13:43[INFO]managerThreadCounts:a=1
2024-07-31 13:13:43[INFO]managerThreadCounts:a=1
2024-07-31 13:13:43[INFO]managerThreadCounts:a=1
2024-07-31 13:13:43[INFO]JudgeFromQueue:线程1开始运行
2024-07-31 13:13:43[INFO]请求dubbo服务
2024-07-31 13:13:43[INFO]裁判机线程已自动刷新!
2024-07-31 13:13:44[ERROR]请求dubbo服务失败
2024-07-31 13:13:44[ERROR]null
2024-07-31 13:13:44[INFO]请求dubbo服务
2024-07-31 13:13:46[ERROR]请求dubbo服务失败
2024-07-31 13:13:46[ERROR]null
2024-07-31 13:13:46[INFO]请求dubbo服务
2024-07-31 13:13:48[ERROR]请求dubbo服务失败
2024-07-31 13:13:48[ERROR]null
2024-07-31 13:13:48[INFO]请求dubbo服务
2024-07-31 13:13:49[INFO]managerThreadCounts:a=1
2024-07-31 13:13:49[INFO]JudgeFromQueue:threadNo=1
2024-07-31 13:13:49[INFO]managerThreadCounts:a=1
2024-07-31 13:13:49[INFO]managerThreadCounts:a=1
2024-07-31 13:13:49[INFO]managerThreadCounts:a=1
2024-07-31 13:13:49[INFO]JudgeFromQueue:线程1开始运行
2024-07-31 13:13:50[INFO]请求dubbo服务
2024-07-31 13:13:50[ERROR]请求dubbo服务失败
2024-07-31 13:13:50[ERROR]null
2024-07-31 13:13:50[INFO]请求dubbo服务
2024-07-31 13:13:52[ERROR]请求dubbo服务失败
2024-07-31 13:13:52[ERROR]null
2024-07-31 13:13:52[INFO]请求dubbo服务
2024-07-31 13:13:53[INFO]线程已关闭总数5
2024-07-31 13:13:53[INFO]managerThreadCounts:a=1
2024-07-31 13:13:53[INFO]JudgeFromQueue:threadNo=1
2024-07-31 13:13:53[INFO]managerThreadCounts:a=1
2024-07-31 13:13:53[INFO]managerThreadCounts:a=1
2024-07-31 13:13:53[INFO]managerThreadCounts:a=1
2024-07-31 13:13:53[INFO]JudgeFromQueue:线程1开始运行
2024-07-31 13:13:53[INFO]请求dubbo服务
2024-07-31 13:13:53[INFO]裁判机线程已自动刷新!
2024-07-31 13:13:54[ERROR]请求dubbo服务失败
2024-07-31 13:13:54[ERROR]null
2024-07-31 13:13:54[INFO]请求dubbo服务
2024-07-31 13:13:56[ERROR]请求dubbo服务失败
2024-07-31 13:13:56[ERROR]null
2024-07-31 13:13:56[INFO]请求dubbo服务
2024-07-31 13:13:56[ERROR]请求dubbo服务失败
2024-07-31 13:13:56[ERROR]null
2024-07-31 13:13:56[INFO]请求dubbo服务
2024-07-31 13:13:57[INFO]线程已关闭总数5
2024-07-31 13:13:57[INFO]managerThreadCounts:a=1
2024-07-31 13:13:57[INFO]JudgeFromQueue:threadNo=1
2024-07-31 13:13:57[INFO]managerThreadCounts:a=1
2024-07-31 13:13:57[INFO]managerThreadCounts:a=1
2024-07-31 13:13:57[INFO]managerThreadCounts:a=1
2024-07-31 13:13:57[INFO]JudgeFromQueue:线程1开始运行
2024-07-31 13:13:57[INFO]请求dubbo服务
2024-07-31 13:13:57[INFO]裁判机线程已自动刷新!
2024-07-31 13:13:58[ERROR]请求dubbo服务失败
2024-07-31 13:13:58[ERROR]null
2024-07-31 13:13:58[INFO]请求dubbo服务
2024-07-31 13:13:58[ERROR]请求dubbo服务失败
2024-07-31 13:13:58[ERROR]null
2024-07-31 13:13:58[INFO]请求dubbo服务
2024-07-31 13:14:00[ERROR]请求dubbo服务失败
2024-07-31 13:14:00[ERROR]null
2024-07-31 13:14:00[INFO]请求dubbo服务
2024-07-31 13:14:00[ERROR]请求dubbo服务失败
2024-07-31 13:14:00[ERROR]null
2024-07-31 13:14:00[INFO]请求dubbo服务
2024-07-31 13:14:02[ERROR]请求dubbo服务失败
2024-07-31 13:14:02[ERROR]null
2024-07-31 13:14:02[INFO]请求dubbo服务
2024-07-31 13:14:03[ERROR]请求dubbo服务失败
2024-07-31 13:14:03[ERROR]null
2024-07-31 13:14:03[INFO]请求dubbo服务
2024-07-31 13:14:03[INFO]线程已关闭总数5
2024-07-31 13:14:03[INFO]managerThreadCounts:a=1
2024-07-31 13:14:03[INFO]JudgeFromQueue:threadNo=1
2024-07-31 13:14:03[INFO]managerThreadCounts:a=1
2024-07-31 13:14:03[INFO]managerThreadCounts:a=1
2024-07-31 13:14:03[INFO]managerThreadCounts:a=1
2024-07-31 13:14:03[INFO]JudgeFromQueue:线程1开始运行
2024-07-31 13:14:03[INFO]请求dubbo服务
2024-07-31 13:14:03[INFO]裁判机线程已自动刷新!
2024-07-31 13:14:04[ERROR]请求dubbo服务失败
2024-07-31 13:14:04[ERROR]null
2024-07-31 13:14:04[INFO]请求dubbo服务
2024-07-31 13:14:05[ERROR]请求dubbo服务失败
2024-07-31 13:14:05[ERROR]null
2024-07-31 13:14:05[INFO]请求dubbo服务
2024-07-31 13:14:05[INFO]线程已关闭总数5
2024-07-31 13:14:06[ERROR]请求dubbo服务失败
2024-07-31 13:14:06[ERROR]null
2024-07-31 13:14:06[INFO]请求dubbo服务
2024-07-31 13:14:07[ERROR]请求dubbo服务失败
2024-07-31 13:14:07[ERROR]null
2024-07-31 13:14:07[INFO]线程已关闭总数5
2024-07-31 13:14:07[INFO]managerThreadCounts:a=1
2024-07-31 13:14:07[INFO]JudgeFromQueue:threadNo=1
2024-07-31 13:14:07[INFO]managerThreadCounts:a=1
2024-07-31 13:14:07[INFO]managerThreadCounts:a=1
2024-07-31 13:14:07[INFO]managerThreadCounts:a=1
2024-07-31 13:14:07[INFO]JudgeFromQueue:线程1开始运行
2024-07-31 13:14:07[ERROR]请求dubbo服务失败
2024-07-31 13:14:07[ERROR]null
2024-07-31 13:14:07[INFO]裁判机线程已自动刷新!
2024-07-31 13:14:07[INFO]请求dubbo服务
2024-07-31 13:14:08[ERROR]请求dubbo服务失败
2024-07-31 13:14:08[ERROR]null
2024-07-31 13:14:09[INFO]请求dubbo服务
2024-07-31 13:14:09[ERROR]请求dubbo服务失败
2024-07-31 13:14:09[ERROR]null
2024-07-31 13:14:09[INFO]请求dubbo服务
2024-07-31 13:14:11[ERROR]请求dubbo服务失败
2024-07-31 13:14:11[ERROR]null
2024-07-31 13:14:11[INFO]请求dubbo服务
2024-07-31 13:14:11[ERROR]请求dubbo服务失败
2024-07-31 13:14:11[ERROR]null
2024-07-31 13:14:11[INFO]请求dubbo服务
2024-07-31 13:14:13[ERROR]请求dubbo服务失败
2024-07-31 13:14:13[ERROR]null
2024-07-31 13:14:13[INFO]请求dubbo服务
2024-07-31 13:14:13[ERROR]请求dubbo服务失败
2024-07-31 13:14:13[ERROR]null
2024-07-31 13:14:13[INFO]请求dubbo服务
2024-07-31 13:14:13[INFO]线程已关闭总数5
2024-07-31 13:14:13[INFO]managerThreadCounts:a=1
2024-07-31 13:14:13[INFO]JudgeFromQueue:threadNo=1
2024-07-31 13:14:13[INFO]managerThreadCounts:a=1
2024-07-31 13:14:13[INFO]managerThreadCounts:a=1
2024-07-31 13:14:13[INFO]managerThreadCounts:a=1
2024-07-31 13:14:13[INFO]JudgeFromQueue:线程1开始运行
2024-07-31 13:14:13[INFO]请求dubbo服务
2024-07-31 13:14:13[INFO]裁判机线程已自动刷新!
2024-07-31 13:14:15[ERROR]请求dubbo服务失败
2024-07-31 13:14:15[ERROR]null
2024-07-31 13:14:15[INFO]请求dubbo服务
2024-07-31 13:14:15[ERROR]请求dubbo服务失败
2024-07-31 13:14:15[ERROR]null
2024-07-31 13:14:15[INFO]请求dubbo服务
2024-07-31 13:14:17[ERROR]请求dubbo服务失败
2024-07-31 13:14:17[ERROR]null
2024-07-31 13:14:17[INFO]请求dubbo服务
2024-07-31 13:14:17[ERROR]请求dubbo服务失败
2024-07-31 13:14:17[ERROR]null
2024-07-31 13:14:17[INFO]请求dubbo服务
2024-07-31 13:14:17[INFO]线程已关闭总数5
2024-07-31 13:14:17[INFO]managerThreadCounts:a=1
2024-07-31 13:14:17[INFO]JudgeFromQueue:threadNo=1
2024-07-31 13:14:17[INFO]managerThreadCounts:a=1
2024-07-31 13:14:17[INFO]managerThreadCounts:a=1
2024-07-31 13:14:17[INFO]managerThreadCounts:a=1
2024-07-31 13:14:17[INFO]JudgeFromQueue:线程1开始运行
2024-07-31 13:14:17[INFO]请求dubbo服务
2024-07-31 13:14:17[INFO]裁判机线程已自动刷新!
2024-07-31 13:14:19[ERROR]请求dubbo服务失败
2024-07-31 13:14:19[ERROR]null
2024-07-31 13:14:19[INFO]请求dubbo服务
2024-07-31 13:14:19[ERROR]请求dubbo服务失败
2024-07-31 13:14:19[ERROR]null
2024-07-31 13:14:19[INFO]请求dubbo服务
2024-07-31 13:14:21[ERROR]请求dubbo服务失败
2024-07-31 13:14:21[ERROR]null
2024-07-31 13:14:21[INFO]请求dubbo服务
2024-07-31 13:14:21[ERROR]请求dubbo服务失败
2024-07-31 13:14:21[ERROR]null
2024-07-31 13:14:21[INFO]请求dubbo服务
2024-07-31 13:14:23[ERROR]请求dubbo服务失败
2024-07-31 13:14:23[ERROR]null
2024-07-31 13:14:23[INFO]请求dubbo服务
2024-07-31 13:14:23[ERROR]请求dubbo服务失败
2024-07-31 13:14:23[ERROR]null
2024-07-31 13:14:23[INFO]请求dubbo服务
2024-07-31 13:14:23[INFO]线程已关闭总数5
2024-07-31 13:14:23[INFO]managerThreadCounts:a=1
2024-07-31 13:14:23[INFO]JudgeFromQueue:threadNo=1
2024-07-31 13:14:23[INFO]managerThreadCounts:a=1
2024-07-31 13:14:23[INFO]managerThreadCounts:a=1
2024-07-31 13:14:23[INFO]managerThreadCounts:a=1
2024-07-31 13:14:23[INFO]裁判机线程已自动刷新!
2024-07-31 13:14:23[INFO]请求dubbo服务
2024-07-31 13:14:23[INFO]JudgeFromQueue:线程1开始运行
2024-07-31 13:14:25[ERROR]请求dubbo服务失败
2024-07-31 13:14:25[ERROR]null
2024-07-31 13:14:25[INFO]请求dubbo服务
2024-07-31 13:14:25[ERROR]请求dubbo服务失败
2024-07-31 13:14:25[ERROR]null
2024-07-31 13:14:25[INFO]请求dubbo服务
2024-07-31 13:14:27[ERROR]请求dubbo服务失败
2024-07-31 13:14:27[ERROR]null
2024-07-31 13:14:27[INFO]请求dubbo服务
2024-07-31 13:14:27[ERROR]请求dubbo服务失败
2024-07-31 13:14:27[ERROR]null
2024-07-31 13:14:27[INFO]请求dubbo服务
2024-07-31 13:14:27[INFO]线程已关闭总数5
2024-07-31 13:14:27[INFO]managerThreadCounts:a=1
2024-07-31 13:14:27[INFO]JudgeFromQueue:threadNo=1
2024-07-31 13:14:27[INFO]managerThreadCounts:a=1
2024-07-31 13:14:27[INFO]managerThreadCounts:a=1
2024-07-31 13:14:27[INFO]JudgeFromQueue:线程1开始运行
2024-07-31 13:14:27[INFO]managerThreadCounts:a=1
2024-07-31 13:14:27[ERROR]请求dubbo服务失败
2024-07-31 13:14:27[ERROR]null
2024-07-31 13:14:27[INFO]裁判机线程已自动刷新!
2024-07-31 13:14:27[INFO]请求dubbo服务
2024-07-31 13:14:29[ERROR]请求dubbo服务失败
2024-07-31 13:14:29[ERROR]null
2024-07-31 13:14:29[INFO]请求dubbo服务
2024-07-31 13:14:29[ERROR]请求dubbo服务失败
2024-07-31 13:14:29[ERROR]null
2024-07-31 13:14:29[INFO]请求dubbo服务
2024-07-31 13:14:31[ERROR]请求dubbo服务失败
2024-07-31 13:14:31[ERROR]null
2024-07-31 13:14:31[INFO]请求dubbo服务
2024-07-31 13:14:31[ERROR]请求dubbo服务失败
2024-07-31 13:14:31[ERROR]null
2024-07-31 13:14:31[INFO]请求dubbo服务
2024-07-31 13:14:33[ERROR]请求dubbo服务失败
2024-07-31 13:14:33[ERROR]null
2024-07-31 13:14:33[INFO]请求dubbo服务
2024-07-31 13:14:33[ERROR]请求dubbo服务失败
2024-07-31 13:14:33[ERROR]null
2024-07-31 13:14:33[INFO]请求dubbo服务
2024-07-31 13:14:33[INFO]线程已关闭总数5
2024-07-31 13:14:33[INFO]managerThreadCounts:a=1
2024-07-31 13:14:33[INFO]JudgeFromQueue:threadNo=1
2024-07-31 13:14:33[INFO]managerThreadCounts:a=1
2024-07-31 13:14:33[INFO]managerThreadCounts:a=1
2024-07-31 13:14:33[INFO]managerThreadCounts:a=1
2024-07-31 13:14:33[INFO]JudgeFromQueue:线程1开始运行
2024-07-31 13:14:33[INFO]裁判机线程已自动刷新!
2024-07-31 13:14:33[INFO]请求dubbo服务
2024-07-31 13:14:35[ERROR]请求dubbo服务失败
2024-07-31 13:14:35[ERROR]null
2024-07-31 13:14:35[INFO]请求dubbo服务
2024-07-31 13:14:35[ERROR]请求dubbo服务失败
2024-07-31 13:14:35[ERROR]null
2024-07-31 13:14:35[INFO]请求dubbo服务
2024-07-31 13:14:37[ERROR]请求dubbo服务失败
2024-07-31 13:14:37[ERROR]null
2024-07-31 13:14:37[INFO]请求dubbo服务
2024-07-31 13:14:37[INFO]线程已关闭总数5
2024-07-31 13:14:37[INFO]managerThreadCounts:a=1
2024-07-31 13:14:37[INFO]JudgeFromQueue:threadNo=1
2024-07-31 13:14:37[INFO]managerThreadCounts:a=1
2024-07-31 13:14:37[INFO]managerThreadCounts:a=1
2024-07-31 13:14:37[INFO]managerThreadCounts:a=1
2024-07-31 13:14:37[INFO]JudgeFromQueue:线程1开始运行
2024-07-31 13:14:37[INFO]请求dubbo服务
2024-07-31 13:14:37[INFO]裁判机线程已自动刷新!
2024-07-31 13:14:37[ERROR]请求dubbo服务失败
2024-07-31 13:14:37[ERROR]null
2024-07-31 13:14:37[INFO]请求dubbo服务
2024-07-31 13:14:39[ERROR]请求dubbo服务失败
2024-07-31 13:14:39[ERROR]null
2024-07-31 13:14:39[INFO]请求dubbo服务
2024-07-31 13:14:39[ERROR]请求dubbo服务失败
2024-07-31 13:14:39[ERROR]null
2024-07-31 13:14:39[INFO]请求dubbo服务
2024-07-31 13:14:41[ERROR]请求dubbo服务失败
2024-07-31 13:14:41[ERROR]null
2024-07-31 13:14:41[INFO]请求dubbo服务
2024-07-31 13:14:41[ERROR]请求dubbo服务失败
2024-07-31 13:14:41[ERROR]null
2024-07-31 13:14:41[INFO]请求dubbo服务
2024-07-31 13:14:43[ERROR]请求dubbo服务失败
2024-07-31 13:14:43[ERROR]null
2024-07-31 13:14:43[INFO]请求dubbo服务
2024-07-31 13:14:43[INFO]线程已关闭总数5
2024-07-31 13:14:43[INFO]managerThreadCounts:a=1
2024-07-31 13:14:43[INFO]JudgeFromQueue:threadNo=1
2024-07-31 13:14:43[INFO]managerThreadCounts:a=1
2024-07-31 13:14:43[INFO]managerThreadCounts:a=1
2024-07-31 13:14:43[INFO]managerThreadCounts:a=1
2024-07-31 13:14:43[INFO]JudgeFromQueue:线程1开始运行
2024-07-31 13:14:43[INFO]请求dubbo服务
2024-07-31 13:14:43[INFO]裁判机线程已自动刷新!
2024-07-31 13:14:43[ERROR]请求dubbo服务失败
2024-07-31 13:14:43[ERROR]null
2024-07-31 13:14:43[INFO]请求dubbo服务
2024-07-31 13:14:45[ERROR]请求dubbo服务失败
2024-07-31 13:14:45[ERROR]null
2024-07-31 13:14:45[INFO]请求dubbo服务

View File

@ -1,622 +0,0 @@
2024-08-26 23:18:41[INFO]managerThreadCounts:a=1
2024-08-26 23:18:41[INFO]JudgeFromQueue:threadNo=1
2024-08-26 23:18:41[INFO]managerThreadCounts:a=1
2024-08-26 23:18:41[INFO]managerThreadCounts:a=1
2024-08-26 23:18:41[INFO]managerThreadCounts:a=1
2024-08-26 23:18:41[INFO]JudgeFromQueue:线程1开始运行
2024-08-26 23:18:42[INFO]请求dubbo服务
2024-08-26 23:19:35[INFO]线程已关闭总数5
2024-08-26 23:20:39[INFO]managerThreadCounts:a=1
2024-08-26 23:20:39[INFO]JudgeFromQueue:threadNo=1
2024-08-26 23:20:39[INFO]managerThreadCounts:a=1
2024-08-26 23:20:39[INFO]JudgeFromQueue:线程1开始运行
2024-08-26 23:20:39[INFO]managerThreadCounts:a=1
2024-08-26 23:20:39[INFO]managerThreadCounts:a=1
2024-08-26 23:20:39[ERROR]请求dubbo服务失败
2024-08-26 23:20:39[ERROR]getSolutions出错:null
2024-08-26 23:20:39[INFO]请求dubbo服务
2024-08-26 23:20:39[ERROR]请求dubbo服务失败
2024-08-26 23:20:39[ERROR]getSolutions出错:null
2024-08-26 23:20:39[INFO]请求dubbo服务
2024-08-26 23:20:39[ERROR]请求dubbo服务失败
2024-08-26 23:20:39[ERROR]getSolutions出错:null
2024-08-26 23:20:39[INFO]请求dubbo服务
2024-08-26 23:20:39[ERROR]请求dubbo服务失败
2024-08-26 23:20:39[ERROR]getSolutions出错:null
2024-08-26 23:20:39[INFO]请求dubbo服务
2024-08-26 23:20:39[ERROR]请求dubbo服务失败
2024-08-26 23:20:39[ERROR]getSolutions出错:null
2024-08-26 23:20:39[INFO]请求dubbo服务
2024-08-26 23:20:39[ERROR]请求dubbo服务失败
2024-08-26 23:20:39[ERROR]getSolutions出错:null
2024-08-26 23:20:39[INFO]请求dubbo服务
2024-08-26 23:20:39[ERROR]请求dubbo服务失败
2024-08-26 23:20:39[ERROR]getSolutions出错:null
2024-08-26 23:20:39[INFO]请求dubbo服务
2024-08-26 23:20:39[ERROR]请求dubbo服务失败
2024-08-26 23:20:39[ERROR]getSolutions出错:null
2024-08-26 23:20:39[INFO]请求dubbo服务
2024-08-26 23:20:39[ERROR]请求dubbo服务失败
2024-08-26 23:20:39[ERROR]getSolutions出错:null
2024-08-26 23:20:39[INFO]请求dubbo服务
2024-08-26 23:20:39[ERROR]请求dubbo服务失败
2024-08-26 23:20:39[ERROR]getSolutions出错:null
2024-08-26 23:20:39[INFO]请求dubbo服务
2024-08-26 23:20:39[ERROR]请求dubbo服务失败
2024-08-26 23:20:39[ERROR]getSolutions出错:null
2024-08-26 23:20:39[INFO]请求dubbo服务
2024-08-26 23:20:39[ERROR]请求dubbo服务失败
2024-08-26 23:20:39[ERROR]getSolutions出错:null
2024-08-26 23:20:39[INFO]请求dubbo服务
2024-08-26 23:20:39[ERROR]请求dubbo服务失败
2024-08-26 23:20:39[ERROR]getSolutions出错:null
2024-08-26 23:20:39[INFO]请求dubbo服务
2024-08-26 23:20:39[ERROR]请求dubbo服务失败
2024-08-26 23:20:39[ERROR]getSolutions出错:null
2024-08-26 23:20:39[INFO]请求dubbo服务
2024-08-26 23:20:39[ERROR]请求dubbo服务失败
2024-08-26 23:20:39[ERROR]getSolutions出错:null
2024-08-26 23:20:39[INFO]请求dubbo服务
2024-08-26 23:20:39[ERROR]请求dubbo服务失败
2024-08-26 23:20:39[ERROR]getSolutions出错:null
2024-08-26 23:20:39[INFO]请求dubbo服务
2024-08-26 23:20:39[ERROR]请求dubbo服务失败
2024-08-26 23:20:39[ERROR]getSolutions出错:null
2024-08-26 23:20:39[INFO]请求dubbo服务
2024-08-26 23:20:39[ERROR]请求dubbo服务失败
2024-08-26 23:20:39[ERROR]getSolutions出错:null
2024-08-26 23:20:39[INFO]请求dubbo服务
2024-08-26 23:20:39[ERROR]请求dubbo服务失败
2024-08-26 23:20:39[ERROR]getSolutions出错:null
2024-08-26 23:20:39[INFO]请求dubbo服务
2024-08-26 23:20:39[ERROR]请求dubbo服务失败
2024-08-26 23:20:39[ERROR]getSolutions出错:null
2024-08-26 23:20:39[INFO]请求dubbo服务
2024-08-26 23:20:39[ERROR]请求dubbo服务失败
2024-08-26 23:20:39[ERROR]getSolutions出错:null
2024-08-26 23:20:39[INFO]请求dubbo服务
2024-08-26 23:20:39[ERROR]请求dubbo服务失败
2024-08-26 23:20:39[ERROR]getSolutions出错:null
2024-08-26 23:20:39[INFO]请求dubbo服务
2024-08-26 23:20:39[ERROR]请求dubbo服务失败
2024-08-26 23:20:39[ERROR]getSolutions出错:null
2024-08-26 23:20:39[INFO]请求dubbo服务
2024-08-26 23:20:39[ERROR]请求dubbo服务失败
2024-08-26 23:20:39[ERROR]getSolutions出错:null
2024-08-26 23:20:39[INFO]请求dubbo服务
2024-08-26 23:20:39[ERROR]请求dubbo服务失败
2024-08-26 23:20:39[ERROR]getSolutions出错:null
2024-08-26 23:20:39[INFO]请求dubbo服务
2024-08-26 23:20:39[ERROR]请求dubbo服务失败
2024-08-26 23:20:39[ERROR]getSolutions出错:null
2024-08-26 23:20:39[INFO]请求dubbo服务
2024-08-26 23:20:39[ERROR]请求dubbo服务失败
2024-08-26 23:20:39[ERROR]getSolutions出错:null
2024-08-26 23:20:39[INFO]请求dubbo服务
2024-08-26 23:20:39[ERROR]请求dubbo服务失败
2024-08-26 23:20:39[ERROR]getSolutions出错:null
2024-08-26 23:20:39[INFO]请求dubbo服务
2024-08-26 23:20:39[ERROR]请求dubbo服务失败
2024-08-26 23:20:39[ERROR]getSolutions出错:null
2024-08-26 23:20:39[INFO]请求dubbo服务
2024-08-26 23:20:39[ERROR]请求dubbo服务失败
2024-08-26 23:20:39[ERROR]getSolutions出错:null
2024-08-26 23:20:39[INFO]请求dubbo服务
2024-08-26 23:20:39[ERROR]请求dubbo服务失败
2024-08-26 23:20:39[ERROR]getSolutions出错:null
2024-08-26 23:20:39[INFO]请求dubbo服务
2024-08-26 23:20:39[ERROR]请求dubbo服务失败
2024-08-26 23:20:39[ERROR]getSolutions出错:null
2024-08-26 23:20:39[INFO]请求dubbo服务
2024-08-26 23:20:39[ERROR]请求dubbo服务失败
2024-08-26 23:20:39[ERROR]getSolutions出错:null
2024-08-26 23:20:39[INFO]请求dubbo服务
2024-08-26 23:20:39[ERROR]请求dubbo服务失败
2024-08-26 23:20:39[ERROR]getSolutions出错:null
2024-08-26 23:20:39[INFO]请求dubbo服务
2024-08-26 23:20:39[ERROR]请求dubbo服务失败
2024-08-26 23:20:39[ERROR]getSolutions出错:null
2024-08-26 23:20:39[INFO]请求dubbo服务
2024-08-26 23:20:39[ERROR]请求dubbo服务失败
2024-08-26 23:20:39[ERROR]getSolutions出错:null
2024-08-26 23:20:39[INFO]请求dubbo服务
2024-08-26 23:20:39[ERROR]请求dubbo服务失败
2024-08-26 23:20:39[ERROR]getSolutions出错:null
2024-08-26 23:20:39[INFO]请求dubbo服务
2024-08-26 23:20:39[ERROR]请求dubbo服务失败
2024-08-26 23:20:39[ERROR]getSolutions出错:null
2024-08-26 23:20:39[INFO]请求dubbo服务
2024-08-26 23:20:39[ERROR]请求dubbo服务失败
2024-08-26 23:20:39[ERROR]getSolutions出错:null
2024-08-26 23:20:39[INFO]请求dubbo服务
2024-08-26 23:20:39[ERROR]请求dubbo服务失败
2024-08-26 23:20:39[ERROR]getSolutions出错:null
2024-08-26 23:20:39[INFO]请求dubbo服务
2024-08-26 23:20:39[ERROR]请求dubbo服务失败
2024-08-26 23:20:39[ERROR]getSolutions出错:null
2024-08-26 23:20:39[INFO]请求dubbo服务
2024-08-26 23:20:39[ERROR]请求dubbo服务失败
2024-08-26 23:20:39[ERROR]getSolutions出错:null
2024-08-26 23:20:39[INFO]请求dubbo服务
2024-08-26 23:20:39[ERROR]请求dubbo服务失败
2024-08-26 23:20:39[ERROR]getSolutions出错:null
2024-08-26 23:20:39[INFO]请求dubbo服务
2024-08-26 23:20:39[ERROR]请求dubbo服务失败
2024-08-26 23:20:39[ERROR]getSolutions出错:null
2024-08-26 23:20:39[INFO]请求dubbo服务
2024-08-26 23:20:40[ERROR]请求dubbo服务失败
2024-08-26 23:20:40[ERROR]getSolutions出错:null
2024-08-26 23:20:40[INFO]请求dubbo服务
2024-08-26 23:20:40[ERROR]请求dubbo服务失败
2024-08-26 23:20:40[ERROR]getSolutions出错:null
2024-08-26 23:20:40[INFO]请求dubbo服务
2024-08-26 23:20:40[ERROR]请求dubbo服务失败
2024-08-26 23:20:40[ERROR]getSolutions出错:null
2024-08-26 23:20:40[INFO]请求dubbo服务
2024-08-26 23:20:40[ERROR]请求dubbo服务失败
2024-08-26 23:20:40[ERROR]getSolutions出错:null
2024-08-26 23:20:40[INFO]请求dubbo服务
2024-08-26 23:20:40[ERROR]请求dubbo服务失败
2024-08-26 23:20:40[ERROR]getSolutions出错:null
2024-08-26 23:20:40[INFO]请求dubbo服务
2024-08-26 23:20:40[ERROR]请求dubbo服务失败
2024-08-26 23:20:40[ERROR]getSolutions出错:null
2024-08-26 23:20:40[INFO]请求dubbo服务
2024-08-26 23:20:40[ERROR]请求dubbo服务失败
2024-08-26 23:20:40[ERROR]getSolutions出错:null
2024-08-26 23:20:40[INFO]请求dubbo服务
2024-08-26 23:20:40[ERROR]请求dubbo服务失败
2024-08-26 23:20:40[ERROR]getSolutions出错:null
2024-08-26 23:20:40[INFO]请求dubbo服务
2024-08-26 23:20:40[ERROR]请求dubbo服务失败
2024-08-26 23:20:40[ERROR]getSolutions出错:null
2024-08-26 23:20:40[INFO]请求dubbo服务
2024-08-26 23:20:40[ERROR]请求dubbo服务失败
2024-08-26 23:20:40[ERROR]getSolutions出错:null
2024-08-26 23:20:40[INFO]请求dubbo服务
2024-08-26 23:20:40[ERROR]请求dubbo服务失败
2024-08-26 23:20:40[ERROR]getSolutions出错:null
2024-08-26 23:20:40[INFO]请求dubbo服务
2024-08-26 23:20:40[ERROR]请求dubbo服务失败
2024-08-26 23:20:40[ERROR]getSolutions出错:null
2024-08-26 23:20:40[INFO]请求dubbo服务
2024-08-26 23:20:40[ERROR]请求dubbo服务失败
2024-08-26 23:20:40[ERROR]getSolutions出错:null
2024-08-26 23:20:40[INFO]请求dubbo服务
2024-08-26 23:20:40[ERROR]请求dubbo服务失败
2024-08-26 23:20:40[ERROR]getSolutions出错:null
2024-08-26 23:20:40[INFO]请求dubbo服务
2024-08-26 23:20:40[ERROR]请求dubbo服务失败
2024-08-26 23:20:40[ERROR]getSolutions出错:null
2024-08-26 23:20:40[INFO]请求dubbo服务
2024-08-26 23:20:40[ERROR]请求dubbo服务失败
2024-08-26 23:20:40[ERROR]getSolutions出错:null
2024-08-26 23:20:40[INFO]请求dubbo服务
2024-08-26 23:20:40[ERROR]请求dubbo服务失败
2024-08-26 23:20:40[ERROR]getSolutions出错:null
2024-08-26 23:20:40[INFO]请求dubbo服务
2024-08-26 23:20:40[ERROR]请求dubbo服务失败
2024-08-26 23:20:40[ERROR]getSolutions出错:null
2024-08-26 23:20:40[INFO]请求dubbo服务
2024-08-26 23:20:40[ERROR]请求dubbo服务失败
2024-08-26 23:20:40[ERROR]getSolutions出错:null
2024-08-26 23:20:40[INFO]请求dubbo服务
2024-08-26 23:20:40[ERROR]请求dubbo服务失败
2024-08-26 23:20:40[ERROR]getSolutions出错:null
2024-08-26 23:20:40[INFO]请求dubbo服务
2024-08-26 23:20:40[ERROR]请求dubbo服务失败
2024-08-26 23:20:40[ERROR]getSolutions出错:null
2024-08-26 23:20:40[INFO]请求dubbo服务
2024-08-26 23:20:40[ERROR]请求dubbo服务失败
2024-08-26 23:20:40[ERROR]getSolutions出错:null
2024-08-26 23:20:40[INFO]请求dubbo服务
2024-08-26 23:20:40[ERROR]请求dubbo服务失败
2024-08-26 23:20:40[ERROR]getSolutions出错:null
2024-08-26 23:20:40[INFO]请求dubbo服务
2024-08-26 23:20:40[ERROR]请求dubbo服务失败
2024-08-26 23:20:40[ERROR]getSolutions出错:null
2024-08-26 23:20:40[INFO]请求dubbo服务
2024-08-26 23:20:40[ERROR]请求dubbo服务失败
2024-08-26 23:20:40[ERROR]getSolutions出错:null
2024-08-26 23:20:40[INFO]请求dubbo服务
2024-08-26 23:20:40[ERROR]请求dubbo服务失败
2024-08-26 23:20:40[ERROR]getSolutions出错:null
2024-08-26 23:20:40[INFO]请求dubbo服务
2024-08-26 23:20:40[ERROR]请求dubbo服务失败
2024-08-26 23:20:40[ERROR]getSolutions出错:null
2024-08-26 23:20:40[INFO]请求dubbo服务
2024-08-26 23:20:40[ERROR]请求dubbo服务失败
2024-08-26 23:20:40[ERROR]getSolutions出错:null
2024-08-26 23:20:40[INFO]请求dubbo服务
2024-08-26 23:20:40[ERROR]请求dubbo服务失败
2024-08-26 23:20:40[ERROR]getSolutions出错:null
2024-08-26 23:20:40[INFO]请求dubbo服务
2024-08-26 23:20:40[ERROR]请求dubbo服务失败
2024-08-26 23:20:40[ERROR]getSolutions出错:null
2024-08-26 23:20:40[INFO]请求dubbo服务
2024-08-26 23:20:40[ERROR]请求dubbo服务失败
2024-08-26 23:20:40[ERROR]getSolutions出错:null
2024-08-26 23:20:40[INFO]请求dubbo服务
2024-08-26 23:20:40[ERROR]请求dubbo服务失败
2024-08-26 23:20:40[ERROR]getSolutions出错:null
2024-08-26 23:20:40[INFO]请求dubbo服务
2024-08-26 23:20:40[ERROR]请求dubbo服务失败
2024-08-26 23:20:40[ERROR]getSolutions出错:null
2024-08-26 23:20:40[INFO]请求dubbo服务
2024-08-26 23:20:40[ERROR]请求dubbo服务失败
2024-08-26 23:20:40[ERROR]getSolutions出错:null
2024-08-26 23:20:40[INFO]请求dubbo服务
2024-08-26 23:20:40[ERROR]请求dubbo服务失败
2024-08-26 23:20:40[ERROR]getSolutions出错:null
2024-08-26 23:20:40[INFO]请求dubbo服务
2024-08-26 23:20:40[ERROR]请求dubbo服务失败
2024-08-26 23:20:40[ERROR]getSolutions出错:null
2024-08-26 23:20:40[INFO]请求dubbo服务
2024-08-26 23:20:40[ERROR]请求dubbo服务失败
2024-08-26 23:20:40[ERROR]getSolutions出错:null
2024-08-26 23:20:40[INFO]请求dubbo服务
2024-08-26 23:20:40[ERROR]请求dubbo服务失败
2024-08-26 23:20:40[ERROR]getSolutions出错:null
2024-08-26 23:20:40[INFO]请求dubbo服务
2024-08-26 23:20:40[ERROR]请求dubbo服务失败
2024-08-26 23:20:40[ERROR]getSolutions出错:null
2024-08-26 23:20:40[INFO]请求dubbo服务
2024-08-26 23:20:40[ERROR]请求dubbo服务失败
2024-08-26 23:20:40[ERROR]getSolutions出错:null
2024-08-26 23:20:40[INFO]请求dubbo服务
2024-08-26 23:20:40[ERROR]请求dubbo服务失败
2024-08-26 23:20:40[ERROR]getSolutions出错:null
2024-08-26 23:20:40[INFO]请求dubbo服务
2024-08-26 23:20:40[ERROR]请求dubbo服务失败
2024-08-26 23:20:40[ERROR]getSolutions出错:null
2024-08-26 23:20:40[INFO]请求dubbo服务
2024-08-26 23:20:40[ERROR]请求dubbo服务失败
2024-08-26 23:20:40[ERROR]getSolutions出错:null
2024-08-26 23:20:40[INFO]请求dubbo服务
2024-08-26 23:20:40[ERROR]请求dubbo服务失败
2024-08-26 23:20:40[ERROR]getSolutions出错:null
2024-08-26 23:20:40[INFO]请求dubbo服务
2024-08-26 23:20:40[ERROR]请求dubbo服务失败
2024-08-26 23:20:40[ERROR]getSolutions出错:null
2024-08-26 23:20:40[INFO]请求dubbo服务
2024-08-26 23:20:40[ERROR]请求dubbo服务失败
2024-08-26 23:20:40[ERROR]getSolutions出错:null
2024-08-26 23:20:40[INFO]请求dubbo服务
2024-08-26 23:20:40[ERROR]请求dubbo服务失败
2024-08-26 23:20:40[ERROR]getSolutions出错:null
2024-08-26 23:20:40[INFO]请求dubbo服务
2024-08-26 23:20:40[ERROR]请求dubbo服务失败
2024-08-26 23:20:40[ERROR]getSolutions出错:null
2024-08-26 23:20:40[INFO]请求dubbo服务
2024-08-26 23:20:40[ERROR]请求dubbo服务失败
2024-08-26 23:20:40[ERROR]getSolutions出错:null
2024-08-26 23:20:40[INFO]请求dubbo服务
2024-08-26 23:20:40[ERROR]请求dubbo服务失败
2024-08-26 23:20:40[ERROR]getSolutions出错:null
2024-08-26 23:20:40[INFO]请求dubbo服务
2024-08-26 23:20:40[ERROR]请求dubbo服务失败
2024-08-26 23:20:40[ERROR]getSolutions出错:null
2024-08-26 23:20:40[INFO]请求dubbo服务
2024-08-26 23:20:40[ERROR]请求dubbo服务失败
2024-08-26 23:20:40[ERROR]getSolutions出错:null
2024-08-26 23:20:40[INFO]请求dubbo服务
2024-08-26 23:20:40[ERROR]请求dubbo服务失败
2024-08-26 23:20:40[ERROR]getSolutions出错:null
2024-08-26 23:20:40[INFO]请求dubbo服务
2024-08-26 23:20:40[INFO]线程已关闭总数5
2024-08-26 23:20:40[ERROR]请求dubbo服务失败
2024-08-26 23:20:40[ERROR]getSolutions出错:null
2024-08-26 23:20:49[INFO]managerThreadCounts:a=1
2024-08-26 23:20:49[INFO]JudgeFromQueue:threadNo=1
2024-08-26 23:20:49[INFO]managerThreadCounts:a=1
2024-08-26 23:20:49[INFO]managerThreadCounts:a=1
2024-08-26 23:20:49[INFO]managerThreadCounts:a=1
2024-08-26 23:20:49[INFO]JudgeFromQueue:线程1开始运行
2024-08-26 23:20:49[INFO]请求dubbo服务
2024-08-26 23:28:47[ERROR]请求dubbo服务失败
2024-08-26 23:28:47[ERROR]getSolutions出错:null
2024-08-26 23:28:51[INFO]请求dubbo服务
2024-08-26 23:28:51[ERROR]请求dubbo服务失败
2024-08-26 23:28:51[ERROR]getSolutions出错:null
2024-08-26 23:28:55[INFO]请求dubbo服务
2024-08-26 23:28:55[ERROR]请求dubbo服务失败
2024-08-26 23:28:55[ERROR]getSolutions出错:null
2024-08-26 23:28:59[INFO]请求dubbo服务
2024-08-26 23:28:59[ERROR]请求dubbo服务失败
2024-08-26 23:28:59[ERROR]getSolutions出错:null
2024-08-26 23:29:00[INFO]线程已关闭总数5
2024-08-26 23:29:07[INFO]managerThreadCounts:a=1
2024-08-26 23:29:07[INFO]JudgeFromQueue:threadNo=1
2024-08-26 23:29:07[INFO]managerThreadCounts:a=1
2024-08-26 23:29:07[INFO]managerThreadCounts:a=1
2024-08-26 23:29:07[INFO]JudgeFromQueue:线程1开始运行
2024-08-26 23:29:07[INFO]managerThreadCounts:a=1
2024-08-26 23:29:07[INFO]请求dubbo服务
2024-08-26 23:29:07[ERROR]请求dubbo服务失败
2024-08-26 23:29:07[ERROR]getSolutions出错:null
2024-08-26 23:29:07[INFO]请求dubbo服务
2024-08-26 23:29:07[ERROR]请求dubbo服务失败
2024-08-26 23:29:07[ERROR]getSolutions出错:null
2024-08-26 23:29:07[INFO]请求dubbo服务
2024-08-26 23:29:07[ERROR]请求dubbo服务失败
2024-08-26 23:29:07[ERROR]getSolutions出错:null
2024-08-26 23:29:08[INFO]请求dubbo服务
2024-08-26 23:29:08[ERROR]请求dubbo服务失败
2024-08-26 23:29:08[ERROR]getSolutions出错:null
2024-08-26 23:29:08[INFO]请求dubbo服务
2024-08-26 23:29:08[ERROR]请求dubbo服务失败
2024-08-26 23:29:08[ERROR]getSolutions出错:null
2024-08-26 23:29:08[INFO]请求dubbo服务
2024-08-26 23:29:08[ERROR]请求dubbo服务失败
2024-08-26 23:29:08[ERROR]getSolutions出错:null
2024-08-26 23:29:08[INFO]请求dubbo服务
2024-08-26 23:29:08[ERROR]请求dubbo服务失败
2024-08-26 23:29:08[ERROR]getSolutions出错:null
2024-08-26 23:29:08[INFO]请求dubbo服务
2024-08-26 23:29:08[ERROR]请求dubbo服务失败
2024-08-26 23:29:08[ERROR]getSolutions出错:null
2024-08-26 23:29:08[INFO]请求dubbo服务
2024-08-26 23:29:08[ERROR]请求dubbo服务失败
2024-08-26 23:29:08[ERROR]getSolutions出错:null
2024-08-26 23:29:08[INFO]请求dubbo服务
2024-08-26 23:29:08[ERROR]请求dubbo服务失败
2024-08-26 23:29:08[ERROR]getSolutions出错:null
2024-08-26 23:29:08[INFO]请求dubbo服务
2024-08-26 23:29:08[ERROR]请求dubbo服务失败
2024-08-26 23:29:08[ERROR]getSolutions出错:null
2024-08-26 23:29:08[INFO]请求dubbo服务
2024-08-26 23:29:08[ERROR]请求dubbo服务失败
2024-08-26 23:29:08[ERROR]getSolutions出错:null
2024-08-26 23:29:08[INFO]请求dubbo服务
2024-08-26 23:29:08[ERROR]请求dubbo服务失败
2024-08-26 23:29:08[ERROR]getSolutions出错:null
2024-08-26 23:29:08[INFO]请求dubbo服务
2024-08-26 23:29:08[ERROR]请求dubbo服务失败
2024-08-26 23:29:08[ERROR]getSolutions出错:null
2024-08-26 23:29:08[INFO]请求dubbo服务
2024-08-26 23:29:08[ERROR]请求dubbo服务失败
2024-08-26 23:29:08[ERROR]getSolutions出错:null
2024-08-26 23:29:08[INFO]请求dubbo服务
2024-08-26 23:29:08[ERROR]请求dubbo服务失败
2024-08-26 23:29:08[ERROR]getSolutions出错:null
2024-08-26 23:29:08[INFO]请求dubbo服务
2024-08-26 23:29:08[ERROR]请求dubbo服务失败
2024-08-26 23:29:08[ERROR]getSolutions出错:null
2024-08-26 23:29:08[INFO]请求dubbo服务
2024-08-26 23:29:08[ERROR]请求dubbo服务失败
2024-08-26 23:29:08[ERROR]getSolutions出错:null
2024-08-26 23:29:08[INFO]请求dubbo服务
2024-08-26 23:29:08[ERROR]请求dubbo服务失败
2024-08-26 23:29:08[ERROR]getSolutions出错:null
2024-08-26 23:29:08[INFO]请求dubbo服务
2024-08-26 23:29:08[ERROR]请求dubbo服务失败
2024-08-26 23:29:08[ERROR]getSolutions出错:null
2024-08-26 23:29:08[INFO]请求dubbo服务
2024-08-26 23:29:08[ERROR]请求dubbo服务失败
2024-08-26 23:29:08[ERROR]getSolutions出错:null
2024-08-26 23:29:08[INFO]请求dubbo服务
2024-08-26 23:29:08[ERROR]请求dubbo服务失败
2024-08-26 23:29:08[ERROR]getSolutions出错:null
2024-08-26 23:29:08[INFO]请求dubbo服务
2024-08-26 23:29:08[ERROR]请求dubbo服务失败
2024-08-26 23:29:08[ERROR]getSolutions出错:null
2024-08-26 23:29:08[INFO]请求dubbo服务
2024-08-26 23:29:08[ERROR]请求dubbo服务失败
2024-08-26 23:29:08[ERROR]getSolutions出错:null
2024-08-26 23:29:08[INFO]请求dubbo服务
2024-08-26 23:29:08[ERROR]请求dubbo服务失败
2024-08-26 23:29:08[ERROR]getSolutions出错:null
2024-08-26 23:29:08[INFO]请求dubbo服务
2024-08-26 23:29:08[ERROR]请求dubbo服务失败
2024-08-26 23:29:08[ERROR]getSolutions出错:null
2024-08-26 23:29:08[INFO]请求dubbo服务
2024-08-26 23:29:08[ERROR]请求dubbo服务失败
2024-08-26 23:29:08[ERROR]getSolutions出错:null
2024-08-26 23:29:08[INFO]请求dubbo服务
2024-08-26 23:29:08[ERROR]请求dubbo服务失败
2024-08-26 23:29:08[ERROR]getSolutions出错:null
2024-08-26 23:29:08[INFO]请求dubbo服务
2024-08-26 23:29:08[ERROR]请求dubbo服务失败
2024-08-26 23:29:08[ERROR]getSolutions出错:null
2024-08-26 23:29:08[INFO]请求dubbo服务
2024-08-26 23:29:08[ERROR]请求dubbo服务失败
2024-08-26 23:29:08[ERROR]getSolutions出错:null
2024-08-26 23:29:08[INFO]请求dubbo服务
2024-08-26 23:29:08[ERROR]请求dubbo服务失败
2024-08-26 23:29:08[ERROR]getSolutions出错:null
2024-08-26 23:29:08[INFO]请求dubbo服务
2024-08-26 23:29:08[ERROR]请求dubbo服务失败
2024-08-26 23:29:08[ERROR]getSolutions出错:null
2024-08-26 23:29:08[INFO]请求dubbo服务
2024-08-26 23:29:08[ERROR]请求dubbo服务失败
2024-08-26 23:29:08[ERROR]getSolutions出错:null
2024-08-26 23:29:08[INFO]请求dubbo服务
2024-08-26 23:29:08[ERROR]请求dubbo服务失败
2024-08-26 23:29:08[ERROR]getSolutions出错:null
2024-08-26 23:29:08[INFO]请求dubbo服务
2024-08-26 23:29:08[ERROR]请求dubbo服务失败
2024-08-26 23:29:08[ERROR]getSolutions出错:null
2024-08-26 23:29:08[INFO]请求dubbo服务
2024-08-26 23:29:08[ERROR]请求dubbo服务失败
2024-08-26 23:29:08[ERROR]getSolutions出错:null
2024-08-26 23:29:08[INFO]请求dubbo服务
2024-08-26 23:29:08[ERROR]请求dubbo服务失败
2024-08-26 23:29:08[ERROR]getSolutions出错:null
2024-08-26 23:29:08[INFO]请求dubbo服务
2024-08-26 23:29:08[ERROR]请求dubbo服务失败
2024-08-26 23:29:08[ERROR]getSolutions出错:null
2024-08-26 23:29:08[INFO]请求dubbo服务
2024-08-26 23:29:08[ERROR]请求dubbo服务失败
2024-08-26 23:29:08[ERROR]getSolutions出错:null
2024-08-26 23:29:08[INFO]请求dubbo服务
2024-08-26 23:29:08[ERROR]请求dubbo服务失败
2024-08-26 23:29:08[ERROR]getSolutions出错:null
2024-08-26 23:29:08[INFO]请求dubbo服务
2024-08-26 23:29:08[ERROR]请求dubbo服务失败
2024-08-26 23:29:08[ERROR]getSolutions出错:null
2024-08-26 23:29:08[INFO]请求dubbo服务
2024-08-26 23:29:08[ERROR]请求dubbo服务失败
2024-08-26 23:29:08[ERROR]getSolutions出错:null
2024-08-26 23:29:08[INFO]请求dubbo服务
2024-08-26 23:29:08[ERROR]请求dubbo服务失败
2024-08-26 23:29:08[ERROR]getSolutions出错:null
2024-08-26 23:29:08[INFO]请求dubbo服务
2024-08-26 23:29:08[ERROR]请求dubbo服务失败
2024-08-26 23:29:08[ERROR]getSolutions出错:null
2024-08-26 23:29:08[INFO]请求dubbo服务
2024-08-26 23:29:08[ERROR]请求dubbo服务失败
2024-08-26 23:29:08[ERROR]getSolutions出错:null
2024-08-26 23:29:08[INFO]请求dubbo服务
2024-08-26 23:29:08[ERROR]请求dubbo服务失败
2024-08-26 23:29:08[ERROR]getSolutions出错:null
2024-08-26 23:29:08[INFO]请求dubbo服务
2024-08-26 23:29:08[ERROR]请求dubbo服务失败
2024-08-26 23:29:08[ERROR]getSolutions出错:null
2024-08-26 23:29:08[INFO]请求dubbo服务
2024-08-26 23:29:08[ERROR]请求dubbo服务失败
2024-08-26 23:29:08[ERROR]getSolutions出错:null
2024-08-26 23:29:08[INFO]请求dubbo服务
2024-08-26 23:29:08[ERROR]请求dubbo服务失败
2024-08-26 23:29:08[ERROR]getSolutions出错:null
2024-08-26 23:29:08[INFO]请求dubbo服务
2024-08-26 23:29:08[ERROR]请求dubbo服务失败
2024-08-26 23:29:08[ERROR]getSolutions出错:null
2024-08-26 23:29:08[INFO]请求dubbo服务
2024-08-26 23:29:08[ERROR]请求dubbo服务失败
2024-08-26 23:29:08[ERROR]getSolutions出错:null
2024-08-26 23:29:08[INFO]请求dubbo服务
2024-08-26 23:29:08[ERROR]请求dubbo服务失败
2024-08-26 23:29:08[ERROR]getSolutions出错:null
2024-08-26 23:29:08[INFO]请求dubbo服务
2024-08-26 23:29:08[ERROR]请求dubbo服务失败
2024-08-26 23:29:08[ERROR]getSolutions出错:null
2024-08-26 23:29:08[INFO]请求dubbo服务
2024-08-26 23:29:08[ERROR]请求dubbo服务失败
2024-08-26 23:29:08[ERROR]getSolutions出错:null
2024-08-26 23:29:08[INFO]请求dubbo服务
2024-08-26 23:29:08[ERROR]请求dubbo服务失败
2024-08-26 23:29:08[ERROR]getSolutions出错:null
2024-08-26 23:29:08[INFO]请求dubbo服务
2024-08-26 23:29:08[ERROR]请求dubbo服务失败
2024-08-26 23:29:08[ERROR]getSolutions出错:null
2024-08-26 23:29:08[INFO]请求dubbo服务
2024-08-26 23:29:08[ERROR]请求dubbo服务失败
2024-08-26 23:29:08[ERROR]getSolutions出错:null
2024-08-26 23:29:08[INFO]请求dubbo服务
2024-08-26 23:29:08[ERROR]请求dubbo服务失败
2024-08-26 23:29:08[ERROR]getSolutions出错:null
2024-08-26 23:29:08[INFO]请求dubbo服务
2024-08-26 23:29:08[ERROR]请求dubbo服务失败
2024-08-26 23:29:08[ERROR]getSolutions出错:null
2024-08-26 23:29:08[INFO]请求dubbo服务
2024-08-26 23:29:08[ERROR]请求dubbo服务失败
2024-08-26 23:29:08[ERROR]getSolutions出错:null
2024-08-26 23:29:08[INFO]请求dubbo服务
2024-08-26 23:29:08[ERROR]请求dubbo服务失败
2024-08-26 23:29:08[ERROR]getSolutions出错:null
2024-08-26 23:29:08[INFO]请求dubbo服务
2024-08-26 23:29:08[ERROR]请求dubbo服务失败
2024-08-26 23:29:08[ERROR]getSolutions出错:null
2024-08-26 23:29:08[INFO]请求dubbo服务
2024-08-26 23:29:08[INFO]线程已关闭总数5
2024-08-26 23:29:08[ERROR]请求dubbo服务失败
2024-08-26 23:29:08[ERROR]getSolutions出错:null
2024-08-26 23:29:17[INFO]managerThreadCounts:a=1
2024-08-26 23:29:17[INFO]JudgeFromQueue:threadNo=1
2024-08-26 23:29:17[INFO]managerThreadCounts:a=1
2024-08-26 23:29:17[INFO]managerThreadCounts:a=1
2024-08-26 23:29:17[INFO]JudgeFromQueue:线程1开始运行
2024-08-26 23:29:17[INFO]managerThreadCounts:a=1
2024-08-26 23:29:17[INFO]请求dubbo服务
2024-08-26 23:29:20[INFO]JudgeFromQueue:线程1队列不为空获取解答
2024-08-26 23:29:20[ERROR]获取缓存出错:problemId927e:null
2024-08-26 23:29:20[INFO]已放入缓存problemId927
2024-08-26 23:29:20[INFO]已放入缓存problemId927
2024-08-26 23:29:20[ERROR]JudgeFromQueue:线程1错误null
2024-08-26 23:29:20[INFO]JudgeFromQueue:线程1队列不为空获取解答
2024-08-26 23:29:20[ERROR]获取缓存出错:problemId926e:null
2024-08-26 23:29:20[INFO]已放入缓存problemId926
2024-08-26 23:29:20[INFO]已放入缓存problemId926
2024-08-26 23:29:20[ERROR]JudgeFromQueue:线程1错误null
2024-08-26 23:29:20[INFO]JudgeFromQueue:线程1队列不为空获取解答
2024-08-26 23:29:20[ERROR]获取缓存出错:problemId758e:null
2024-08-26 23:29:20[INFO]已放入缓存problemId758
2024-08-26 23:29:20[INFO]已放入缓存problemId758
2024-08-26 23:29:20[ERROR]JudgeFromQueue:线程1错误null
2024-08-26 23:33:06[INFO]JudgeFromQueue:线程1队列不为空获取解答
2024-08-26 23:33:06[ERROR]JudgeFromQueue:线程1错误null
2024-08-26 23:33:06[INFO]JudgeFromQueue:线程1队列不为空获取解答
2024-08-26 23:33:06[ERROR]JudgeFromQueue:线程1错误null
2024-08-26 23:33:07[INFO]线程已关闭总数5
2024-08-26 23:34:11[INFO]managerThreadCounts:a=1
2024-08-26 23:34:11[INFO]JudgeFromQueue:threadNo=1
2024-08-26 23:34:11[INFO]managerThreadCounts:a=1
2024-08-26 23:34:11[INFO]managerThreadCounts:a=1
2024-08-26 23:34:11[INFO]managerThreadCounts:a=1
2024-08-26 23:34:11[INFO]JudgeFromQueue:线程1开始运行
2024-08-26 23:34:11[INFO]请求dubbo服务
2024-08-26 23:34:14[INFO]JudgeFromQueue:线程1队列不为空获取解答
2024-08-26 23:34:14[ERROR]获取缓存出错:problemId758e:null
2024-08-26 23:34:14[INFO]已放入缓存problemId758
2024-08-26 23:34:14[INFO]已放入缓存problemId758
2024-08-26 23:34:14[ERROR]JudgeFromQueue:线程1错误null
2024-08-26 23:35:59[INFO]线程已关闭总数5
2024-08-26 23:37:04[INFO]managerThreadCounts:a=1
2024-08-26 23:37:04[INFO]JudgeFromQueue:threadNo=1
2024-08-26 23:37:04[INFO]managerThreadCounts:a=1
2024-08-26 23:37:04[INFO]managerThreadCounts:a=1
2024-08-26 23:37:04[INFO]managerThreadCounts:a=1
2024-08-26 23:37:04[INFO]JudgeFromQueue:线程1开始运行
2024-08-26 23:37:04[INFO]请求dubbo服务
2024-08-26 23:37:07[INFO]JudgeFromQueue:线程1队列不为空获取解答
2024-08-26 23:37:07[ERROR]获取缓存出错:problemId927e:null
2024-08-26 23:37:07[INFO]已放入缓存problemId927
2024-08-26 23:37:07[INFO]已放入缓存problemId927
2024-08-26 23:37:07[ERROR]JudgeFromQueue:线程1错误null
2024-08-26 23:37:07[INFO]JudgeFromQueue:线程1队列不为空获取解答
2024-08-26 23:37:07[ERROR]获取缓存出错:problemId926e:null
2024-08-26 23:37:07[INFO]已放入缓存problemId926
2024-08-26 23:37:07[INFO]已放入缓存problemId926
2024-08-26 23:37:07[ERROR]JudgeFromQueue:线程1错误null
2024-08-26 23:37:07[INFO]JudgeFromQueue:线程1队列不为空获取解答
2024-08-26 23:37:07[ERROR]获取缓存出错:problemId758e:null
2024-08-26 23:37:07[INFO]已放入缓存problemId758
2024-08-26 23:37:07[INFO]已放入缓存problemId758
2024-08-26 23:37:07[ERROR]JudgeFromQueue:线程1错误null
2024-08-26 23:37:08[INFO]JudgeFromQueue:线程1队列不为空获取解答
2024-08-26 23:37:08[ERROR]JudgeFromQueue:线程1错误null
2024-08-26 23:37:08[INFO]JudgeFromQueue:线程1队列不为空获取解答
2024-08-26 23:37:08[ERROR]JudgeFromQueue:线程1错误null
2024-08-26 23:37:08[INFO]JudgeFromQueue:线程1队列不为空获取解答
2024-08-26 23:37:08[ERROR]JudgeFromQueue:线程1错误null
2024-08-26 23:37:09[INFO]JudgeFromQueue:线程1队列不为空获取解答
2024-08-26 23:37:09[ERROR]JudgeFromQueue:线程1错误null
2024-08-26 23:37:09[INFO]JudgeFromQueue:线程1队列不为空获取解答
2024-08-26 23:37:09[ERROR]JudgeFromQueue:线程1错误null
2024-08-26 23:37:09[INFO]JudgeFromQueue:线程1队列不为空获取解答
2024-08-26 23:37:09[ERROR]JudgeFromQueue:线程1错误null
2024-08-26 23:37:10[INFO]JudgeFromQueue:线程1队列不为空获取解答
2024-08-26 23:37:10[ERROR]JudgeFromQueue:线程1错误null
2024-08-26 23:37:10[INFO]JudgeFromQueue:线程1队列不为空获取解答
2024-08-26 23:37:10[ERROR]JudgeFromQueue:线程1错误null
2024-08-26 23:37:10[INFO]JudgeFromQueue:线程1队列不为空获取解答
2024-08-26 23:37:10[ERROR]JudgeFromQueue:线程1错误null
2024-08-26 23:37:11[INFO]JudgeFromQueue:线程1队列不为空获取解答
2024-08-26 23:37:11[ERROR]JudgeFromQueue:线程1错误null
2024-08-26 23:37:11[INFO]JudgeFromQueue:线程1队列不为空获取解答
2024-08-26 23:37:11[ERROR]JudgeFromQueue:线程1错误null
2024-08-26 23:37:11[INFO]JudgeFromQueue:线程1队列不为空获取解答
2024-08-26 23:37:11[ERROR]JudgeFromQueue:线程1错误null
2024-08-26 23:37:12[INFO]JudgeFromQueue:线程1队列不为空获取解答
2024-08-26 23:37:12[ERROR]JudgeFromQueue:线程1错误null
2024-08-26 23:37:12[INFO]JudgeFromQueue:线程1队列不为空获取解答
2024-08-26 23:37:12[ERROR]JudgeFromQueue:线程1错误null
2024-08-26 23:37:12[INFO]JudgeFromQueue:线程1队列不为空获取解答
2024-08-26 23:37:12[ERROR]JudgeFromQueue:线程1错误null
2024-08-26 23:37:13[INFO]JudgeFromQueue:线程1队列不为空获取解答
2024-08-26 23:37:13[ERROR]JudgeFromQueue:线程1错误null
2024-08-26 23:37:13[INFO]JudgeFromQueue:线程1队列不为空获取解答
2024-08-26 23:37:13[ERROR]JudgeFromQueue:线程1错误null
2024-08-26 23:37:13[INFO]JudgeFromQueue:线程1队列不为空获取解答
2024-08-26 23:37:13[ERROR]JudgeFromQueue:线程1错误null
2024-08-26 23:37:13[INFO]线程已关闭总数5

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -4,4 +4,4 @@ do.jar=true
javac.debug=true
javadoc.preview=true
project.Judger=D:\\oj\\Judger
user.properties.file=C:\\Users\\tange\\AppData\\Roaming\\NetBeans\\24\\build.properties
user.properties.file=C:\\Users\\tange\\AppData\\Roaming\\NetBeans\\8.0.2\\build.properties

View File

@ -22,9 +22,7 @@
<file>file:/E:/ojNew/JuderUI/src/data/MainForNet.java</file>
</group>
<group>
<file>file:/D:/oj/JuderUI/src/web/Webservice.java</file>
<file>file:/D:/oj/JuderUI/nbproject/build-impl.xml</file>
<file>file:/D:/oj/JuderUI/build/generated-sources/jax-ws/edu/dhu/ws/WSGetExamDetailResponse.java</file>
</group>
</open-files>
</project-private>

View File

@ -32,7 +32,8 @@ dist.archive.excludes=
dist.dir=dist
dist.jar=${dist.dir}/JuderUI.jar
dist.javadoc.dir=${dist.dir}/javadoc
endorsed.classpath=
endorsed.classpath=\
${libs.JAX-WS-ENDORSED.classpath}
excludes=
file.reference.antlr_2.7.6.jar=../Lib/antlr_2.7.6.jar
file.reference.asm-all-2.2.3.jar=../Lib/asm-all-2.2.3.jar

View File

@ -57,6 +57,7 @@ public class ProblemsCachManager {
return cache.get(key);
} catch (Exception e) {
logger.log("获取缓存出错:"+key+"e:"+e.getMessage(), LogLevel.ERROR);
e.printStackTrace();
// Cache中没有则从DB库获取
// 数据库中读取数据
// 把获取的对象再次存入Cache中

View File

@ -150,13 +150,19 @@ public class JudgeFromQueue extends Thread {
String language = s.getLanguage();
String sourceCode = s.getCode();
String compiler = s.getCompiler();
Float timeOut = problemBeanMap.get(problemId).getTimeOut();
List<ProblemTestCaseBean> testCaseBeanList = problemBeanMap.get(problemId).getTestCaseBeanList();
try{
Float timeOut = problemBeanMap.get(problemId).getTimeOut();
List<ProblemTestCaseBean> testCaseBeanList = problemBeanMap.get(problemId).getTestCaseBeanList();
MySwingWorker myswingworker = new MySwingWorker(threadNo, solutionId, problemId, language,compiler, sourceCode, timeOut, testCaseBeanList, this::changeMessage, this::submitAnswer);
myswingworker.execute();
myswingworker.get();
MySwingWorker myswingworker = new MySwingWorker(threadNo, solutionId, problemId, language,compiler, sourceCode, timeOut, testCaseBeanList, this::changeMessage, this::submitAnswer);
myswingworker.execute();
myswingworker.get();
}
catch(Exception e){
e.printStackTrace();
logger.log(e.getMessage(), LogLevel.ERROR);
}
// int i =1/0;
}
@ -173,6 +179,8 @@ public class JudgeFromQueue extends Thread {
if (problem == null) {
try{
problem = Control.getWebService().getProblem(Integer.parseInt(problemId));
System.out.println("»ñÈ¡ÌâÄ¿ÐÅÏ¢³É¹¦£º");
//System.out.println(problem);
problemsCachManager.putObject("problemId" + problemId, problem);
}catch(Exception e){
Result.status = Const.SE;

View File

@ -7,6 +7,7 @@ package web;
import com.alibaba.dubbo.config.ApplicationConfig;
import com.alibaba.dubbo.config.ReferenceConfig;
import common.LogLevel;
import util.Decrypt;
import edu.dhu.ws.OJWS;
import edu.dhu.ws.OJWS_Service;
@ -23,23 +24,25 @@ import javax.swing.JEditorPane;
import javax.swing.JTextField;
import javax.xml.namespace.QName;
import org.apache.dubbo.config.annotation.DubboService;
/**
*
* @author ytxlo
*/
@DubboService
public class Webservice implements java.rmi.Remote{
private OJWS_Service webs;
public class Webservice implements java.rmi.Remote {
private OJWS_Service webs;
private OJWS servicePort;
public static boolean ENABLE_DUBBO=true;
public static boolean existDubbo=false;
public static boolean ENABLE_DUBBO = true;
public static boolean existDubbo = false;
private static ReferenceConfig<OJWS> reference = null;
//@DubboReference(url = "http://106.15.36.190:3000/edu.dhu.ws.OJWS")
//http://106.15.36.190:3000/edu.dhu.ws.OJWS
//dubbo://219.228.76.122:80/edu.dhu.ws.OJWS
//https://219.228.76.122:80/edu.dhu.ws.OJWS
//dubbo://10.10.10.1:20880/edu.dhu.ws.OJWS
//@DubboReference(url = "dubbo://10.10.10.1:20880/edu.dhu.ws.OJWS")
//@Resource
public OJWS dubboPort;
@ -54,11 +57,12 @@ public class Webservice implements java.rmi.Remote{
logger.log("现有的Dubbo实例已销毁", common.LogLevel.INFO);
}
}
public static OJWS initDubboPort(String url) {
// 应用配置
ApplicationConfig application = new ApplicationConfig();
application.setName("consumer");
destroyCurrentDubboPort();
// 引用远程服务
reference = new ReferenceConfig<>();
@ -69,125 +73,130 @@ public class Webservice implements java.rmi.Remote{
// 初始化
return reference.get();
}
private void setDubbo(){
String url = "dubbo://localhost:8080/edu.dhu.ws.OJWS";
JTextField ip=getDistributorField(0);
JTextField port=getDistributorField(1);
if(ip!=null)//测试时获取不到控件
url=String.format("dubbo://%s:%s/edu.dhu.ws.OJWS",ip.getText(),port.getText());
try
private void setDubbo() {
String url = "dubbo://localhost:8080/edu.dhu.ws.OJWS";
JTextField ip = getDistributorField(0);
JTextField port = getDistributorField(1);
if (ip != null)//测试时获取不到控件
{
JEditorPane infoPane=getJudgeInfoEditorPane(0);
if(!existDubbo&&infoPane!=null){
Control.addJudgeInfo(0,"正在请求Dubbo服务..");
url = String.format("dubbo://%s:%s/edu.dhu.ws.OJWS", ip.getText(), port.getText());
}
try {
JEditorPane infoPane = getJudgeInfoEditorPane(0);
if (!existDubbo && infoPane != null) {
Control.addJudgeInfo(0, "正在请求Dubbo服务..");
//infoPane.setText(infoPane.getText()+LocalTime.now().toString()+"正在请求Dubbo服务...\n");
logger.log("请求dubbo服务", common.LogLevel.INFO);
}
dubboPort = initDubboPort(url);
//infoPane.setText(infoPane.getText()+LocalTime.now().toString()+"测试test请求..."+dubboPort.test("aa")+"\n");
}
catch(Exception e){
} catch (Exception e) {
Control.addExceptionInfo(1, e.getMessage());
e.printStackTrace();
}
if(dubboPort!=null){
JEditorPane infoPane=getJudgeInfoEditorPane(0);
if(!existDubbo&&infoPane!=null)
Control.addJudgeInfo(0,"Dubbo服务连接成功URL:"+url);
//infoPane.setText(infoPane.getText()+LocalTime.now().toString()+"\nDubbo服务连接成功URL:"+url+"\n");
existDubbo=true;
servicePort=dubboPort;
}else{
existDubbo=false;
JEditorPane infoPane=getJudgeInfoEditorPane(1);
if (dubboPort != null) {
JEditorPane infoPane = getJudgeInfoEditorPane(0);
if (!existDubbo && infoPane != null) {
Control.addJudgeInfo(0, "Dubbo服务连接成功URL:" + url);
}
//infoPane.setText(infoPane.getText()+LocalTime.now().toString()+"\nDubbo服务连接成功URL:"+url+"\n");
existDubbo = true;
servicePort = dubboPort;
} else {
existDubbo = false;
JEditorPane infoPane = getJudgeInfoEditorPane(1);
logger.log("请求dubbo服务失败", common.LogLevel.ERROR);
Control.addExceptionInfo(1,"Dubbo服务连接失败URL:"+url);
Control.addExceptionInfo(1, "Dubbo服务连接失败URL:" + url);
//infoPane.setText(infoPane.getText()+LocalTime.now().toString()+"\nDubbo服务连接失败URL:"+url+"\n");
}
//如果能使用dubbo服务就使用不能的话就用原来的
}
public Webservice(){
public Webservice() {
try {
DisableHostnameVerifier.disable();
} catch (Exception ex) {
Logger.getLogger(Webservice.class.getName()).log(Level.SEVERE, null, ex);
}
if(!ENABLE_DUBBO){
try{
//webs = new OJWS_Service();
//servicePort = webs.getOJWSImplPort();
}
catch(Exception e){
logger.log(e.getMessage(), common.LogLevel.ERROR);
e.printStackTrace();
if (!ENABLE_DUBBO) {
try {
//webs = new OJWS_Service();
//servicePort = webs.getOJWSImplPort();
} catch (Exception e) {
logger.log(e.getMessage(), common.LogLevel.ERROR);
e.printStackTrace();
}
}
else
} else {
setDubbo();
}
}
public Webservice(URL url,QName qname)throws java.rmi.RemoteException, MalformedURLException{
url=new URL("https",url.getHost(),url.getPort(),url.getFile());
public Webservice(URL url, QName qname) throws java.rmi.RemoteException, MalformedURLException {
url = new URL("https", url.getHost(), url.getPort(), url.getFile());
try {
DisableHostnameVerifier.disable();
} catch (Exception ex) {
Logger.getLogger(Webservice.class.getName()).log(Level.SEVERE, null, ex);
}
if(!ENABLE_DUBBO){
try{
if (!ENABLE_DUBBO) {
try {
//webs = new OJWS_Service(url,qname);
//servicePort = webs.getOJWSImplPort();
} catch (Exception e) {
JEditorPane infoPane = getJudgeInfoEditorPane(1);
Control.addExceptionInfo(0, LocalTime.now().toString() + e.getMessage() + "\n");
}
catch(Exception e){
JEditorPane infoPane=getJudgeInfoEditorPane(1);
Control.addExceptionInfo(0, LocalTime.now().toString()+e.getMessage()+"\n");
}
}
else
} else {
setDubbo();
}
public String getSolutions(int arg0)throws java.rmi.RemoteException{
try{
String s =this.servicePort.wsGetSolutions("judge","judge123",arg0);
return s;
}
catch(Exception e){
logger.log("getSolutions出错:"+e.getMessage(), common.LogLevel.ERROR);
Control.addExceptionInfo(1, "getSolutions出错:"+e.getMessage()+"\n");
throw e;
}
}
public String getProblem(int arg)throws java.rmi.RemoteException{
public String getSolutions(int arg0) throws java.rmi.RemoteException {
try {
String s = this.servicePort.wsGetSolutions("judge", "judge123", arg0);
if (s.equals("")) {
logger.log("警告getSolutions获得的字符串为空", LogLevel.WARNING);
}
return s;
} catch (Exception e) {
logger.log("getSolutions出错:" + e.getMessage(), common.LogLevel.ERROR);
Control.addExceptionInfo(1, "getSolutions出错:" + e.getMessage() + "\n");
throw e;
}
}
public String getProblem(int arg) throws java.rmi.RemoteException {
// servicePort.wsGetProblem(arg0, arg1, arg, arg)
try{
byte[] soucre = this.servicePort.wsGetProblem4Judge("felix", "felix", arg);
try {
byte[] soucre = this.servicePort.wsGetProblem4Judge("felix", "felix", arg);
String result = Decrypt.decrypt("felix10000", soucre);
//String prob = result.replaceFirst("GBK", "UTF-8");
if (result.equals("")) {
logger.log("警告wsGetProblem4Judge获得的字符串为空", LogLevel.WARNING);
}
return result;
}
catch(Exception e){
} catch (Exception e) {
logger.log(e.getMessage(), common.LogLevel.ERROR);
Control.addExceptionInfo(1, LocalTime.now().toString()+e.getMessage()+"\n");
return "";
}
}
public String updateResult(String arg)throws java.rmi.RemoteException{
try{
byte[] data=Decrypt.encrypt("judge123", arg);
String s = servicePort.wsUpdateResult("judge","judge123",data);
return s;
Control.addExceptionInfo(1, LocalTime.now().toString() + e.getMessage() + "\n");
return "";
}
}
public String updateResult(String arg) throws java.rmi.RemoteException {
try {
byte[] data = Decrypt.encrypt("judge123", arg);
String s = servicePort.wsUpdateResult("judge", "judge123", data);
return s;
} catch (Exception e) {
logger.log(e.getMessage() + "\nRaw Information:" + arg, common.LogLevel.ERROR);
Control.addExceptionInfo(1, LocalTime.now().toString() + e.getMessage() + "\n");
return "";
}
catch(Exception e){
logger.log(e.getMessage()+"\nRaw Information:"+arg, common.LogLevel.ERROR);
Control.addExceptionInfo(1, LocalTime.now().toString()+e.getMessage()+"\n");
return "";
}
}
private static String getGbkString(String string) {
@ -213,4 +222,4 @@ public class Webservice implements java.rmi.Remote{
// }
}
//////P.S.部署到服务器时要注意账号密码修改
//////P.S.部署到服务器时要注意账号密码修改

BIN
Judger/dist/Judger.jar vendored

Binary file not shown.

Binary file not shown.

View File

@ -9,4 +9,4 @@ file.reference.registry.jar=D:\\SchoolStudy\\ojrepull\\DHUOJ\\Lib\\registry.jar
>>>>>>> 9424929ba4fe9afe21ab70bff638a1960335fa7f
javac.debug=true
javadoc.preview=true
user.properties.file=C:\\Users\\tange\\AppData\\Roaming\\NetBeans\\24\\build.properties
user.properties.file=C:\\Users\\tange\\AppData\\Roaming\\NetBeans\\8.0.2\\build.properties

View File

@ -8,8 +8,6 @@
<file>file:/E:/ojNew/Judger/src/MyCache/Problem.java</file>
</group>
<group name="论文"/>
<group>
<file>file:/D:/oj/Judger/src/main/Process.java</file>
</group>
<group/>
</open-files>
</project-private>

View File

@ -185,6 +185,7 @@ public class ExeCommand {
}
public int getJurgeResult(String command,String env, String input, long timeLimit) {
if(command==null)command="";//Jared Ye 2025.3.24
int result = -1;
Process p = null;

View File

@ -8,6 +8,7 @@ package main;
import MyCache.Shared;
import java.util.List;
import common.Const;
import common.LogLevel;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.function.Consumer;
@ -28,7 +29,7 @@ public class Process {
//º¯Êý½Ó¿Ú
private Consumer<String> con;
private static common.Logger logger=common.Logger.getInstance();
//×ÊÔ´
private SolutionBean solutionBean = null;//2
private ProblemBean problemBean = null;//3
@ -154,7 +155,17 @@ public class Process {
this.judger = new Judger();
//Boolean is = this.judger.checkForCompiler();
this.solutionBean.setLanguage(language);
if(compiler.trim().isEmpty()){
logger.log("警告compiler为空已选择默认编译器。", LogLevel.WARNING);
compiler=common.LangSelector.getDefaultCompiler(language);
}
this.solutionBean.setCompiler(compiler);
this.solutionBean.setSourceCode(sourceCode);
this.problemBean.setTime_limit(timeOut);
// if(is == false) return ;

View File

@ -1,4 +1,4 @@
#Mon, 10 Feb 2025 23:15:11 +0800
#Tue, 13 Jan 2026 17:25:29 +0800
D\:\\oj\\client=

View File

@ -1,147 +0,0 @@
// API URL
const apiUrl = 'http://www.52ac.tech/api/exam/getExamScoresByExamId2';
// 模拟获取考试名称的 API (你可以直接替换为真实的API)
async function getExamNameById(examId) {
// 模拟的API调用
return new Promise((resolve) => {
setTimeout(() => {
resolve({ name: '期中考试' });
}, 1000);
});
}
// 模拟获取成绩数据的 API (替换为真实的API)
async function getExamScoresByExamId(data) {
// 使用 Fetch 来调用 API
const response = await
fetch(apiUrl, {
method: 'POST',
//mode: 'no-cors',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify(data)
});
return response.json(); // 假设返回的数据为 JSON 格式
}
// 渲染表格数据
function renderTable(data) {
const tableContainer = document.getElementById('table-container');
if (!data || data.length === 0) {
tableContainer.innerHTML = '<p>No data available.</p>';
return;
}
let table = `<table>
<thead>
<tr>
<th>序号</th>
<th>学号</th>
<th>班级</th>
<th>分数</th>
<th>题解数</th>
<th>提交数</th>
<th>已提交</th>
<th>正在做</th>
<th>未做</th>
</tr>
</thead>
<tbody>`;
data.forEach((row, index) => {
table += `<tr>
<td>${index + 1}</td>
<td>${row.studentNo}</td>
<td>${row.banji}</td>
<td>${(row.score * 100).toFixed(2)}</td>
<td>${row.solve}</td>
<td>${row.submit}</td>
<td>${renderMultiLine(row.submited)}</td>
<td>${renderMultiLine(row.doing)}</td>
<td>${renderMultiLine(row.undo)}</td>
</tr>`;
});
table += `</tbody></table>`;
tableContainer.innerHTML = table;
}
// 渲染多行文本内容
function renderMultiLine(array) {
if (!array) return '';
return array.join('、').replace(/(.{10})/g, '$1\n');
}
// 渲染分页
function renderPagination(total, pageSize, currentPage) {
const paginationContainer = document.getElementById('pagination');
const totalPages = Math.ceil(total / pageSize);
let paginationHTML = '';
for (let i = 1; i <= totalPages; i++) {
paginationHTML += `<span class="page-item ${i === currentPage ? 'active-page' : ''}" data-page="${i}">${i}</span> `;
}
paginationContainer.innerHTML = paginationHTML;
// 添加分页点击事件
document.querySelectorAll('.page-item').forEach(item => {
item.addEventListener('click', function () {
const page = parseInt(this.getAttribute('data-page'));
loadExamScores(page);
});
});
}
// 加载考试成绩
async function loadExamScores(pageNum = 1) {
const examId = '362'; // 这里的 examId 根据实际情况获取
const pageSize = 100;
const params = {
examId: examId,
fromclient: false,
pageNum: pageNum,
pageSize: pageSize
};
try {
const result = await getExamScoresByExamId(params);
if (result.code === 0) {
const data = result.data.list;
renderTable(data);
renderPagination(result.data.total, pageSize, pageNum);
} else {
document.getElementById('notifyMsg').innerText = result.message;
}
} catch (error) {
console.error('Failed to fetch exam scores:', error);
document.getElementById('notifyMsg').innerText = '获取本场考试成绩失败!';
}
}
// 获取并显示考试名称
async function loadExamName() {
const examId = '362'; // 根据实际情况获取 examId
try {
const result = await getExamNameById(examId);
document.getElementById('exam-name').innerText = `${result.name} 考试成绩`;
} catch (error) {
console.error('Failed to fetch exam name:', error);
document.getElementById('notifyMsg').innerText = '获取考试信息失败';
}
}
// 页面加载时执行
window.onload = function () {
loadExamName();
loadExamScores();
};

View File

@ -1,14 +0,0 @@
#update config/config.properties
#Mon Feb 10 23:05:10 GMT+08:00 2025
Debug=1
JavaCompileDir=
JavaRelative=-1
MinGWDir=D\:\\SchoolStudy\\OJ_netbeans\\OJ\\client\\MinGW\\bin
MinGWRelative=1
URLip=106.15.36.190
URLport=8080
Username=felix
isCppRelative=true
isJavaRelative=true
relativeCCompilerDir=\\MinGW\\bin
relativeCppCompilerDir=\\MinGW\\bin

View File

@ -1,6 +0,0 @@
#update dbConfig.properties
#Sun Nov 06 23:15:44 CST 2016
hibernate.connection.username=root
hibernate.connection.password=1a2b3c4d
hibernate.connection.url=jdbc\:mysql\://121.42.40.51\:3306/gdoj?useUnicode\=true&amp;characterEncoding\=UTF-8
hibernate.connection.driver_class=com.mysql.jdbc.Driver

226
client/decode_dat_to_xml.py Normal file
View File

@ -0,0 +1,226 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
解码 .dat 文件到 XML 文件的脚本
使用方法:
python decode_dat_to_xml.py <input_file> [--key KEY] [--output OUTPUT] [--batch]
示例:
python decode_dat_to_xml.py ./xml/examproblems.dat # 自动检测密钥
python decode_dat_to_xml.py ./xml/user.dat # 自动使用公钥
python decode_dat_to_xml.py ./xml/1000000000/examproblems_26.dat # 自动使用目录名作为密钥
python decode_dat_to_xml.py ./xml --batch # 批量处理整个目录
"""
import os
import sys
import argparse
from Crypto.Cipher import DES
from Crypto.Util.Padding import unpad
# 项目中的固定公钥(用于 user.dat 文件)
PUBLIC_KEY = "1413201160"
def detect_key_from_path(file_path):
"""
从文件路径自动检测密钥
Args:
file_path: 文件路径
Returns:
检测到的密钥如果无法检测则返回None
"""
# 标准化路径
normalized_path = os.path.normpath(file_path)
path_parts = normalized_path.split(os.sep)
# 检查是否是 user.dat 文件(使用公钥)
if os.path.basename(normalized_path) == "user.dat":
return PUBLIC_KEY
# 检查文件是否在用户目录下(例如: xml/1000000000/examproblems_26.dat
# 用户目录通常是8-10位数字
# 遍历路径的每一部分,查找数字目录名
for i, part in enumerate(path_parts):
# 检查是否是用户ID目录8-10位数字
if part.isdigit() and 8 <= len(part) <= 10:
# 如果这是目录名,且文件在这个目录下,使用这个目录名作为密钥
# 例如: xml/1000000000/examproblems_26.dat
if i < len(path_parts) - 1: # 确保后面还有文件
return part
# 如果文件在 xml 根目录下,尝试从文件名或父目录推断
# 但这种情况通常需要手动指定密钥
return None
def decrypt_dat_file(input_file, key=None, output_file=None):
"""
解密 .dat 文件到 XML
Args:
input_file: 输入的 .dat 文件路径
key: DES 解密密钥如果为None则自动检测
output_file: 输出的 XML 文件路径如果为None则自动生成
"""
# 检查输入文件是否存在
if not os.path.exists(input_file):
print(f"错误: 文件不存在: {input_file}")
return False
# 如果没有提供密钥,尝试自动检测
if key is None:
detected_key = detect_key_from_path(input_file)
if detected_key:
key = detected_key
print(f"自动检测到密钥: {key}")
else:
print(f"无法自动检测密钥,请手动指定")
return False
# 处理密钥如果长度小于10补0到10位与Java代码逻辑一致
if len(key) < 10:
key = key + "0" * (10 - len(key))
# 确保密钥至少8位DES要求
if len(key) < 8:
key = key + "0" * (8 - len(key))
# 只取前8位作为DES密钥DES密钥必须是8字节
des_key = key[:8].encode('utf-8')
# IV 固定为 "12345678"与Java代码一致
iv = b"12345678"
try:
# 读取加密文件
with open(input_file, 'rb') as f:
encrypted_data = f.read()
if len(encrypted_data) == 0:
print("错误: 文件为空")
return False
# 创建 DES 解密器
cipher = DES.new(des_key, DES.MODE_CBC, iv)
# 解密数据
decrypted_data = cipher.decrypt(encrypted_data)
# 去除 PKCS5 填充
try:
decrypted_data = unpad(decrypted_data, 8)
except ValueError as e:
print(f"警告: 去除填充时出错,可能文件格式不正确: {e}")
# 尝试直接使用,可能是未填充的数据
pass
# 尝试解码为字符串使用GBK编码因为Java代码中使用了GBK
try:
xml_content = decrypted_data.decode('GBK')
except UnicodeDecodeError:
# 如果GBK失败尝试UTF-8
try:
xml_content = decrypted_data.decode('UTF-8')
except UnicodeDecodeError:
# 如果都失败,尝试使用错误处理
xml_content = decrypted_data.decode('GBK', errors='ignore')
print("警告: 使用GBK解码时遇到无法解码的字符已忽略")
# 确定输出文件路径
if output_file is None:
# 自动生成输出文件名:将 .dat 扩展名改为 .xml
base_name = os.path.splitext(input_file)[0]
output_file = base_name + ".xml"
# 写入XML文件
with open(output_file, 'w', encoding='utf-8') as f:
f.write(xml_content)
print(f"成功! 解密后的XML文件已保存到: {output_file}")
return True
except Exception as e:
print(f"错误: 解密过程中出现异常: {e}")
import traceback
traceback.print_exc()
return False
def batch_process(directory):
"""
批量处理目录中的所有 .dat 文件
Args:
directory: 要处理的目录路径
"""
if not os.path.isdir(directory):
print(f"错误: {directory} 不是一个有效的目录")
return False
success_count = 0
fail_count = 0
# 递归查找所有 .dat 文件
for root, dirs, files in os.walk(directory):
for file in files:
if file.endswith('.dat'):
file_path = os.path.join(root, file)
print(f"\n处理文件: {file_path}")
if decrypt_dat_file(file_path):
success_count += 1
else:
fail_count += 1
print(f"\n批量处理完成: 成功 {success_count} 个, 失败 {fail_count}")
return fail_count == 0
def main():
parser = argparse.ArgumentParser(
description='解码 .dat 文件到 XML 文件(自动检测密钥)',
formatter_class=argparse.RawDescriptionHelpFormatter,
epilog="""
示例:
%(prog)s ./xml/examproblems.dat # 自动检测密钥
%(prog)s ./xml/user.dat # 自动使用公钥 "1413201160"
%(prog)s ./xml/1000000000/examproblems_26.dat # 自动使用目录名作为密钥
%(prog)s ./xml/examproblems.dat --key "userid1234" # 手动指定密钥
%(prog)s ./xml --batch # 批量处理整个目录
"""
)
parser.add_argument('input_path', help='输入的 .dat 文件路径或目录路径(使用 --batch 时)')
parser.add_argument('--key', '-k', help='DES 解密密钥用户ID至少8位。如果不指定将自动检测')
parser.add_argument('--output', '-o', help='输出的 XML 文件路径(默认为输入文件名.xml')
parser.add_argument('--batch', '-b', action='store_true', help='批量处理目录中的所有 .dat 文件')
args = parser.parse_args()
# 批量处理模式
if args.batch:
success = batch_process(args.input_path)
sys.exit(0 if success else 1)
# 单个文件处理模式
# 如果没有提供密钥,尝试自动检测,如果检测失败则提示用户输入
key = args.key
if key is None:
detected_key = detect_key_from_path(args.input_path)
if detected_key:
key = detected_key
print(f"自动检测到密钥: {key}")
else:
key = input("无法自动检测密钥请输入解密密钥用户ID: ").strip()
if not key:
print("错误: 密钥不能为空")
sys.exit(1)
# 执行解密
success = decrypt_dat_file(args.input_path, key, args.output)
if not success:
sys.exit(1)
if __name__ == '__main__':
main()

Binary file not shown.

Before

Width:  |  Height:  |  Size: 913 B

View File

@ -1,3 +1,4 @@
application.args=-Dfile.encoding=GBK ^ --add-opens java.base/java.math=ALL-UNNAMED ^ --add-opens java.base/java.lang=ALL-UNNAMED ^ --add-opens java.base/java.util=ALL-UNNAMED ^ --add-opens java.base/java.util.concurrent=ALL-UNNAMED ^ --module-path .\\javafx-sdk-23.0.2\\lib ^ --add-modules javafx.controls,javafx.fxml,javafx.web ^ --add-exports javafx.graphics/com.sun.javafx.application=ALL-UNNAMED ^ --add-exports javafx.base/com.sun.javafx.logging=ALL-UNNAMED ^ --add-exports javafx.graphics/com.sun.javafx.util=ALL-UNNAMED ^ --add-exports javafx.graphics/com.sun.javafx.embed=ALL-UNNAMED ^ --add-exports javafx.graphics/com.sun.javafx.tk=ALL-UNNAMED ^ --add-exports javafx.graphics/com.sun.javafx.scene=ALL-UNNAMED ^ --add-exports javafx.graphics/com.sun.javafx.stage=ALL-UNNAMED ^ --add-exports javafx.graphics/com.sun.javafx.cursor=ALL-UNNAMED ^ --add-exports javafx.graphics/com.sun.glass.ui=ALL-UNNAMED ^ -jar
compile.on.save=true
do.depend=false
do.jar=true
@ -5,4 +6,4 @@ do.jlink=false
javac.debug=true
javadoc.preview=true
jlink.strip=false
user.properties.file=C:\\Users\\tange\\AppData\\Roaming\\NetBeans\\24\\build.properties
user.properties.file=C:\\Users\\tange\\AppData\\Roaming\\NetBeans\\8.0.2\\build.properties

View File

@ -4,17 +4,16 @@
<open-files xmlns="http://www.netbeans.org/ns/projectui-open-files/2">
<group name="最新版本代码"/>
<group>
<file>file:/D:/oj/client/nbproject/build-impl.xml</file>
<file>file:/D:/oj/client/src/client/view/panel/AnswerTablePanel.java</file>
<file>file:/D:/oj/client/src/client/util/similarity/check.java</file>
<file>file:/D:/oj/client/src/client/util/Decrypt.java</file>
<file>file:/D:/oj/client/src/client/service/web/Webservice.java</file>
<file>file:/D:/oj/client/src/META-INF/wsdl/106.15.36.190_80/oj/webservice/OJWS.wsdl</file>
<file>file:/D:/oj/client/src/client/service/DownSwingWorker.java</file>
<file>file:/D:/oj/client/src/edu/dhu/ws/OJWS.java</file>
<file>file:/D:/oj/client/src/META-INF/jax-ws-catalog.xml</file>
<file>file:/D:/oj/client/src/client/service/DownSwingWorker.java</file>
<file>file:/D:/oj/client/src/client/service/ProblemURL.java</file>
<file>file:/D:/oj/client/src/client/view/frame/MainFrame.java</file>
<file>file:/D:/oj/client/src/client/view/panel/PaperPanel.java</file>
<file>file:/D:/oj/client/xml-resources/web-service-references/OJWS/wsdl/219.228.76.122_8080/oj/webservice/OJWS.wsdl</file>
<file>file:/D:/oj/client/src/client/service/DownloadFile.java</file>
<file>file:/D:/oj/client/src/client/util/Control.java</file>
<file>file:/D:/oj/client/src/client/io/xml/User_io.java</file>
<file>file:/D:/oj/client/src/client/view/frame/LoginFrame.java</file>
</group>
</open-files>

View File

@ -24,7 +24,8 @@ dist.archive.excludes=
dist.dir=dist
dist.jar=${dist.dir}/client.jar
dist.javadoc.dir=${dist.dir}/javadoc
endorsed.classpath=
endorsed.classpath=\
${libs.JAX-WS-ENDORSED.classpath}
excludes=
file.reference.activemq-broker-5.8.0.jar-1=clientLib/activemq-broker-5.8.0.jar
file.reference.activemq-client-5.8.0.jar-1=clientLib/activemq-client-5.8.0.jar
@ -43,7 +44,6 @@ file.reference.cglib-nodep-2.1.3.jar-1=clientLib/cglib-nodep-2.1.3.jar
file.reference.clientLib-dubbo_related=clientLib/dubbo_related
file.reference.clientLib-hamcrest=clientLib/hamcrest
file.reference.clientLib-javafx-sdk-21.0.5=clientLib/javafx-sdk-21.0.5
file.reference.clientLib-Lib=clientLib/Lib
file.reference.clientUpdater.jar=clientLib/clientUpdater.jar
file.reference.commons-codec-1.7.jar-1=clientLib/commons-codec-1.7.jar
file.reference.commons-collections-2.1.1.jar-1=clientLib/commons-collections-2.1.1.jar
@ -441,9 +441,9 @@ javac.classpath=\
${file.reference.xsdlib-2010.1.jar}:\
${file.reference.swt.jar}:\
${reference.Common.jar}:\
${reference.Judger.jar}:\
${file.reference.registry.jar}:\
${file.reference.rsyntaxtextarea.jar}:\
${reference.Judger.jar}:\
${reference.clientUpdater.jar}:\
${file.reference.junit-4.12.jar}:\
${file.reference.spring-aop-3.0.7.RELEASE.jar}:\
@ -475,7 +475,6 @@ javac.classpath=\
${file.reference.DJNativeSwing.jar-1}:\
${file.reference.FastInfoset-1.2.12.jar-1}:\
${file.reference.Judger.jar}:\
${file.reference.clientLib-Lib}:\
${file.reference.activemq-broker-5.8.0.jar-1}:\
${file.reference.activemq-client-5.8.0.jar-1}:\
${file.reference.activemq-openwire-legacy-5.8.0.jar-1}:\

2
client/requirements.txt Normal file
View File

@ -0,0 +1,2 @@
pycryptodome>=3.15.0

View File

@ -6,6 +6,8 @@
package client.io.xml;
import client.util.Control;
import common.LogLevel;
import common.Logger;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
@ -36,12 +38,13 @@ import org.xml.sax.SAXException;
public class SubmitProblem {
private Document document;
private Logger logger;
public void init() {
try {
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
this.logger=Logger.getInstance();
this.document = db.newDocument();
} catch (ParserConfigurationException e) {
e.printStackTrace();
@ -150,15 +153,20 @@ public class SubmitProblem {
if(status.equals("Success")){
return "true";
}
logger.log("[提交代码]status获取成功"+status, LogLevel.INFO);
return status;
}catch(FileNotFoundException e){
e.printStackTrace();
logger.log("[提交代码]status失败FileNotFoundException"+e.getMessage(), LogLevel.ERROR);
}catch(ParserConfigurationException e){
e.printStackTrace();
logger.log("[提交代码]status失败ParserConfigurationException"+e.getMessage(), LogLevel.ERROR);
}catch(SAXException e){
e.printStackTrace();
logger.log("[提交代码]status失败SAXException"+e.getMessage(), LogLevel.ERROR);
}catch(IOException e){
e.printStackTrace();
logger.log("[提交代码]status失败IOException"+e.getMessage(), LogLevel.ERROR);
}
return "";
}

View File

@ -208,6 +208,7 @@ public class DownSwingWorker extends SwingWorker<List<Integer>, String> {
// Object[] obj =client.invoke("WS_GetProblem",username,passwd,problemId);
String pro = Decrypt.decrypt(key, by);
// String prob = pro.replaceFirst("GBK", "UTF-8");
//System.out.println("获取题目的XML:"+pro);
val.add(Integer.valueOf(progressValue));
publish((progressValue++) + "/" + numall + ":第" + (i + 1) + "题已下载");
ProblemURL rUrl = new ProblemURL(pro);
@ -268,7 +269,7 @@ public class DownSwingWorker extends SwingWorker<List<Integer>, String> {
// Object[] obj =client.invoke("WS_GetProblem",username,passwd,problemId);
String pro = Decrypt.decrypt(key, by);
System.out.println(pro);
//System.out.println("获取题目的XML:"+pro);
val.add(Integer.valueOf(progressValue));
publish((progressValue++) + "/" + numall + " 题已重新下载");
ProblemURL rUrl = new ProblemURL(pro);

View File

@ -22,64 +22,132 @@ public class DownloadFile {
private List<String> remoteFilePath;
private List<String> localFilePath;
public DownloadFile(List<String> remoteFilePath, List<String> localFilePath) throws Exception{
System.out.println("[DownloadFile] Initializing download for " + remoteFilePath.size() + " file(s)");
this.remoteFilePath = remoteFilePath;
this.localFilePath = localFilePath;
download();
}
private void download() throws Exception{
System.out.println("[DownloadFile] Starting download process...");
int successCount = 0;
int skipCount = 0;
int failCount = 0;
for(int i=0;i<remoteFilePath.size();i++){
System.out.println("[DownloadFile] ========================================");
System.out.println("[DownloadFile] Processing file " + (i+1) + "/" + remoteFilePath.size());
System.out.println("[DownloadFile] Remote URL: " + remoteFilePath.get(i));
System.out.println("[DownloadFile] Local path: " + localFilePath.get(i));
URL urlfile = null;
HttpURLConnection httpUrl = null;
BufferedInputStream bis = null;
BufferedOutputStream bos = null;
//File f = new File(localFilePath.get(i));
File f = new File(localFilePath.get(i));
try {
////System.out.println(f.exists());
if (f.exists()) {
// Check if file already exists
if (f.exists()) {
long fileSize = f.length();
System.out.println("[DownloadFile] File already exists, size: " + fileSize + " bytes");
System.out.println("[DownloadFile] Skipping download");
skipCount++;
continue;
}
if (!f.getParentFile().exists()) {
f.getParentFile().mkdirs();
}
f.createNewFile();
} catch (Exception e) {
throw e;
}
// Create parent directories if they don't exist
File parentDir = f.getParentFile();
if (parentDir != null && !parentDir.exists()) {
System.out.println("[DownloadFile] Creating parent directory: " + parentDir.getAbsolutePath());
boolean created = parentDir.mkdirs();
System.out.println("[DownloadFile] Parent directory created: " + created);
}
System.out.println("[DownloadFile] Creating new file: " + f.getAbsolutePath());
boolean fileCreated = f.createNewFile();
System.out.println("[DownloadFile] File created: " + fileCreated);
} catch (Exception e) {
System.out.println("[DownloadFile] ERROR: Failed to prepare local file");
System.out.println("[DownloadFile] Exception: " + e.getClass().getName() + ": " + e.getMessage());
e.printStackTrace();
failCount++;
continue;
}
try
{
long bytesDownloaded = 0;
try {
System.out.println("[DownloadFile] Connecting to remote URL...");
urlfile = new URL(remoteFilePath.get(i));
httpUrl = (HttpURLConnection)urlfile.openConnection();
httpUrl.setConnectTimeout(10000); // 10 seconds timeout
httpUrl.setReadTimeout(10000); // 10 seconds timeout
int responseCode = httpUrl.getResponseCode();
System.out.println("[DownloadFile] HTTP Response Code: " + responseCode);
if (responseCode != HttpURLConnection.HTTP_OK) {
System.out.println("[DownloadFile] ERROR: HTTP response code is not OK (200)");
failCount++;
continue;
}
System.out.println("[DownloadFile] Connection established, starting download...");
httpUrl.connect();
bis = new BufferedInputStream(httpUrl.getInputStream());
bos = new BufferedOutputStream(new FileOutputStream(f));
int len = 2048;
byte[] b = new byte[len];
while ((len = bis.read(b)) != -1)
{
bos.write(b, 0, len);
while ((len = bis.read(b)) != -1) {
bos.write(b, 0, len);
bytesDownloaded += len;
}
bos.flush();
bis.close();
httpUrl.disconnect();
System.out.println("[DownloadFile] Download completed, bytes downloaded: " + bytesDownloaded);
System.out.println("[DownloadFile] File size on disk: " + f.length() + " bytes");
successCount++;
}
catch (Exception e)
{
catch (Exception e) {
System.out.println("[DownloadFile] ERROR: Download failed");
System.out.println("[DownloadFile] Exception: " + e.getClass().getName() + ": " + e.getMessage());
e.printStackTrace();
}
finally
{
try
{
if (bis!=null) bis.close();
if (bos!=null) bos.close();
failCount++;
// Delete partial file on error
if (f.exists() && f.length() == 0) {
boolean deleted = f.delete();
System.out.println("[DownloadFile] Deleted partial file: " + deleted);
}
catch (IOException e)
{
}
finally {
try {
if (bis != null) {
bis.close();
System.out.println("[DownloadFile] Input stream closed");
}
if (bos != null) {
bos.close();
System.out.println("[DownloadFile] Output stream closed");
}
if (httpUrl != null) {
httpUrl.disconnect();
System.out.println("[DownloadFile] HTTP connection disconnected");
}
}
catch (IOException e) {
System.out.println("[DownloadFile] WARNING: Error closing streams");
e.printStackTrace();
}
}
System.out.println("[DownloadFile] ========================================");
}
System.out.println("[DownloadFile] ========================================");
System.out.println("[DownloadFile] Download summary:");
System.out.println("[DownloadFile] Total files: " + remoteFilePath.size());
System.out.println("[DownloadFile] Successful: " + successCount);
System.out.println("[DownloadFile] Skipped (exists): " + skipCount);
System.out.println("[DownloadFile] Failed: " + failCount);
System.out.println("[DownloadFile] ========================================");
}
}

View File

@ -1,8 +1,3 @@
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package client.service;
import client.util.CreateProblemHtml;
@ -11,90 +6,143 @@ import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import client.util.Control;
/**
*
* @author ytxlo
*/
public class ProblemURL {
private String code;
private List<String> url_net;
private List<String> url_local;
private String in = ".";
private String in = "."; // Default local path
private String url = null;
public ProblemURL(String code) throws Exception{
url = Config.getURLip()+":"+Config.getURLport();
public ProblemURL(String code) throws Exception {
System.out.println("[ProblemURL] Starting URL processing...");
this.code = code;
url_net = new ArrayList<String>();
url_local = new ArrayList<String>();
runToGetUrl();
runToGetUrl_l();
url_net = new ArrayList<>();
url_local = new ArrayList<>();
// Check if XML contains any matching URLs
boolean hasMatches = containsMatchingUrl(code);
System.out.println("[ProblemURL] Contains matching URLs: " + hasMatches);
if (hasMatches) {
System.out.println("[ProblemURL] Processing image URLs...");
processUrls("image");
System.out.println("[ProblemURL] Processing file URLs...");
processUrls("file");
} else {
System.out.println("[ProblemURL] No matching URLs found in XML");
}
System.out.println("[ProblemURL] URL processing completed");
}
private void runToGetUrl() throws Exception{
url_net = new ArrayList<String>();
url_local = new ArrayList<String>();
String strContent = code;
////System.out.println(code);
String regex = "/oj/upload/(image|file)/[^[A-Za-z0-9\\._\\?%&+\\-=/#]]*";
private boolean containsMatchingUrl(String code) {
// Modified regex to support paths with/without leading slash, ./ prefix, and after quotes
// Matches: /oj/upload/image/..., oj/upload/image/..., ./oj/upload/image/..., src="oj/upload/image/...
String regex = "(?:\\.?/|^|\")oj/upload/(image|file)/[A-Za-z0-9\\._\\?%&+\\-=/#]*";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(strContent);
StringBuffer result = new StringBuffer();
while (matcher.find()) {
String urlStr=matcher.group();
System.out.println(urlStr);
StringBuffer replace = new StringBuffer(urlStr);
StringBuffer net = new StringBuffer();
net.append("http://").append(url).append(urlStr);
////System.out.println(replace.toString());
replace.delete(0, 10);
////System.out.println(replace.toString());
replace.insert(0,in);
url_net.add(net.toString());
url_local.add(replace.toString());
//replace.delete(0, 6);
System.out.println(net.toString());
System.out.println(replace.toString());
matcher.appendReplacement(result, replace.toString());
}
matcher.appendTail(result);
DownloadFile df = new DownloadFile(url_net, url_local);
Matcher matcher = pattern.matcher(code);
boolean found = matcher.find();
if (found) {
System.out.println("[ProblemURL] Regex pattern matched in XML content");
}
return found;
}
private void processUrls(String type) throws Exception {
// Create temporary lists for each type to avoid class-level variable accumulation
List<String> typeUrls = new ArrayList<>();
List<String> typePaths = new ArrayList<>();
System.out.println("[ProblemURL] Processing type: " + type);
System.out.println("[ProblemURL] Regex pattern: (?:\\.?/|^|\")oj/upload/(" + type + ")/[A-Za-z0-9\\._\\?%&+\\-=/#]*");
// Modified regex to support paths with/without leading slash, ./ prefix, and after quotes
// Matches: /oj/upload/image/..., oj/upload/image/..., ./oj/upload/image/..., src="oj/upload/image/...
String regex = "(?:\\.?/|^|\")oj/upload/(" + type + ")/[A-Za-z0-9\\._\\?%&+\\-=/#]*";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(code);
StringBuffer result = new StringBuffer();
int matchCount = 0;
while (matcher.find()) {
matchCount++;
String urlStr = matcher.group();
System.out.println("[ProblemURL] Match #" + matchCount + " found: " + urlStr);
// Unified processing: remove ./ prefix or quote if exists, ensure urlStr starts with /oj/upload/ (for building network URL)
String urlStrForNet = urlStr;
if (urlStrForNet.startsWith("\"")) {
urlStrForNet = urlStrForNet.substring(1); // Remove leading quote
System.out.println("[ProblemURL] Removed leading quote, new path: " + urlStrForNet);
}
if (urlStrForNet.startsWith("./")) {
urlStrForNet = urlStrForNet.substring(2); // Remove "./"
System.out.println("[ProblemURL] Removed ./ prefix, new path: " + urlStrForNet);
}
if (!urlStrForNet.startsWith("/")) {
urlStrForNet = "/" + urlStrForNet;
System.out.println("[ProblemURL] Added leading slash, new path: " + urlStrForNet);
}
String urlPrefix = Control.determineProtocol() + "://" + Control.getIp(); // Get server IP from config file for downloading images
System.out.println("[ProblemURL] URL prefix: " + urlPrefix);
String netUrl = urlPrefix + urlStrForNet;
// Map /oj/upload/image/... to ./oj/upload/image/...
// Map /oj/upload/file/... to ./oj/upload/file/...
// Keep the /oj/upload/ structure to match existing successful cases
String localUrl = in + urlStrForNet;
typeUrls.add(netUrl);
typePaths.add(localUrl);
System.out.println("[ProblemURL] Original URL in XML: " + urlStr);
System.out.println("[ProblemURL] Network URL for download: " + netUrl);
System.out.println("[ProblemURL] Local file path: " + localUrl);
System.out.println("[ProblemURL] ---");
// Replace in XML: keep the original quote if it existed, use local path
// If original had quote, replace with quoted local path; otherwise use local path directly
String replacement;
if (urlStr.startsWith("\"")) {
// Original had quote, keep quote in replacement
replacement = "\"" + localUrl.replace("\\", "/");
} else if (urlStr.startsWith("./")) {
// Original had ./ prefix, keep it
replacement = localUrl.replace("\\", "/");
} else {
// No prefix, use local path directly
replacement = localUrl.replace("\\", "/");
}
System.out.println("[ProblemURL] Replacement string: " + replacement);
matcher.appendReplacement(result, replacement);
}
matcher.appendTail(result);
this.code = result.toString();
// System.out.println(result);
System.out.println("[ProblemURL] Total matches for type " + type + ": " + matchCount);
System.out.println("[ProblemURL] URLs to download: " + typeUrls.size());
for (int i = 0; i < typeUrls.size(); i++) {
System.out.println("[ProblemURL] [" + (i+1) + "] Remote: " + typeUrls.get(i));
System.out.println("[ProblemURL] [" + (i+1) + "] Local: " + typePaths.get(i));
}
// Download resources of this type
if (!typeUrls.isEmpty()) {
System.out.println("[ProblemURL] Starting download for " + typeUrls.size() + " " + type + " file(s)...");
new DownloadFile(typeUrls, typePaths);
System.out.println("[ProblemURL] Download completed for type " + type);
} else {
System.out.println("[ProblemURL] No " + type + " files to download");
}
new CreateProblemHtml(code);
}
private void runToGetUrl_l() throws Exception{
url_net = new ArrayList<String>();
url_local = new ArrayList<String>();
String strContent = code;
String regex = "/oj/ueditor/[^[A-Za-z0-9\\._\\?%&+\\-=/#]]*";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(strContent);
StringBuffer result = new StringBuffer();
while (matcher.find()) {
String urlStr=matcher.group();
StringBuffer replace = new StringBuffer(urlStr);
StringBuffer net = new StringBuffer();
net.append("http://").append(url).append(urlStr);
replace.delete(0, 11);
replace.insert(0,in);
url_net.add(net.toString());
url_local.add(replace.toString());
//replace.delete(0, 6);
//System.out.println(net.toString());
//System.out.println(replace.toString());
matcher.appendReplacement(result, replace.toString());
}
matcher.appendTail(result);
DownloadFile df = new DownloadFile(url_net, url_local);
this.code = result.toString();
// CreateProblemHtml cph = new CreateProblemHtml(code);
//ÌâÄ¿µÄxml
// System.out.println(result);
}
public String getCode(){
public String getCode() {
return this.code;
}
}

View File

@ -11,6 +11,7 @@ import edu.dhu.ws.OJWS;
import client.view.frame.LoginFrame;
import com.alibaba.dubbo.config.ApplicationConfig;
import com.alibaba.dubbo.config.ReferenceConfig;
import common.LogLevel;
import java.net.MalformedURLException;
import java.net.URL;
@ -62,10 +63,7 @@ public class Webservice implements java.rmi.Remote{
}
try {
if(!existDubbo){
logger.log("connect to dubbo,url:"+url, common.LogLevel.INFO);
dubboPort = initDubboPort(url);
}
dubboPort = initDubboPort(url);
} catch(Exception e) {
logger.log("faild to get dubbo"+e.getMessage(), common.LogLevel.ERROR);
e.printStackTrace();
@ -109,7 +107,10 @@ public class Webservice implements java.rmi.Remote{
return re;
}
public String getExamList(String username,String password){
String re = servicePort.wsGetExamList(username, password);
// System.out.println("获取考试列表:用户名:"+username+"密码:"+password+"服务器消息:"+re);
// logger.log("获取考试列表:用户名:"+username+"密码:"+password+"服务器消息:"+re, LogLevel.INFO);
return re;
}
public String getExamProblems(String username,String password,int examid){
@ -144,6 +145,7 @@ public class Webservice implements java.rmi.Remote{
// by san_san
public Long getExamDeadline(String username, String password, int examid){
Long re = servicePort.wsGetExamDeadline(username, password, examid);
System.out.println("考试结束时间获取:"+re+"用户名:"+username+"密码:"+password+"考试id"+examid);
return re;
}

View File

@ -22,7 +22,7 @@ public class Config {
public static final Properties prop= new Properties();
static{
try {
InputStream in = new FileInputStream(common.FileFinder.findFile("client/config/config.properties"));
InputStream in = new FileInputStream(common.FileFinder.findFile("config/config.properties"));
prop.load(in);
in.close();

View File

@ -15,9 +15,11 @@ import client.view.panel.AnswerTablePanel;
import client.view.panel.CodePanel;
import client.service.web.Webservice;
import client.view.panel.TimePanel;
import java.net.URL;
import javax.swing.JPanel;
import java.util.List;
import javax.net.ssl.HttpsURLConnection;
import javax.swing.JLabel;
import javax.swing.JProgressBar;
@ -31,6 +33,7 @@ public class Control {
private static String publicKey;
private static String path;
private static Webservice ws;
private static List<StudentExamDetail> oldsedlist;
private static boolean prompt;
private static JProgressBar jpb;
@ -38,7 +41,17 @@ public class Control {
private static List<String> languages;
private static String examId;
private static Exam exam;
private static String ip;
public static String getIp() {
return ip;
}
public static void setIp(String ip) {
Control.ip = ip;
}
public static TimePanel getTP_time() {
return TP_time;
}
@ -325,9 +338,35 @@ public class Control {
public static void setUser(User aUser) {
user = aUser;
}
/**
* @return the jpb
* @return http or https
*/
public static String determineProtocol() {
String ip = Control.getIp();
// Ïȳ¢ÊÔ HTTPS
if (isHttpsSupported(ip)) {
return "https";
}
// »ØÍ˵½ HTTP
return "http";
}
private static boolean isHttpsSupported(String ip) {
try {
URL url = new URL("https://" + ip);
HttpsURLConnection connection = (HttpsURLConnection) url.openConnection();
connection.setRequestMethod("HEAD");
connection.setConnectTimeout(3000);
connection.setReadTimeout(3000);
int responseCode = connection.getResponseCode();
return responseCode >= 200 && responseCode < 400;
} catch (Exception e) {
return false;
}
}
}

View File

@ -51,7 +51,7 @@ public class check {
Similarity s;
List<submittedCode> submittedcodeList = new Parsexml().getCode(route);
if (submittedcodeList.get(0).getId().equals("-1")) {
if (!submittedcodeList.isEmpty() &&submittedcodeList.get(0).getId().equals("-1")) {
s = new Similarity("error", "", "");
}
for (int i = 0; i < submittedcodeList.size(); i++) {

View File

@ -205,13 +205,15 @@ public class ExamFrame extends javax.swing.JFrame {
this.JP_contest.add(this.JLabel5);
this.JP_contest.add(this.JLabel6);
this.JP_temp = new JPanel();
this.JP_temp.setLayout(new FlowLayout(FlowLayout.CENTER));
this.JP_temp.setLayout(new BoxLayout(this.JP_temp, BoxLayout.Y_AXIS));
this.JB_contest.setText("²Î¼Ó");
//final int i=j;
//this.JB_contest.setActionCommand(examlist.get(i).getId());
this.JB_contest.addActionListener(onclicklister);
this.JP_temp.add(Box.createVerticalGlue());
this.JP_temp.add(this.JB_contest);
this.JP_temp.add(Box.createVerticalGlue());
this.JP_contest.add(this.JP_temp);
s.gridx = 0;
s.gridy = i + 1;
@ -240,6 +242,8 @@ public class ExamFrame extends javax.swing.JFrame {
s.gridx = 6;
s.gridy = i + 1;
s.insets = new Insets(1, 1, 1, 0);
s.fill = GridBagConstraints.VERTICAL;
s.anchor = GridBagConstraints.CENTER;
layout.setConstraints(this.JP_temp, s);
} else {
this.JLabel1 = new JLabel(" ");

View File

@ -357,6 +357,7 @@ public class LoginFrame extends JFrame {
private void setUser() {
User_io io = new User_io();
user = io.getUser(message);
user.setPassword(password);//更新之后服务器返回的password是SHA256密文因此需要手动设置为明文以便客户端发起ws请求操作
}
public static void main(String args[]) {
@ -380,6 +381,7 @@ public class LoginFrame extends JFrame {
System.err.println("更新错误啦!");
}
try {
Control.setIp(ip);
URL url = new URL("http://" + ip + ":" + port + "/oj/webservice/OJWS?wsdl");
QName qname = new QName("http://ws.dhu.edu/", "OJWS");
logger.log("尝试建立Web服务", LogLevel.INFO);

View File

@ -259,7 +259,7 @@ public class MainFrame extends JFrame implements ColorChange {
new DoBackground().compareUpdateTime();
setProblemlist(true);
setRank();
setRank(Control.getIp());
} catch (Exception ex) {
System.err.println(ex.getMessage());
Log.writeExceptionLog(ex.getMessage());
@ -371,7 +371,7 @@ public class MainFrame extends JFrame implements ColorChange {
this.JPT_Rank = new RankPanel();
TP_Main.addTab("成绩排名", JPT_Rank); //TODO 成绩排名页暂时隐藏
// this.JPT_Rank.showHTML("./rank.html");
setRank();
setRank(Control.getIp());
}
this.TP_Main.addChangeListener(new ChangeListener() {
@Override
@ -390,36 +390,38 @@ public class MainFrame extends JFrame implements ColorChange {
setBounds((screenSize.width - 850) / 2, (screenSize.height - 650) / 2, 850, 650);
}
private void setRank() {
private void setRank(String baseUrl) {
int problemNum = this.problemlist.size();
if(baseUrl.isEmpty())
baseUrl="www.52ac.tech";
//System.out.println("Rank BaseUrl"+baseUrl);
String examId = this.examId;
String trainingViewScore = exam.getStudentViewScore();
String rankUrl = "";
String protocol=Control.determineProtocol();
switch (trainingViewScore){
case "System":
if (problemNum <= 10) {
rankUrl = "http://www.52ac.tech/#/client/contest/" + examId + "/score-rank-status";
rankUrl = protocol+"://"+baseUrl+"/#/client/contest/" + examId + "/score-rank-status";
} else {
rankUrl = "http://www.52ac.tech/#/client/contest/" + examId + "/score-top10";
rankUrl = protocol+"://"+baseUrl+"/#/client/contest/" + examId + "/score-top10";
}
JPT_Rank.changeHTML(rankUrl);
break;
case "RankAndStatus":
rankUrl = "http://www.52ac.tech/#/client/contest/" + examId + "/score-rank-status";
rankUrl = protocol+"://"+baseUrl+"/#/client/contest/" + examId + "/score-rank-status";
JPT_Rank.changeHTML(rankUrl);
break;
case "OnlyRank":
rankUrl = "http://www.52ac.tech/#/client/contest/" + examId + "/score-only-rank";
rankUrl = protocol+"://"+baseUrl+"/#/client/contest/" + examId + "/score-only-rank";
JPT_Rank.changeHTML(rankUrl);
break;
case "Top10":
rankUrl = "http://www.52ac.tech/#/client/contest/" + examId + "/score-top10";
rankUrl = protocol+"://"+baseUrl+"/#/client/contest/" + examId + "/score-top10";
JPT_Rank.changeHTML(rankUrl);
break;
case "iTraining":
rankUrl = "http://www.52ac.tech/#/client/contest/" + examId + "/score-train-rank";
rankUrl = protocol+"://"+baseUrl+"/#/client/contest/" + examId + "/score-train-rank";
JPT_Rank.changeHTML(rankUrl);
break;
case "NoScorePage":
@ -427,6 +429,7 @@ public class MainFrame extends JFrame implements ColorChange {
break;
default:
}
System.out.println("Rank RankUrl"+rankUrl);
}
private void JB_ReturnActionPerformed(ActionEvent evt) {

View File

@ -56,6 +56,8 @@ import client.io.xml.SolutionCode;
import client.io.xml.StudentExamDetail_io;
import client.io.xml.SubmitProblem;
import client.io.xml.WrongCase;
import common.LogLevel;
import common.Logger;
/**
*
@ -84,6 +86,7 @@ public class AnswerTablePanel extends JPanel {
JPanel wrong;
JPanel detail;
JPanel wrongTestCase;
Logger logger;
Answer answer;
ActionListener wrongDetail;
ActionListener submitPro;
@ -131,6 +134,7 @@ public class AnswerTablePanel extends JPanel {
this.submit.setPreferredSize(new Dimension(70, 30));
wrongDetail = new Wrongdetail();
this.submitPro = new SubmitPro();
this.logger=Logger.getInstance();
this.Refresh = new Refresh();
runInfo.setText("运行状态:");
subTime.setText("提交次数:");
@ -675,6 +679,7 @@ public class AnswerTablePanel extends JPanel {
JOptionPane.WARNING_MESSAGE
);
return;
}
SolutionCode sc = new SolutionCode();
sc.init();
@ -693,7 +698,7 @@ public class AnswerTablePanel extends JPanel {
this.simi = new Similarity("-1", "", "");
sc.setSimi("./xml/"+Control.getPath()+"/"+Control.getExamId()+"-"+proId+".xml", "-1");
}
logger.log("[提交代码]进行setSimilarity成功", LogLevel.INFO);
SubmitProblem sub = new SubmitProblem();
if (sc.isCopied("./xml/"+Control.getPath()+"/"+Control.getExamId()+"-"+proId+".xml").equals("true")) {
String message = "此代码涉嫌抄袭,是否提交?";
@ -727,8 +732,10 @@ public class AnswerTablePanel extends JPanel {
try {
toWrite = Control.getWebsService().submitThisProblem(username, passwd, problemXml);
System.out.println("submitThisProblem:\n" + toWrite);
logger.log("[提交代码]submitThisProblem成功已获得toWrite内容", LogLevel.INFO);
} catch (Exception e) {
e.printStackTrace();
logger.log("[提交代码]submitThisProblem失败"+e.getMessage(), LogLevel.ERROR);
}
String backFile = "./xml/" + Control.getPath() + "/afterSubmitProblem.xml";
File tmpFile = new File(backFile);
@ -736,10 +743,13 @@ public class AnswerTablePanel extends JPanel {
tmpFile.delete();
}
TextToFile(backFile, toWrite);
SubmitProblem sb = new SubmitProblem();
sb.init();
String msg = sb.isSubmitted(backFile);
if (msg.equals("true")) {
logger.log("[提交代码]成功:", LogLevel.INFO);
if (flag) {
String message = "成功提交本题";
JOptionPane.showConfirmDialog(AnswerTablePanel.this,
@ -756,8 +766,10 @@ public class AnswerTablePanel extends JPanel {
}
} else if (msg.equals("不能重复提交")) {
logger.log("[提交代码]失败:"+msg, LogLevel.WARNING);
JOptionPane.showConfirmDialog(AnswerTablePanel.this, "请注意:\n您已经提交过本题不可再提交。", "注意", JOptionPane.DEFAULT_OPTION, JOptionPane.WARNING_MESSAGE);
} else {
logger.log("[提交代码]失败:"+msg, LogLevel.WARNING);
String message = msg;
JOptionPane.showConfirmDialog(AnswerTablePanel.this,
message, "提示",
@ -797,8 +809,10 @@ public class AnswerTablePanel extends JPanel {
try {
toWrite = Control.getWebsService().getExamProblemStatus(username, passwd, Integer.parseInt(Control.getExamId()), Integer.parseInt(proId));
System.out.println("getExamProblemStatus:\n" + toWrite);
logger.log("[刷新结果]getExamProblemStatus:"+toWrite, LogLevel.INFO);
} catch (Exception e) {
e.printStackTrace();
logger.log("[刷新结果]失败:"+e.getMessage(), LogLevel.ERROR);
}
String backFile = "./xml/" + Control.getPath() + "/afterRefresh.xml";
File tmpFile = new File(backFile);

View File

@ -68,6 +68,8 @@ public class CodePanel extends JPanel implements ActionListener {
private JComboBox JCB_Language;
private JComboBox JCB_Coding;
private JComboBox JCB_Compiler;
private JComboBox JCB_PythonCompiler;
private JComboBox JCB_JavaCompiler;
private JEditorPane JEP_Tmep;
private JPanel Top_code;
@ -238,7 +240,21 @@ public class CodePanel extends JPanel implements ActionListener {
this.JCB_Compiler.setSelectedItem(savedCompiler);
} else {
this.JCB_Compiler.setSelectedItem("MinGW");
}
}
// 初始化Python编译器下拉框
String[] pythonOptions = {"Python3.12"};
this.JCB_PythonCompiler = new JComboBox<>(pythonOptions);
this.JCB_PythonCompiler.setSelectedItem("Python3.12");
this.JCB_PythonCompiler.setMaximumSize(new Dimension(100,100));
this.JCB_PythonCompiler.setPreferredSize(new Dimension(100, jToolBar.getHeight()));
// 初始化Java编译器下拉框
String[] javaOptions = {"JDK8"};
this.JCB_JavaCompiler = new JComboBox<>(javaOptions);
this.JCB_JavaCompiler.setSelectedItem("JDK8");
this.JCB_JavaCompiler.setMaximumSize(new Dimension(100,100));
this.JCB_JavaCompiler.setPreferredSize(new Dimension(100, jToolBar.getHeight()));
//代码文本区域
this.JEP_Code = new RSyntaxTextArea(20, 60);
@ -436,7 +452,7 @@ public class CodePanel extends JPanel implements ActionListener {
this.JB_Submit.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
actionPerformed_submitCode(e, false);
actionPerformed_submitCode(e);
}
});
@ -542,27 +558,38 @@ public class CodePanel extends JPanel implements ActionListener {
if ("Java".equals(lan)) {
language = "Java";
JEP_Code.setSyntaxEditingStyle(SyntaxConstants.SYNTAX_STYLE_JAVA);
removeAllCompilers();
if (jToolBar.getComponentIndex(JCB_JavaCompiler) == -1) {
jToolBar.add(JCB_JavaCompiler, jToolBar.getComponentIndex(JB_Submit));
jToolBar.add(compilerLabel, jToolBar.getComponentIndex(JCB_JavaCompiler));
}
} else if ("C".equals(lan)) {
language = "C";
JEP_Code.setSyntaxEditingStyle(SyntaxConstants.SYNTAX_STYLE_C);
} else if ("C++".equals(lan)) {
language = "C++";
JEP_Code.setSyntaxEditingStyle(SyntaxConstants.SYNTAX_STYLE_CPLUSPLUS);
} else if ("Python".equals(lan)){
language = "python";
JEP_Code.setSyntaxEditingStyle(SyntaxConstants.SYNTAX_STYLE_PYTHON);
}
// 根据选择的语言决定是否显示编译器下拉框
if ("C".equals(lan) || "C++".equals(lan) || "c++".equals(lan) || "c".equals(lan)) {
removeAllCompilers();
if (jToolBar.getComponentIndex(JCB_Compiler) == -1) {
jToolBar.add(JCB_Compiler, jToolBar.getComponentIndex(JB_Submit));
jToolBar.add(compilerLabel, jToolBar.getComponentIndex(JCB_Compiler));
}
} else {
if (jToolBar.getComponentIndex(JCB_Compiler) != -1) {
jToolBar.remove(JCB_Compiler);
jToolBar.remove(compilerLabel);
} else if ("C++".equals(lan)) {
language = "C++";
JEP_Code.setSyntaxEditingStyle(SyntaxConstants.SYNTAX_STYLE_CPLUSPLUS);
removeAllCompilers();
if (jToolBar.getComponentIndex(JCB_Compiler) == -1) {
jToolBar.add(JCB_Compiler, jToolBar.getComponentIndex(JB_Submit));
jToolBar.add(compilerLabel, jToolBar.getComponentIndex(JCB_Compiler));
}
} else if ("Python".equals(lan)){
language = "python";
JEP_Code.setSyntaxEditingStyle(SyntaxConstants.SYNTAX_STYLE_PYTHON);
removeAllCompilers();
if (jToolBar.getComponentIndex(JCB_PythonCompiler) == -1) {
jToolBar.add(JCB_PythonCompiler, jToolBar.getComponentIndex(JB_Submit));
jToolBar.add(compilerLabel, jToolBar.getComponentIndex(JCB_PythonCompiler));
}
}
// 保存语言选择
@ -571,6 +598,26 @@ public class CodePanel extends JPanel implements ActionListener {
jToolBar.revalidate(); // 更新工具栏
jToolBar.repaint(); // 重绘工具栏
}
private void removeAllCompilers() {
// 移除C/C++编译器下拉框
if (jToolBar.getComponentIndex(JCB_Compiler) != -1) {
jToolBar.remove(JCB_Compiler);
jToolBar.remove(compilerLabel);
}
// 移除Python编译器下拉框
if (jToolBar.getComponentIndex(JCB_PythonCompiler) != -1) {
jToolBar.remove(JCB_PythonCompiler);
jToolBar.remove(compilerLabel);
}
// 移除Java编译器下拉框
if (jToolBar.getComponentIndex(JCB_JavaCompiler) != -1) {
jToolBar.remove(JCB_JavaCompiler);
jToolBar.remove(compilerLabel);
}
}
// 设置时间 by san_san
public void setLefttime(Long lefttime){
@ -621,8 +668,24 @@ public class CodePanel extends JPanel implements ActionListener {
Float time_limit = Float.parseFloat(Control.getMainFrame().getInformation(String.valueOf(submitProblemId)).getTime_limit());
//////////todo:自主选择编译器
String compiler="";
//String compiler="";
System.out.println("调试CodePanel:"+language+";\n"+compiler+";\n"+codeString);
String selectedCompiler = "";
if ("C++".equals(language) || "C".equals(language)) {
selectedCompiler = (String) JCB_Compiler.getSelectedItem();
} else if ("python".equals(language)) {
selectedCompiler = (String) JCB_PythonCompiler.getSelectedItem();
} else if ("Java".equals(language)) {
selectedCompiler = (String) JCB_JavaCompiler.getSelectedItem();
}
this.compiler = selectedCompiler;
System.out.println("language" + language);
System.out.println("compiler" + compiler);
Answer answer = new Process().Judge(language,compiler, codeString, time_limit+2, testCaseBeans); //loss of timelimit
if (answer.getStatus().equals("NF")) {
JOptionPane.showMessageDialog(CodePanel.this,
@ -726,7 +789,7 @@ public class CodePanel extends JPanel implements ActionListener {
Control.getJpb_message().setText("");
}
private void actionPerformed_submitCode(ActionEvent e, boolean testSampleAC) {
private void actionPerformed_submitCode(ActionEvent e) {
// by san_san
if (this.lefttime <= 0){
JOptionPane.showMessageDialog(CodePanel.this,
@ -735,7 +798,7 @@ public class CodePanel extends JPanel implements ActionListener {
return;
}
if (!testSampleAC && !checkConditions()) {
if (!checkForCompile()) {
return;
}
//checkForCompile();
@ -884,7 +947,7 @@ public class CodePanel extends JPanel implements ActionListener {
);
if (option == JOptionPane.YES_OPTION) {
actionPerformed_submitCode(null, true);
actionPerformed_submitCode(null);
}
}
}

Some files were not shown because too many files have changed in this diff Show More