服务器未能识别 HTTP 头 SOAPAction 的值
来源:互联网 发布:日本 压抑 知乎 编辑:程序博客网 时间:2024/05/16 10:08
今天用CXF去调用.net写的一个webservice服务报错,网上搜个解决办法,做个记录
解决办法:服务器未能识别 HTTP 标头 SOAPAction 的值
本文主要探讨跨平台调用 Web Service 出现: " 服务器未能识别 HTTP 标头 SOAPAction 的值 " 的解决办法。
症状一:
Web Service + ASP.NET 应用程序部署到服务器默认目录中,在 IE 中用 http://< 服务器地址 >/< 程序目录名 >/< 默认启动页面名 > 发 生 “ 服务器未能识别 HTTP 标头 SOAPAction 的值 ” 错误。
症状二:
在 Java 平台上调用 .NET Web Service 的服务时,出现 " 服务器未能识别 HTTP 标头 SOAPAction 的值 " 。
症状三:
在 Java 平台下调用 .NET WEB Service ,出现数据时有时无。
解决对策:
给 .NET 的 WebService 类(即 .asmx 文件下的类)添加属性[SoapDocumentService(RoutingStyle=SoapServiceRoutingStyle.RequestElement)]
以下是NET代码,
using System;
using System.Collections;
using System.ComponentModel;
using System.Da
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;
namespace WebService
{
/// <summary>
/// Service1 的摘要说明
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[ToolboxItem(false)]
// 若要允许使用 ASP.Net AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。
// [System.Web.Script.Services.ScriptService]
[SoapDocumentService(RoutingStyle = SoapServiceRoutingStyle.RequestElement)]
public class Service1 : System.Web.Services.WebService
{
[WebMethod]
public string HelloWorld()
{
return "Hello World";
}
[WebMethod]
public USER GetObj()
{
USER user = new USER();
user.Name = "习明凡";
user.Pass = "123456";
return user;
}
}
}
小知识:
什么是 SoapAction ?它在 WSDL 中有何作用?
SOAPAction HTTP request header 被用来标识 SOAP HTTP 请求的目的地,其值是个 URI 地址。 SOAP 发送并不限制格式、 URI 特征或其必须可解析,那么在这种情况下,发送一个 HTTP SOAP 请求时,其 HTTP 客户端必须使用 / 指明 SOAPAction HTTP request header 。
SOAPAction header 的内容可以被用在服务端,诸如:防火墙适当的过滤基于 HTTP 的 SOAP 请求消息等场景。 SOAPAction header 的值为空串 ("") 表示 SOAP 消息的目的地由 HTTP 请求的 URI 标识;无值则表示没有指定这条消息的目的地。
java代码:
imp
imp
imp
public class Test {
public static void main(String[] args) {
JaxWsProxyFactoryBean soapFactoryBean = new JaxWsProxyFactoryBean();
soapFactoryBean.setAddress("http://10.8.0.143/webservice/Service1.asmx");
soapFactoryBean.setServiceClass(Service1Soap.class);
Object o = soapFactoryBean.create();
Service1Soap soap = (Service1Soap)o;
System.out.println(soap.helloWorld());
USER user = soap.getObj();
System.out.println(user.getName());
}
}
- 解决办法:服务器未能识别 HTTP 标头 SOAPAction 的值
- 服务器未能识别 HTTP 标头 SOAPAction 的值
- 解决办法:服务器未能识别 HTTP 标头 SOAPAction 的值
- 服务器未能识别 HTTP 标头 SOAPAction 的值
- axis2 服务器未能识别 HTTP 头 SOAPAction 的值 解决办法
- webservices 服务器未能识别 HTTP 头 SOAPAction 的值
- 解决办法:服务器未能识别 HTTP 标头 SOAPAction 的值
- 服务器未能识别http标头SOAPAction的值
- 服务器未能识别 HTTP 标头 SOAPAction 的值
- 服务器未能识别 HTTP 头 SOAPAction 的值
- 服务器未能识别 HTTP 头 SOAPAction 的值
- 服务器未能识别 HTTP 标头 SOAPAction 的值
- 服务器未能识别 HTTP 头 SOAPAction 的值 解决方案
- webservice 服务器未能识别 HTTP 头 SOAPAction 的值
- webservices 服务器未能识别 HTTP 头 SOAPAction 的值:.
- 服务器未能识别 HTTP 头 SOAPAction 的值
- 服务器未能识别 HTTP 标头 SOAPAction 的值
- 服务器未能识别 HTTP 头 SOAPAction 的值
- “长期、稳定、可持续”——中国保监会与香港保险监理处在京签署框架协议
- 原子性、竞态条件、加锁机制
- C Runtime Library 的来历
- 工作记录: 如何通过virtualenv创建基于某个python版本的虚拟平台
- Unity 中关于中文乱码以及压缩解压遇到的问题解决方法
- 服务器未能识别 HTTP 头 SOAPAction 的值
- java 日期操作
- java多继承实现
- windows python调用Stanford nlp tools经验
- hibernate主键
- PANDAS 数据合并 merge/join
- 关于word插入特殊符号不显示的问题及解决
- 计算字符个数
- 新建博客,mark一下