SoapConnection超时在wildfly 10中不起作用

时间:2016-11-01 14:56:05

标签: java web-services soap soap-client wildfly-10

美好的一天

我一直在网上搜索,到目前为止,以下解决方案似乎最接近我没有任何第三方库的解决方案,但它不起作用。 :(

我没有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());

1 个答案:

答案 0 :(得分:0)

发送前不要记录消息。由于某种原因,清除你的肥皂消息。在首先发送之前,注释掉记录或打印出SOAP消息的任何代码。现在应该可行了。