повторный запрос мыла, отправленный с сервера веб-логики в ответ на тайм-аут - PullRequest
0 голосов
/ 02 мая 2018

Я развернул мыльный клиент jaxws ri на web-logic 12c, в случае истечения времени ожидания ответа отправляется повторный запрос, найдите следующий фрагмент кода

public String getAuthZResponse(MerchantWebServiceSoap serviceSoap, String  
 strCmd, String strXML, int time)  
            throws InterruptedException,  
                ExecutionException
    {
        String response = "";
        ExecutorService executor = Executors.newSingleThreadExecutor();

        Future<String> future = executor.submit(new AuthZTask(serviceSoap, strCmd, strXML));// strCmd stands for command in soap request

        try
        {
            response = future.get(time, TimeUnit.SECONDS);// time out here is 25 seconds
        }
        catch (TimeoutException e)
        {
            response = "Response time out!!";
            future.cancel(true);
            executor.shutdownNow();
        }
        executor.shutdownNow();
        return response;

    }  
class AuthZTask implements Callable<String>
{

    String strCmd = null, strXML = null;
    MerchantWebServiceSoap serviceSoap = null;

    public AuthZTask(MerchantWebServiceSoap serviceSoap, String strCmd, String strXML)
    {
        this.strCmd = strCmd;
        this.strXML = strXML;
        this.serviceSoap = serviceSoap;
    }

    @Override
    public String call() throws Exception
    {
        String authorizeResponse = serviceSoap.callPaySecure(strCmd, strXML);
        return authorizeResponse;
    }

}  
// jax rs soap client for action
@WebMethod(operationName = "CallPaySecure", action = "third party end point goes here")
    @WebResult(name = "CallPaySecureResult", targetNamespace = "third party end point namepsace goes here")
    @RequestWrapper(localName = "CallPaySecure", targetNamespace = "third party end point namepsace goes here", className = "CallPaySecure")
    @ResponseWrapper(localName = "CallPaySecureResponse", targetNamespace = "third party end point namepsace goes here", className = "CallPaySecureResponse")
    public String callPaySecure(
        @WebParam(name = "strCommand", targetNamespace = "third party end point namepsace goes here")
        String strCommand,
        @WebParam(name = "strXML", targetNamespace = "third party end point namepsace goes here")
        String strXML);   

Но когда тот же код выполняется с сервера tomcat, запрос публикуется только один раз. Вызов сделан с сервера на сервер. помочь примерно столько же, заранее спасибо

...