Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.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 无法从给定源创建信封_Java_Spring_Web Services_Soap - Fatal编程技术网

Java 无法从给定源创建信封

Java 无法从给定源创建信封,java,spring,web-services,soap,Java,Spring,Web Services,Soap,我试图使用Spring ws 2.2.2发行版的org.springframework.ws.client.core.WebServiceTemplate类来使用基于SOAP的web服务,如下所示: webServiceTemplate.setDefaultUri(uri); webServiceTemplate.setMessageSender(new SOAPMessageSenderWithAuth()); res = (RESPONSE) webServiceTemplate.marsh

我试图使用Spring ws 2.2.2发行版的org.springframework.ws.client.core.WebServiceTemplate类来使用基于SOAP的web服务,如下所示:

webServiceTemplate.setDefaultUri(uri);
webServiceTemplate.setMessageSender(new SOAPMessageSenderWithAuth());
res = (RESPONSE) webServiceTemplate.marshalSendAndReceive(request);
public MYDATAResponse createCustomer(final MYDATA request)
    {
        return (MYDATAResponse) soapWebServiceClient.sendAndReceive((REQUEST) request, getCreateCustomerURI());
    }
该请求是使用从web服务的WSDL文件生成的类构建的

已使用SOAP UI成功测试了Web服务,但当使用Java访问它时,出现异常“SoapMessageCreationException:无法从InputStream创建消息:无法从给定源创建信封(SAAJ0511)”和“无法从给定源创建信封,因为根元素未命名为‘信封’(SAAJ0514)”被抛出

有人对这个例外有什么建议吗

提前谢谢

webServiceTemplate的Spring bean定义如下:

<bean id="webServiceTemplate" class="org.springframework.ws.client.core.WebServiceTemplate"
    p:marshaller-ref="jaxbMarshaller"
    p:unmarshaller-ref="jaxbMarshaller"
    p:defaultUri="...">
    <constructor-arg ref="messageFactory"/>
        <property name="messageSender">
          <bean class="org.springframework.ws.transport.http.HttpComponentsMessageSender">
              <property name="credentials">
                  <bean class="org.apache.http.auth.UsernamePasswordCredentials">
                      <constructor-arg value="..."/>
                      <constructor-arg value="..."/>
                  </bean>
              </property>
          </bean>
      </property>
    </bean>

如果在解析来自服务的响应时遇到异常,请尝试从SOAPUI发送请求,并检查它是否正常工作。 如果它在soapui中工作,而不是在这里,那么您没有得到正确的响应,这可能是因为请求不正确。
在我的例子中,问题是我的端点url在代码中由“?wsdl”组成“。删除后效果非常好。

在构建模板后,为什么还要处理属性呢。您不应该在配置了默认uri或消息发送者之后设置它。删除设置并使用
webServiceTemplate.marshalSendAndReceive(uri,request)
方法。谢谢您的提示!我将对此进行调整,但SAAJ0511和SAAJ0514异常仍然存在…您没有提到异常编号,那么这是什么异常…看起来您只是发送了错误的对象,但没有显示足够的代码。首先:感谢您的帮助!例外编号为SAAJ0514和SAAJ0511。所以您认为我尝试发送的对象与实际的WSDL方案不匹配?我将尝试从相应的WSDL文件再次为请求生成类
public MYDATAResponse createCustomer(final MYDATA request)
    {
        return (MYDATAResponse) soapWebServiceClient.sendAndReceive((REQUEST) request, getCreateCustomerURI());
    }