0 0

webservice设置的http请求头丢失 10

webservice采用的是jax-ws,现在要进行身份验证,我用的是设置请求头的方法,本地客户端设置请求头代码如下:
ZscpWebServiceImplService ser = new ZscpWebServiceImplService();
ZscpWebServiceImplDelegate de = ser.getZscpWebServiceImplPort();
Map<String, Object> context = ((BindingProvider)de).getRequestContext();
Map<String, List<String>> headers = new HashMap<String, List<String>>();
context.put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, "http://localhost:8080/traceWS/ZscpWebServiceImplPort?wsdl");
 headers.put("name", Collections.singletonList("test"));
 headers.put("checkuser", Collections.singletonList("test!test123"));
 context.put(MessageContext.HTTP_REQUEST_HEADERS, headers);
System.out.println(de.queryExposure(10, 1,"4"));

本地服务端获取请求头代码如下:
MessageContext mc = context.getMessageContext();
Map requestHeaderNames = (Map)mc.get(SOAPMessageContext.HTTP_REQUEST_HEADERS);
Set set = requestHeaderNames.keySet();
for(Object key:set){
    System.out.println(key+"   "+requestHeaderNames.get(key));
}

现在我在本地运行的结果是9条信息,全部都有
Host   [localhost:8080]
Content-type   [text/xml;charset="utf-8"]
Content-length   [240]
Connection   [keep-alive]
Name   [test]
Checkuser   [test!test123]
User-agent   [JAX-WS RI 2.1.3-hudson-390-]
Accept   [text/xml, multipart/related, text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2]
Soapaction   [""]
但是服务端在相同代码的情况下,客户端测试代码中的wsdl地址改成服务器的地址,如果为域名访问的,那么就只打印7条信息,把域名改成局域网IP地址访问,可以正常打印出9条信息,请问这是什么原因导致的?
2014年9月11日 11:44

1个答案 按时间排序 按投票排序

0 0

是这样的,这个问题已经有人写过博客了,推荐楼主读一下
http://jackyrong.iteye.com/blog/1885481

2014年9月11日 14:32

相关推荐

    WebService开发实例图解教程

    - 调用服务:客户端通过SOAP请求调用服务,解析返回的XML响应。 3. **WebLogic Server与WebService** - WebLogic是Oracle公司的一个企业级应用服务器,支持WebService的发布和消费。 - 在WebLogic中发布...

    Xfire调用webservice无法接收到参数问题解决

    3. **SOAP绑定错误**:Xfire配置文件中,SOAP绑定可能没有正确设置,导致请求无法到达服务端或者服务端无法解析请求。 4. **安全问题**:如果Web服务配置了安全机制,如WS-Security,而客户端没有正确地提供认证...

    java调用C++ webservice

    - 请求会通过HTTP或HTTPS协议发送,通常封装在SOAP消息中。 - C++服务端接收到请求后处理,然后返回响应,同样封装在SOAP消息中。 - Java客户端解析响应,提取所需结果。 5. **注意事项**: - 跨语言调用可能会...

    金蝶调用Webservice接口-SOAP

    然后,创建一个`SOAPMessage`对象,并构建SOAP请求的结构。这包括创建`SOAPEnvelope`、`SOAPBody`,并添加数据到`SOAPBody`中。例如,创建一个QName来指定消息中的数据: ```java SOAPMessage msg = MessageFactory....

    Axis 下的 WebService例子

    这个文件可能包含了针对创建的 WebService 进行 SOAP 请求的测试脚本,包括设置请求参数、预期的响应验证等。读者可以使用 JMeter 来复现博主的测试场景,检查并优化 WebService 的性能。 总结来说,这篇博客文章...

    基于webService 的文件传输

    8. **HTTP通信**:理解HTTP协议的基本原理,包括请求和响应的结构、状态码、请求头和响应头等,这对于构建基于HTTP的Web Service至关重要。 9. **XML解析和生成**:由于Web Service的数据交换基于XML,因此需要熟悉...

    ASP.NET & WebService教学ppt(上)

    WebService的主要目的是促进不同系统间的互操作性,通过HTTP协议传递XML格式的数据。 **WebService的特性** 1. **简单对象访问协议(SOAP)**:SOAP是基于XML的消息传递协议,用于在分布式环境中交换结构化信息。 ...

    SocketclientTool,设置请求长度

    这款工具的一大特色是允许用户自定义设置请求内容的长度,这对于确保数据传输的正确性和优化网络性能至关重要。 在Socket编程中,数据的长度是非常关键的一个参数。通常,Socket通信是基于字节流的,发送方需要告知...

    webservice

    1. WebService:WebService是基于WSDL(Web Service Description Language)和SOAP(Simple Object Access Protocol)的标准,通过HTTP协议传输XML数据,使得不同系统间能够交换信息和服务。WSDL用于定义服务接口,...

    WebService商行客户信息程序安全实现.doc

    4. **访问控制**:实施严格的访问控制策略,只允许授权的用户和服务请求者访问特定的WebService。可以使用数字证书和身份验证机制,如OAuth或WS-Security,来验证服务请求者的身份。 5. **审计和监控**:定期审计...

    ASP.NET WebService中使用ASP.NET_SessionId的问题说明

    在调用ASP.NET WebService时,如果遇到会话状态丢失的问题,可以通过设置Web Reference实例的CookieContainer属性,确保客户端能够正确地传递ASP.NET_SessionId,从而维持会话的连续性。这对于开发和调试Web Service...

    ksoap包 webservice连接包

    标题提到的"Ksoap包 webservice连接包"指的是kSOAP库的一个版本,它包含了对处理中文字符的支持。 kSOAP 1.2 版本是这个库的一个重要里程碑,它引入了对非ASCII字符集,如中文字符的处理。在之前的版本中,由于SOAP...

    基于JQuery的访问WebService的代码(可访问Java[Xfire])

    - `contentType: "text/xml"`:设置请求内容的MIME类型为XML,这对于SOAP请求是必要的。 - `url: "http://*****/WebServiceTest/services/HelloWorldService"`:Web服务的URL,这里省略了部分实际地址。 - `data: ...

    T100 Web Service开发,调试整合重启检查说明(简体版)

    ### T100 Web Service 开发、调试及整合重启检查说明 ...在实际操作中,需要注意根据不同的T100版本选择合适的重启方法,并确保在执行重启操作前后进行必要的检查,以避免不必要的系统中断或数据丢失。

    中间件课程设计《留言簿》源代码+报告

    同时,后端编程语言(如Java、Python或PHP)也是必不可少的,因为它们用来编写处理Webservice请求和数据库操作的代码。 此外,理解RESTful API设计原则也是有帮助的,虽然Webservice通常与SOAP关联,但现代Web服务...

    WebServiceDemo-Axis2

    首先,让我们了解WebService的基本概念。Web服务是一种基于网络的、平台无关的交互方式,允许不同的应用程序之间交换数据和服务。SOAP是一种XML消息协议,用于在Web服务中传递信息。Axis2作为SOAP服务的实现,负责将...

    jQuery结合Json提交数据到Webservice,并接收从Webservice返回的Json数据

    ### jQuery结合Json提交数据到Webservice的知识点 #### 1. Json数据提交与接收 Json(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。在Web服务交互中,...

    Windows下Apache + PHP SESSION丢失的解决过程全纪录

    文章中详细记录了解决过程,并且提出了一些可能的原因,如账户异常、JavaScript异步操作失败、WebService调用失败等,最终锁定了问题根源。 知识点涉及以下几个方面: 1. Apache服务器安装与配置:在Windows系统下...

    Web Service Event

    - **可靠性**:提供了一套机制来保证消息的可靠传递,即使在网络不稳定的情况下也能确保消息不会丢失。 - **灵活性**:支持多种传输协议和编码格式,如HTTP、SOAP等,适应不同的应用场景。 #### 五、规范发展历程 ...

Global site tag (gtag.js) - Google Analytics