在用cxf 做webservice客户端的时候碰到的:

javax.xml.ws.soap.SOAPFaultException: A SOAP 1.2 message is not valid when sent to a SOAP 1.1 only endpoint.

在网上上找了一些资料但是还是不能解决我的问题,但是还是要感谢下, 不然太不厚道了

 写道
看来是soap协议不匹配 在接口或实现类上声明 @BindingType(value = "http://www.w3.org/2003/05/soap/bindings/HTTP/") 或者 @BindingType(value = SOAPBinding.SOAP12HTTP_BINDING) 注意要引入geronimo-jaxws_2.2_spec-1.0.jar包 生成的wsdl文件我们可以看到 xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/
在这些前提下 依然返回 同样的错误
于是我试着找源码,发现原来是这里 version 默认的就是 Soap11 instance 。 
  1. if (soapVersion == Soap12.getInstance()
  2. && version == Soap11.getInstance()) {
  3. throw new SoapFault(new Message("INVALID_11_VERSION", LOG, ns, xmlReader.getLocalName()),
  4. Soap11.getInstance().getVersionMismatch());
  5. }
回头看看CXF 在初始化的是否可以将 Soap12 设置进去 , ok 。
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:jaxws="http://cxf.apache.org/jaxws" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="
  5. http://www.springframework.org/schema/beans
  6. http://www.springframework.org/schema/beans/spring-beans.xsd
  7. http://cxf.apache.org/jaxws
  8. http://cxf.apache.org/schemas/jaxws.xsd">
  9. <bean id="jaxWsProxyFatory" class="org.apache.cxf.jaxws.JaxWsProxyFactoryBean">
  10. <property name="bindingId" value="http://www.w3.org/2003/05/soap/bindings/HTTP/" />
  11. <property name="serviceClass" value="net.carefx.cds.v1.services.core.CdsCoreServices" />
  12. <property name="address" value="http://localhost:8181/cxf/coreServices" />
  13. </bean>
  14. <bean id="soapSerivces" class="net.carefx.cds.testtool.proxy.SoapServices">
  15. <property name="factory" ref="jaxWsProxyFatory" />
  16. </bean>
  17. </beans>
 
  1. <span style="font-weight: normal;">
  2. public class SoapServices
  3. {
  4. private static final Logger logger = new Logger (SoapServices.class.getName ());
  5. private JaxWsProxyFactoryBean m_factory;
  6. private CdsCoreServices cdsCoreServices;
  7. public JaxWsProxyFactoryBean getFactory ()
  8. {
  9. return m_factory;
  10. }
  11. public void setFactory (JaxWsProxyFactoryBean factory)
  12. {
  13. m_factory = factory;
  14. }
  15. public CdsCoreServices getCdsCoreServices ()
  16. {
  17. if (cdsCoreServices == null)
  18. {
  19. cdsCoreServices = (CdsCoreServices) m_factory.create ();
  20. }
  21. return cdsCoreServices;
  22. }
  23. }</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/, 但不能用,提示找不到

 ----------------------------------------------------------------------------------------------------------------------------------------------------
I think, I set everything to SOAP 1.2. I have attached a sevrver-client
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)]

-------------------------------------------------------------------------------------------------------------------------------------
I have same problem with one of my web services. Here is the solution

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的更多相关文章

  1. axis2设置soap1.1或soap1.2协议

    现在Axis.Axis2都是同时支持SOAP1.1和SOAP1.2的.即在服务器端发布一个WebService服务之后,客户端既可以通过SOAP1.1版本来访问服务器的服务,也可以通过SOAP1.2版 ...

  2. soap1.1与soap1.2

    1.soap1.2 如果加上jar包后,项目启动报错,有可能是jar包没起作用, 解决方法:把jar包移除,重新加入jar包 TCP/IP Monitor监测到的内容: soap1.2请求与soap1 ...

  3. 用java实现简单快速的webservice客户端/数据采集器(支持soap1.1和soap1.2标准,支持utf-8编码)

    前言: 用了cxf,axis等各种wbeservice实现库,简单试用了一下动态调用的方式,很不满意,完全无法满足业务的需要,所以自己实现了一个webservice采集客户端,方便动态调用外部webs ...

  4. SOAP1.1 VS SOAP1.2

    SOAP提升: 目前WebService的协议主要有SOAP1.1和1.2.两者的命名空间不同. 见下页对比 SOAP1.1版本与SOAP1.2版本在头信息上存在差异.SOAP1.1存在SOAPAct ...

  5. soap1.1与soap1.2区别

  6. WebService:设置服务器提供SOAP1.2的服务

    1,访问通过cxf发布的服务 (1)与之前一样,同样可以通过在本地通过wsdl文件和命令行生成Java文件来访问服务. 但是我们既然使用了cxf发布,就要通过cxf的工具生成访问.可以通过cxf目录的 ...

  7. CXF支持 SOAP1.1 SOAP1.2协议

    SOAP协议分为两个版本 1.1 1.2 默认支持1.1   实现方式:   1.编写接口   import javax.jws.WebService; @WebService public inte ...

  8. webservice初识,SOAP1.1版本

    客户端与服务端模式,非web端发布 1.1      [Jax-ws第一个例子] 1.1.1     第一步:服务端开发 编写SEI(Service Endpoint Interface),SEI在w ...

  9. cxf ServerFactoryBean 生成基于soap1.2的WebServices

    //获得服务工厂bean ServerFactoryBean bean = new ServerFactoryBean(); HTTPTransportFactory httpTransportFac ...

随机推荐

  1. 关于My Sql update语句不能用子查询的解决办法

    在使用My Sql数据库语法操作update时,第一时间想到的是一下写法: UPDATE purchase_request_detail SET convert_to_voucher_id=, con ...

  2. C#注册表操作类(完整版) 整理完整

    /// <summary> /// 注册表基项静态域 /// /// 主要包括: /// 1.Registry.ClassesRoot 对应于HKEY_CLASSES_ROOT主键 /// ...

  3. async异步方法

    在C# 中,可以使用asyc+await来完成一个异步方法. async用来标志一个使用了await的方法是非阻塞API,是一个异步方法,就当成一个普通关键字就行了.关键是await,await是配合 ...

  4. .Net MVC5路由机制与扩展

    新建一个MVC项目启动后,首先访问的地址是http://localhost:xxx/Home/Index,这时候我们也明白因为在程序中有个叫做Home的控制器,并且在这个控制器下面有个叫做Index的 ...

  5. jQuery--事件, 事件绑定, 阻止事件冒泡, 事件委托,页面载入后函数

    1.常用事件, 按住shift键实现同步选择效果,搜索框联想效果 2.阻止事件冒泡 3.事件委托 4.使用 $(document).ready(function (){...}) 实现文件加载完绑定事 ...

  6. JAVA中的static关键字(静态变量和成员变量)

    static的特点: 1.static是一个修饰符,用于修饰成员: 2.static修饰的成员被所有的对象所共享: 3.static优先于对象存在,因为static的成员随着类的加载就已经存在了: 4 ...

  7. PL/SQL控制语句(二、循环控制语句)

    循环允许重复执行代码直到循环条件匹配,PL/SQL中循环主要有LOOP语句和EXIT语句两种,这两种语句相辅相成,一起组成了PL/SQL的循环结构.在PL/SQL中,循环分为四大类,本文将会讲解其中的 ...

  8. Linux动态库的导出控制

    在实际工作中,许多软件模块是以动态库的方式提供的.做为模块开发人员,我们不仅要掌握如何编写和构建动态库,还要了解如何控制动态库的导出接口,这样,我们可以向模块的用户仅导出必要的接口,而另一些内部接口, ...

  9. pandas.concat连接dataframe

    https://blog.csdn.net/stevenkwong/article/details/52528616

  10. Jmeter使用吞吐量控制器实现不同的用户操纵不同的业务

    一.需求 需求:博客系统,模拟用户真实行为,80%的用户阅读文章,20%的用户创建文章,创建文章的用户随机的删除或者修改文章. 二.脚本实现 80%的用户查看文章 20%用户创建文章 根据post_i ...