美好的一天
我一直在网上搜索,到目前为止,以下解决方案似乎最接近我没有任何第三方库的解决方案,但它不起作用。 :(
我没有wsdl我可以存根。我正在调用外部Web服务,只是传入一条肥皂消息。
我没有使用容器测试相同的代码,即。在我的ide中的一个主要方法,它在那里工作,当我部署到wildfly10时,它看起来像被jboss忽略或覆盖。
我找不到standalone.xml中的任何属性来编辑以更改readtimeout设置,它只需要用于此webservice调用。
我的调试日志没有在日志中打印任何内容,这表明它没有被执行。由于setReadTimeout(1);
,我期待立即出错任何有想法的人?
SOAPConnectionFactory soapConnectionFactory = SOAPConnectionFactory.newInstance();
SOAPConnection soapConnection = soapConnectionFactory.createConnection();
URL endpoint = new URL (null, ENDPOINT, new URLStreamHandler() {
@Override
protected URLConnection openConnection(URL u) throws IOException {
LOG.debug("1.");
URL clone = new URL (u.toString ());
LOG.debug("2.");
URLConnection connection = clone.openConnection ();
LOG.debug("3.");
connection.setConnectTimeout (10000);//10 seconds
LOG.debug("4.");
connection.setReadTimeout (1);//1 ms
LOG.debug("5.");
return connection;
}
});
SOAPMessage soapResponse = soapConnection.call(soapMsg, endpoint);
如果我编辑以下的调用行,readtimeout工作,但我得到http 500,但网址是正确的:
SOAPMessage soapResponse = soapConnection.call(soapMsg, endpoint.getContent());
答案 0 :(得分:0)
发送前不要记录消息。由于某种原因,清除你的肥皂消息。在首先发送之前,注释掉记录或打印出SOAP消息的任何代码。现在应该可行了。