Skip to content
项目
群组
代码片段
帮助
正在加载...
登录
切换导航
X
XXL-JOB
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分枝图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
分枝图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
靳帅
XXL-JOB
Commits
e7d13540
提交
e7d13540
authored
3月 15, 2017
作者:
xueli.xue
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
通讯协议二进制据增强校验,处理非正常请求;
上级
81508178
显示空白字符变更
内嵌
并排
正在显示
4 个修改的文件
包含
54 行增加
和
14 行删除
+54
-14
README.md
README.md
+1
-0
JettyClient.java
...com/xxl/job/core/rpc/netcom/jetty/client/JettyClient.java
+23
-1
JettyServerHandler.java
.../job/core/rpc/netcom/jetty/server/JettyServerHandler.java
+27
-6
HttpClientUtil.java
...e/src/main/java/com/xxl/job/core/util/HttpClientUtil.java
+3
-7
没有找到文件。
README.md
浏览文件 @
e7d13540
...
...
@@ -768,6 +768,7 @@ Tips: 历史版本(V1.3.x)目前已经Release至稳定版本, 进入维护阶段
#### 6.12 版本 V1.6.1 特性 (Coding)
-
1、rolling日志,日志界面风格同glue任务编辑器;
-
2、
#### TODO LIST
...
...
xxl-job-core/src/main/java/com/xxl/job/core/rpc/netcom/jetty/client/JettyClient.java
浏览文件 @
e7d13540
...
...
@@ -4,17 +4,39 @@ import com.xxl.job.core.rpc.codec.RpcRequest;
import
com.xxl.job.core.rpc.codec.RpcResponse
;
import
com.xxl.job.core.rpc.serialize.HessianSerializer
;
import
com.xxl.job.core.util.HttpClientUtil
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
/**
* jetty client
* @author xuxueli 2015-11-24 22:25:15
*/
public
class
JettyClient
{
private
static
Logger
logger
=
LoggerFactory
.
getLogger
(
JettyClient
.
class
);
public
RpcResponse
send
(
RpcRequest
request
)
throws
Exception
{
try
{
// serialize request
byte
[]
requestBytes
=
HessianSerializer
.
serialize
(
request
);
// remote invoke
byte
[]
responseBytes
=
HttpClientUtil
.
postRequest
(
"http://"
+
request
.
getServerAddress
()
+
"/"
,
requestBytes
);
return
(
RpcResponse
)
HessianSerializer
.
deserialize
(
responseBytes
,
RpcResponse
.
class
);
if
(
responseBytes
==
null
||
responseBytes
.
length
==
0
)
{
RpcResponse
rpcResponse
=
new
RpcResponse
();
rpcResponse
.
setError
(
"RpcResponse byte[] is null"
);
return
rpcResponse
;
}
// deserialize response
RpcResponse
rpcResponse
=
(
RpcResponse
)
HessianSerializer
.
deserialize
(
responseBytes
,
RpcResponse
.
class
);
return
rpcResponse
;
}
catch
(
Exception
e
)
{
logger
.
error
(
e
.
getMessage
(),
e
);
RpcResponse
rpcResponse
=
new
RpcResponse
();
rpcResponse
.
setError
(
"Servet-error:"
+
e
.
getMessage
());
return
rpcResponse
;
}
}
}
xxl-job-core/src/main/java/com/xxl/job/core/rpc/netcom/jetty/server/JettyServerHandler.java
浏览文件 @
e7d13540
...
...
@@ -7,6 +7,8 @@ import com.xxl.job.core.rpc.serialize.HessianSerializer;
import
com.xxl.job.core.util.HttpClientUtil
;
import
org.eclipse.jetty.server.Request
;
import
org.eclipse.jetty.server.handler.AbstractHandler
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
javax.servlet.ServletException
;
import
javax.servlet.http.HttpServletRequest
;
...
...
@@ -19,17 +21,13 @@ import java.io.OutputStream;
* @author xuxueli 2015-11-19 22:32:36
*/
public
class
JettyServerHandler
extends
AbstractHandler
{
private
static
Logger
logger
=
LoggerFactory
.
getLogger
(
JettyServerHandler
.
class
);
@Override
public
void
handle
(
String
target
,
Request
baseRequest
,
HttpServletRequest
request
,
HttpServletResponse
response
)
throws
IOException
,
ServletException
{
// deserialize request
byte
[]
requestBytes
=
HttpClientUtil
.
readBytes
(
request
);
RpcRequest
rpcRequest
=
(
RpcRequest
)
HessianSerializer
.
deserialize
(
requestBytes
,
RpcRequest
.
class
);
// invoke
RpcResponse
rpcResponse
=
NetComServerFactory
.
invokeService
(
rpcRequest
,
null
);
RpcResponse
rpcResponse
=
doInvoke
(
request
);
// serialize response
byte
[]
responseBytes
=
HessianSerializer
.
serialize
(
rpcResponse
);
...
...
@@ -44,4 +42,27 @@ public class JettyServerHandler extends AbstractHandler {
}
private
RpcResponse
doInvoke
(
HttpServletRequest
request
)
{
try
{
// deserialize request
byte
[]
requestBytes
=
HttpClientUtil
.
readBytes
(
request
);
if
(
requestBytes
==
null
||
requestBytes
.
length
==
0
)
{
RpcResponse
rpcResponse
=
new
RpcResponse
();
rpcResponse
.
setError
(
"RpcRequest byte[] is null"
);
return
rpcResponse
;
}
RpcRequest
rpcRequest
=
(
RpcRequest
)
HessianSerializer
.
deserialize
(
requestBytes
,
RpcRequest
.
class
);
// invoke
RpcResponse
rpcResponse
=
NetComServerFactory
.
invokeService
(
rpcRequest
,
null
);
return
rpcResponse
;
}
catch
(
Exception
e
)
{
logger
.
error
(
e
.
getMessage
(),
e
);
RpcResponse
rpcResponse
=
new
RpcResponse
();
rpcResponse
.
setError
(
"Servet-error:"
+
e
.
getMessage
());
return
rpcResponse
;
}
}
}
xxl-job-core/src/main/java/com/xxl/job/core/util/HttpClientUtil.java
浏览文件 @
e7d13540
package
com
.
xxl
.
job
.
core
.
util
;
import
com.xxl.job.core.rpc.codec.RpcResponse
;
import
com.xxl.job.core.rpc.serialize.HessianSerializer
;
import
org.apache.http.HttpEntity
;
import
org.apache.http.HttpResponse
;
import
org.apache.http.client.methods.HttpPost
;
...
...
@@ -27,7 +25,7 @@ public class HttpClientUtil {
/**
* post request
*/
public
static
byte
[]
postRequest
(
String
reqURL
,
byte
[]
date
)
{
public
static
byte
[]
postRequest
(
String
reqURL
,
byte
[]
date
)
throws
Exception
{
byte
[]
responseBytes
=
null
;
HttpPost
httpPost
=
new
HttpPost
(
reqURL
);
...
...
@@ -53,10 +51,7 @@ public class HttpClientUtil {
}
}
catch
(
Exception
e
)
{
logger
.
error
(
""
,
e
);
RpcResponse
rpcResponse
=
new
RpcResponse
();
rpcResponse
.
setError
(
e
.
getMessage
());
responseBytes
=
HessianSerializer
.
serialize
(
rpcResponse
);
throw
e
;
}
finally
{
httpPost
.
releaseConnection
();
try
{
...
...
@@ -93,6 +88,7 @@ public class HttpClientUtil {
return
message
;
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
throw
e
;
}
}
return
new
byte
[]
{};
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论