我正在尝试使用基于SOAP的Web服务,其中包含Spring WS 2.2.2版本的org.springframework.ws.client.core.WebServiceTemplate类,如下所示:
webServiceTemplate.setDefaultUri(uri);
webServiceTemplate.setMessageSender(new SOAPMessageSenderWithAuth());
res = (RESPONSE) webServiceTemplate.marshalSendAndReceive(request);
该请求是使用从Web服务的WSDL文件生成的类构建的。
Webservice已经成功地使用SOAP UI进行了测试,但是当使用Exception访问它时Java抛出了"SoapMessageCreationException:无法从InputStream创建消息:无法从给定源创建信封(SAAJ0511)"和"无法从给定源创建信封,因为根元素未命名为'Envelope'(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>
例外情况是:
org.springframework.ws.soap.SoapMessageCreationException:无法从InputStream创建消息:无法从给定来源创建信封:;嵌套异常com.sun.xml.internal.messaging.saaj.SOAPExceptionImpl:无法从给定来源创建信封
这是使用 Spring WS 模板的 Web 服务客户端的类:
import javax.annotation.Resource;
import org.apache.log4j.Logger;
import org.springframework.ws.client.WebServiceIOException;
import org.springframework.ws.client.core.WebServiceTemplate;
import com.myproject.soap.client.services.SOAPWebServiceClient;
/**
*
* @param <REQUEST>
* @param <RESPONSE>
*/
public class DefaultSOAPWebServiceClient<REQUEST, RESPONSE> implements SOAPWebServiceClient<REQUEST, RESPONSE>
{
private final static Logger LOG = Logger.getLogger(DefaultSOAPWebServiceClient.class.getName());
@Resource(name = "webServiceTemplate")
private WebServiceTemplate webServiceTemplate;
@Override
public RESPONSE sendAndReceive(final REQUEST request, final String uri)
{
LOG.info("SOAP URL-" + uri);
LOG.info("REQUEST-" + request.toString());
RESPONSE res = null;
try
{
res = (RESPONSE) webServiceTemplate.marshalSendAndReceive(uri, request);
}
catch (final WebServiceIOException e)
{
e.printStackTrace();
LOG.error("Service with URI: " + uri + " is unreachable");
}
return res;
}
}
方法sendAndAccess的调用方式如下:
public MYDATAResponse createCustomer(final MYDATA request)
{
return (MYDATAResponse) soapWebServiceClient.sendAndReceive((REQUEST) request, getCreateCustomerURI());
}
如果在从服务解析响应时遇到异常,请尝试从 soap UI 发送请求并检查它是否正常工作。如果它在肥皂UI中工作而不是在这里,那么你没有得到正确的响应,这可能是因为请求不正确。在我的情况下,问题是代码中的endpointURL由“?wsdl”组成。删除后,它工作得很好。
问题内容: 我从来没有进入过节点,所以我很确定自己在这里做错了很多事情,因为我无法通过谷歌搜索找到任何信息。 我有一个django网站,我想要一个JS图表库,我选择了chart.js。 我安装并喜欢这些文档,但是在此之后我不确定该怎么做,因此我尝试填写空白并尽可能地遵循其指南。这是我的html看起来像.... 我只是想让一个例子起作用。我将通过npm下载的node_modules目录放在我的服务器
考虑以下无向非循环图: 如果我们定义“根”为A和E,有没有算法可以确定产生的有向无环图?: 我考虑过从根开始尝试某种DFS或BFS,但我不确定如何处理“等待”的需要,以查看另一个根是否可能到达给定的节点。
我正在尝试使用快速连接将JProfiler(10.0.1)连接到JMX端口- “另一个应用程序正在端口19002上运行。请检查您的端口配置”。 我使用的是oracle JDK jdk1.8.0_181。下面是我用于服务器启动的JXM选项。
我正处于从iTextSharp转移到iText7的早期阶段,但很早就失败了。这是代码片段: 这将产生一个错误: 对象似乎是有效的,并且返回一个长度和返回。我已经成功地使用类似的代码来创建和写入一个PDF,但是不能从一个PDFReader对象创建一个PDF文档。我错过了一些简单的东西吗?谢谢
WAS版本:-7.0.0.35(64位)OS-Redhat Enterprise Linux 5.8x86_64 WebSphere MQ:-7.5 注意:-MQ和WAS服务器安装在不同的机器上。传输类型TCP is用于MQ。 WAS配置:服务器级别的Classloader策略是::Single Class loading模式是::Classes首先用父类loader加载。 应用程序级别的Clas