Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java SOAPFactory创建';空';'的值;肥皂';地址头标记中的命名空间_Java_Soap_Namespaces - Fatal编程技术网

Java SOAPFactory创建';空';'的值;肥皂';地址头标记中的命名空间

Java SOAPFactory创建';空';'的值;肥皂';地址头标记中的命名空间,java,soap,namespaces,Java,Soap,Namespaces,在JBoss4.2.3中运行的J2EE应用程序中,我们正在创建一个SOAPConnection来调用第三方的web服务。在SOAP头中,我们必须将Addressing to和Action标记设置为“1”,并将“mustUnderstand”设置为“1”。此“mustUnderstand”属性位于http://www.w3.org/2003/05/soap-envelope名称空间。我们通过调用: SOAPFactory#createName(“mustUnderstand”、“soap”、”ht

在JBoss4.2.3中运行的J2EE应用程序中,我们正在创建一个SOAPConnection来调用第三方的web服务。在SOAP头中,我们必须将Addressing to和Action标记设置为“1”,并将“mustUnderstand”设置为“1”。此“mustUnderstand”属性位于
http://www.w3.org/2003/05/soap-envelope
名称空间。我们通过调用:

SOAPFactory#createName(“mustUnderstand”、“soap”、”http://www.w3.org/2003/05/soap-envelope");

当我们在WEB-INF/lib文件夹中包含saaj.jar和saaj-impl.jar时,这是正确的。如果去掉这些,名称空间将显示为null:xmlns:soap='null',而不是
xmlns:soap=”http://www.w3.org/2003/05/soap-envelope“
”。下面是整个坏标签:

http://domain/web-service.url

但如果我们在应用程序中部署了这两个jar文件,我们自己的托管web服务在创建错误时会失败(由于类强制转换异常:

javax.xml.soap.SOAPException:java.lang.ClassCastException:com.sun.xml.messaging.saaj.soap.ver1_1.SOAPMessageFactory1_1Impl)

我们的J2EE应用程序是一个JBossWS web服务,它本身调用第三方web服务。与jar文件存在明显的冲突


关于如何获取
http://www.w3.org/2003/05/soap-envelope
要在生成的SOAP标记中写出的名称空间?

我最终直接使用API调用SOAPHeaderElement#mustUnderstand(true)。这似乎解决了这个问题,因为不需要另一个名称空间声明(它使用来自信封本身的soap env名称空间声明)

我还有另一个问题(JBoss想要发送一个分块的HTTP请求,第三方web服务不喜欢它,但我还没有深入研究这个问题)