因为client是axis的,返回的格式必须是http格式所以
// 创建接收数据的过滤器
DefaultIoFilterChainBuilder chain = acceptor.getFilterChain();
//过滤HTTP协议
chain.addLast("myChin", new ProtocolCodecFilter(
new HttpCodecFactory()));
...................
//在收到客户端发送的消息过来时
//收到的消息再返回给客户端
public void messageReceived(IoSession session, Object message)
throws Exception
{
//获取请求
DefaultHttpRequest req = (DefaultHttpRequest) message;
//获取消息体
String body = req.getContent().getString(
Charset.forName("utf-8").newDecoder());
System.out.println("收到客户机发来的消息: " + body); //构造响应消息
DefaultHttpResponse resp= new DefaultHttpResponse();
resp = SamplMinaServerHandler.getResponseMessage(req.getContent());
// 测试将消息回送给客户端
session.write(resp);
} //构造响应消息
public static DefaultHttpResponse getResponseMessage(IoBuffer msg)
throws Exception {
// 构造httpResponse对象
DefaultHttpResponse response = new DefaultHttpResponse(); // 设置http的状态
response.setStatus(HttpResponseStatus.OK); // 设置文档类型
response.setContentType("text/html"); // 设置文档内容
//收到的消息再返回给客户端
IoBuffer buffer = msg;
response.setContent(buffer); // 设置报文体的长度,必不可少.
response.setHeader("Content-Length:", "" + buffer.limit()); return response;
}
这样客户端为什么还是收不到消息,或者如何自己构造soap类型报文 返回给客户端??
// 创建接收数据的过滤器
DefaultIoFilterChainBuilder chain = acceptor.getFilterChain();
//过滤HTTP协议
chain.addLast("myChin", new ProtocolCodecFilter(
new HttpCodecFactory()));
...................
//在收到客户端发送的消息过来时
//收到的消息再返回给客户端
public void messageReceived(IoSession session, Object message)
throws Exception
{
//获取请求
DefaultHttpRequest req = (DefaultHttpRequest) message;
//获取消息体
String body = req.getContent().getString(
Charset.forName("utf-8").newDecoder());
System.out.println("收到客户机发来的消息: " + body); //构造响应消息
DefaultHttpResponse resp= new DefaultHttpResponse();
resp = SamplMinaServerHandler.getResponseMessage(req.getContent());
// 测试将消息回送给客户端
session.write(resp);
} //构造响应消息
public static DefaultHttpResponse getResponseMessage(IoBuffer msg)
throws Exception {
// 构造httpResponse对象
DefaultHttpResponse response = new DefaultHttpResponse(); // 设置http的状态
response.setStatus(HttpResponseStatus.OK); // 设置文档类型
response.setContentType("text/html"); // 设置文档内容
//收到的消息再返回给客户端
IoBuffer buffer = msg;
response.setContent(buffer); // 设置报文体的长度,必不可少.
response.setHeader("Content-Length:", "" + buffer.limit()); return response;
}
这样客户端为什么还是收不到消息,或者如何自己构造soap类型报文 返回给客户端??
解决方案 »
- properties文件 修改的问题
- 如何将日期类型Date 2008-04-14 12:03:45,转换成日期类型 Date 2008??
- 值类型,引用类型 疑惑String
- jsp如何调用mysql,并返回给JSP?谢谢~~~~~~~~~~~~~
- 怎样实时显示时间?
- Applet中使用Socket问题
- 高手请来帮我解释一下这段程序是怎么执行的?!!!!
- 有没有办法让Junit顺序测试定义好的方法?
- 才鸟问题:请问JDK for Linux 应该如何安装?
- sun 的JMF(Java Media Framework)可以播放视频吗?
- Vector 为什么要实现List?
- 关于JAVA socket协议
{
String endpoint = "http://10.85.4.111:8888/axis/sayHello.jws"; Service service = new Service();
Call call = null; call = (Call) service.createCall(); call.setOperationName(new QName(endpoint, "say"));
call.setTargetEndpointAddress(new java.net.URL(endpoint)); String ret = (String) call.invoke(new Object[]
{"zhangsan"});
System.out.println("return value is " + ret);
}
catch (Exception ex)
{
ex.printStackTrace();
}