SOAP1.1 and SOAP1.2
在用cxf 做webservice客户端的时候碰到的:
javax.xml.ws.soap.SOAPFaultException: A SOAP 1.2 message is not valid when sent to a SOAP 1.1 only endpoint.
在网上上找了一些资料但是还是不能解决我的问题,但是还是要感谢下, 不然太不厚道了
- if (soapVersion == Soap12.getInstance()
- && version == Soap11.getInstance()) {
- throw new SoapFault(new Message("INVALID_11_VERSION", LOG, ns, xmlReader.getLocalName()),
- Soap11.getInstance().getVersionMismatch());
- }
- <?xml version="1.0" encoding="UTF-8"?>
- <beans xmlns="http://www.springframework.org/schema/beans"
- xmlns:jaxws="http://cxf.apache.org/jaxws" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="
- http://www.springframework.org/schema/beans
- http://www.springframework.org/schema/beans/spring-beans.xsd
- http://cxf.apache.org/jaxws
- http://cxf.apache.org/schemas/jaxws.xsd">
- <bean id="jaxWsProxyFatory" class="org.apache.cxf.jaxws.JaxWsProxyFactoryBean">
- <property name="bindingId" value="http://www.w3.org/2003/05/soap/bindings/HTTP/" />
- <property name="serviceClass" value="net.carefx.cds.v1.services.core.CdsCoreServices" />
- <property name="address" value="http://localhost:8181/cxf/coreServices" />
- </bean>
- <bean id="soapSerivces" class="net.carefx.cds.testtool.proxy.SoapServices">
- <property name="factory" ref="jaxWsProxyFatory" />
- </bean>
- </beans>
- <span style="font-weight: normal;">
- public class SoapServices
- {
- private static final Logger logger = new Logger (SoapServices.class.getName ());
- private JaxWsProxyFactoryBean m_factory;
- private CdsCoreServices cdsCoreServices;
- public JaxWsProxyFactoryBean getFactory ()
- {
- return m_factory;
- }
- public void setFactory (JaxWsProxyFactoryBean factory)
- {
- m_factory = factory;
- }
- public CdsCoreServices getCdsCoreServices ()
- {
- if (cdsCoreServices == null)
- {
- cdsCoreServices = (CdsCoreServices) m_factory.create ();
- }
- return cdsCoreServices;
- }
- }</span>
C# java JAX-WS 问题
webservices 是java写的,用 JDK自带的EndPoint发布,客户端是用C#调用,
在服务器端抛出异常,尽管执行是正常的。
Unsupported Content-Type: application/soap+xml;charset=UTF-8 Supported ones are: [text/xml]
请问这是什么问题? 怎么解决呢? Google 了半天也没找到答案
----------------------
经试验,是C#生成客户端的过程中抛出的,用wsimport 没问题。 是soap版本的问题?
这个问题是解决了, 确实版本问题, jdk6默认是soap1.1
增加 @BindingType("http://java.sun.com/xml/ns/jaxws/2003/05/soap/bindings/HTTP/")
高亮的地址真是难找,SOAPBinding 里面定义的是 http://www.w3.org/2003/05/soap/bindings/HTTP/, 但不能用,提示找不到
communication, my WSDL and here is also my sun-jaxws.xml:
<?xml
version="1.0" encoding="UTF-8"?>
<endpoints version="2.0" xmlns="http://java.sun.com/xml/ns/jax-ws/ri/runtime">
<endpoint
name="FormDataService"
implementation="de.bolsys.netcon.gatewaydb.wsdl.DefaultFormDataService"
wsdl="WEB-INF/wsdl/netgateway.wsdl"
binding="http://java.sun.com/xml/ns/jaxws/2003/05/soap/bindings/HTTP/"
url-pattern="/FormDataService"
enable-mtom="true"/>
</endpoints>
My service annotations:
@WebService(name =
"formDataPortType", targetNamespace = "http://bolsys.de/netcon/gatewaydb/wsdl")
@SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
@BindingType(value=javax.xml.ws.soap.SOAPBinding.SOAP12HTTP_MTOM_BINDING)
@XmlSeeAlso({
ObjectFactory.class
})
My client
annotations:
@WebServiceClient(name = "FormDataService", targetNamespace =
"http://bolsys.de/netcon/gatewaydb/wsdl")
Did I
forget anything?
[Message sent by forum member 'radovana' (radovana)]
It
is because your wsdl using soap11 binding, you can either change the binding to
soap12
like this " xmlns:soapbind="http://schemas.xmlsoap.org/wsdl/soap12/"
or simply
remove binding="http://java.sun.com/xml/ns/jaxws/2003/05/soap/bindings/HTTP/"
from your deploy descriptor
SOAP1.1 and SOAP1.2的更多相关文章
- axis2设置soap1.1或soap1.2协议
现在Axis.Axis2都是同时支持SOAP1.1和SOAP1.2的.即在服务器端发布一个WebService服务之后,客户端既可以通过SOAP1.1版本来访问服务器的服务,也可以通过SOAP1.2版 ...
- soap1.1与soap1.2
1.soap1.2 如果加上jar包后,项目启动报错,有可能是jar包没起作用, 解决方法:把jar包移除,重新加入jar包 TCP/IP Monitor监测到的内容: soap1.2请求与soap1 ...
- 用java实现简单快速的webservice客户端/数据采集器(支持soap1.1和soap1.2标准,支持utf-8编码)
前言: 用了cxf,axis等各种wbeservice实现库,简单试用了一下动态调用的方式,很不满意,完全无法满足业务的需要,所以自己实现了一个webservice采集客户端,方便动态调用外部webs ...
- SOAP1.1 VS SOAP1.2
SOAP提升: 目前WebService的协议主要有SOAP1.1和1.2.两者的命名空间不同. 见下页对比 SOAP1.1版本与SOAP1.2版本在头信息上存在差异.SOAP1.1存在SOAPAct ...
- soap1.1与soap1.2区别
- WebService:设置服务器提供SOAP1.2的服务
1,访问通过cxf发布的服务 (1)与之前一样,同样可以通过在本地通过wsdl文件和命令行生成Java文件来访问服务. 但是我们既然使用了cxf发布,就要通过cxf的工具生成访问.可以通过cxf目录的 ...
- CXF支持 SOAP1.1 SOAP1.2协议
SOAP协议分为两个版本 1.1 1.2 默认支持1.1 实现方式: 1.编写接口 import javax.jws.WebService; @WebService public inte ...
- webservice初识,SOAP1.1版本
客户端与服务端模式,非web端发布 1.1 [Jax-ws第一个例子] 1.1.1 第一步:服务端开发 编写SEI(Service Endpoint Interface),SEI在w ...
- cxf ServerFactoryBean 生成基于soap1.2的WebServices
//获得服务工厂bean ServerFactoryBean bean = new ServerFactoryBean(); HTTPTransportFactory httpTransportFac ...
随机推荐
- 开源应用框架BitAdminCore重构再思考
索引 NET Core应用框架之BitAdminCore框架应用篇系列 框架演示:https://www.bitadmincore.com 框架源码:https://github.com/chenyi ...
- [UWP开发]在windows10中设置壁纸~UserProfilePersonalizationSettings
在之前的wp8.1和wp8中,微软没有公开设置壁纸的API,只有一个设置锁屏的API,但在Windows10中,微软为我们提供了设置壁纸的API:TrySetWallpaperImageAsync,他 ...
- iOS 禁止多按钮同时响应
只需要对相应的按钮添加一行代码 [aButton setExclusiveTouch:YES];
- 快速排序 JAVA实现
快速排序 每次排序的时候设置一个基准点,将小于等于基准点的数全部放到基准点的左边,将大于等于基准点的数全部放到基准点的右边.快速排序是不稳定的,时间复杂度(平均):nlogn public class ...
- 546. Remove Boxes
Given several boxes with different colors represented by different positive numbers. You may experie ...
- 关于OI中简单的常数优化
有些东西借鉴了这里qwq 1.IO(istream/ostream) 输入输出优化 之后能,在赛场上常见的几种输入输出: 输入: $1.cin$ 呵呵,不说什么了,慢的要死.大概$1e8$个数要读1分 ...
- unittest测试框架和测试报告的输出实例(一)
我们整个自动化才是报告的环节基本上分为三个部分: 1.测试用例的准备 2.测试用例的执行 3.测试报告的输出 1.测试用例的准备: 那我们就以搜孤网页做一个简单的用例: from selenium i ...
- psp0级报告
计划 1.1需求描述: 现在市场上有很多的面向小学生的题卡,但是这习题卡不但价格昂贵,而且每次做题的内容基本都是固定.针对这些问题,开发出了这款网页在线答题系统,每次的题目都有所不同,可以跟快更好提高 ...
- Hyperledger Fabric
https://wiki.hyperledger.org/display/fabric Hyperledger Fabric 转至元数据结尾 由 Tracy Kuhrt创建, 最终由 Da ...
- CentOS 7 安装过程中设置网络
如果在安装过程中需要使用网络,需要启动网卡,默认是DHCP 点击configure进入设置 General 常规设置 Automatically connect to this network whe ...