Search in sources :

Example 1 with IAS4OutgoingDumper

use of com.helger.phase4.dump.IAS4OutgoingDumper in project phase4 by phax.

the class AbstractAS4Client method sendMessageWithRetries.

/**
 * Send the AS4 client message created by
 * {@link #buildMessage(String, IAS4ClientBuildMessageCallback)} to the
 * provided URL. This methods does take retries into account. It synchronously
 * handles the retries and only returns after the last retry.
 *
 * @param <T>
 *        The response data type
 * @param sURL
 *        The URL to send the HTTP POST to
 * @param aResponseHandler
 *        The response handler that converts the HTTP response to a domain
 *        object. May not be <code>null</code>.
 * @param aCallback
 *        An optional callback for the different stages of building the
 *        document. May be <code>null</code>.
 * @param aOutgoingDumper
 *        An outgoing dumper to be used. Maybe <code>null</code>. If
 *        <code>null</code> the global outgoing dumper from
 *        {@link AS4DumpManager} is used.
 * @param aRetryCallback
 *        An optional callback to be invoked if a retry happens on HTTP level.
 *        May be <code>null</code>.
 * @return The sent message that contains
 * @throws IOException
 *         in case of error when building or sending the message
 * @throws WSSecurityException
 *         In case there is an issue with signing/encryption
 * @throws MessagingException
 *         in case something happens in MIME wrapping
 * @since 0.9.14
 */
@Nonnull
public final <T> AS4ClientSentMessage<T> sendMessageWithRetries(@Nonnull final String sURL, @Nonnull final ResponseHandler<? extends T> aResponseHandler, @Nullable final IAS4ClientBuildMessageCallback aCallback, @Nullable final IAS4OutgoingDumper aOutgoingDumper, @Nullable final IAS4RetryCallback aRetryCallback) throws IOException, WSSecurityException, MessagingException {
    // Create a new message ID for each build!
    final String sMessageID = createMessageID();
    final AS4ClientBuiltMessage aBuiltMsg = buildMessage(sMessageID, aCallback);
    HttpEntity aBuiltEntity = aBuiltMsg.getHttpEntity();
    final HttpHeaderMap aBuiltHttpHeaders = aBuiltMsg.getCustomHeaders();
    if (m_aHttpRetrySettings.isRetryEnabled() || aOutgoingDumper != null || AS4DumpManager.getOutgoingDumper() != null) {
        // Ensure a repeatable entity is provided
        aBuiltEntity = m_aResHelper.createRepeatableHttpEntity(aBuiltEntity);
    }
    // Keep the HTTP response status line for external evaluation
    final Wrapper<StatusLine> aStatusLineKeeper = new Wrapper<>();
    // Keep the HTTP response headers for external evaluation
    final HttpHeaderMap aResponseHeaders = new HttpHeaderMap();
    final ResponseHandler<T> aRealResponseHandler = x -> {
        // Remember the HTTP response data
        aStatusLineKeeper.set(x.getStatusLine());
        final Header[] aHeaders = x.getAllHeaders();
        if (aHeaders != null)
            for (final Header aHeader : aHeaders) aResponseHeaders.addHeader(aHeader.getName(), aHeader.getValue());
        // Call the original handler
        return aResponseHandler.handleResponse(x);
    };
    final T aResponseContent = m_aHttpPoster.sendGenericMessageWithRetries(sURL, aBuiltHttpHeaders, aBuiltEntity, sMessageID, m_aHttpRetrySettings, aRealResponseHandler, aOutgoingDumper, aRetryCallback);
    return new AS4ClientSentMessage<>(aBuiltMsg, aStatusLineKeeper.get(), aResponseHeaders, aResponseContent);
}
Also used : StatusLine(org.apache.http.StatusLine) BasicHttpPoster(com.helger.phase4.http.BasicHttpPoster) IGenericImplTrait(com.helger.commons.traits.IGenericImplTrait) MessageHelperMethods(com.helger.phase4.messaging.domain.MessageHelperMethods) PModeReceptionAwareness(com.helger.phase4.model.pmode.PModeReceptionAwareness) ESoapVersion(com.helger.phase4.soap.ESoapVersion) HttpHeaderMap(com.helger.commons.http.HttpHeaderMap) AS4HttpDebug(com.helger.phase4.http.AS4HttpDebug) MessagingException(javax.mail.MessagingException) MetaAS4Manager(com.helger.phase4.mgr.MetaAS4Manager) IMicroDocument(com.helger.xml.microdom.IMicroDocument) IAS4CryptoFactory(com.helger.phase4.crypto.IAS4CryptoFactory) Supplier(java.util.function.Supplier) Header(org.apache.http.Header) StatusLine(org.apache.http.StatusLine) AS4CryptParams(com.helger.phase4.crypto.AS4CryptParams) EAS4MessageType(com.helger.phase4.messaging.domain.EAS4MessageType) WSSecurityException(org.apache.wss4j.common.ext.WSSecurityException) Nonempty(com.helger.commons.annotation.Nonempty) IHttpPoster(com.helger.phase4.http.IHttpPoster) Duration(java.time.Duration) AS4ResourceHelper(com.helger.phase4.util.AS4ResourceHelper) PModeLeg(com.helger.phase4.model.pmode.leg.PModeLeg) Nonnull(javax.annotation.Nonnull) Nullable(javax.annotation.Nullable) IAS4OutgoingDumper(com.helger.phase4.dump.IAS4OutgoingDumper) WillNotClose(javax.annotation.WillNotClose) AS4SigningParams(com.helger.phase4.crypto.AS4SigningParams) IPMode(com.helger.phase4.model.pmode.IPMode) StringHelper(com.helger.commons.string.StringHelper) HttpEntity(org.apache.http.HttpEntity) IOException(java.io.IOException) ResponseHandlerMicroDom(com.helger.httpclient.response.ResponseHandlerMicroDom) ValueEnforcer(com.helger.commons.ValueEnforcer) AS4DumpManager(com.helger.phase4.dump.AS4DumpManager) HttpRetrySettings(com.helger.phase4.http.HttpRetrySettings) MicroWriter(com.helger.xml.microdom.serialize.MicroWriter) OffsetDateTime(java.time.OffsetDateTime) Wrapper(com.helger.commons.wrapper.Wrapper) ReturnsMutableObject(com.helger.commons.annotation.ReturnsMutableObject) ResponseHandler(org.apache.http.client.ResponseHandler) HttpHeaderMap(com.helger.commons.http.HttpHeaderMap) Wrapper(com.helger.commons.wrapper.Wrapper) HttpEntity(org.apache.http.HttpEntity) Header(org.apache.http.Header) Nonnull(javax.annotation.Nonnull)

Example 2 with IAS4OutgoingDumper

use of com.helger.phase4.dump.IAS4OutgoingDumper in project phase4 by phax.

the class AbstractAS4Client method sendMessageAndGetMicroDocument.

@Nullable
public IMicroDocument sendMessageAndGetMicroDocument(@Nonnull final String sURL) throws WSSecurityException, IOException, MessagingException {
    final IAS4ClientBuildMessageCallback aCallback = null;
    final IAS4OutgoingDumper aOutgoingDumper = null;
    final IAS4RetryCallback aRetryCallback = null;
    final IMicroDocument ret = sendMessageWithRetries(sURL, new ResponseHandlerMicroDom(), aCallback, aOutgoingDumper, aRetryCallback).getResponse();
    AS4HttpDebug.debug(() -> "SEND-RESPONSE received: " + MicroWriter.getNodeAsString(ret, AS4HttpDebug.getDebugXMLWriterSettings()));
    return ret;
}
Also used : IAS4OutgoingDumper(com.helger.phase4.dump.IAS4OutgoingDumper) ResponseHandlerMicroDom(com.helger.httpclient.response.ResponseHandlerMicroDom) IMicroDocument(com.helger.xml.microdom.IMicroDocument) Nullable(javax.annotation.Nullable)

Example 3 with IAS4OutgoingDumper

use of com.helger.phase4.dump.IAS4OutgoingDumper in project phase4 by phax.

the class BasicHttpPoster method createDumpingHttpEntity.

@Nonnull
protected static HttpEntity createDumpingHttpEntity(@Nullable final IAS4OutgoingDumper aOutgoingDumper, @Nonnull final HttpEntity aSrcEntity, @Nonnull @Nonempty final String sMessageID, @Nullable final HttpHeaderMap aCustomHttpHeaders, @Nonnegative final int nTry, @Nonnull final Wrapper<OutputStream> aDumpOSHolder) throws IOException {
    if (aOutgoingDumper == null) {
        // No dumper
        return aSrcEntity;
    }
    // We don't have a message processing state
    final OutputStream aDumpOS = aOutgoingDumper.onBeginRequest(EAS4MessageMode.REQUEST, null, null, sMessageID, aCustomHttpHeaders, nTry);
    if (aDumpOS == null) {
        // No dumping needed
        return aSrcEntity;
    }
    // Otherwise multiple calls to writeTo and getContent would crash
    if (!aSrcEntity.isRepeatable())
        throw new IllegalStateException("If dumping of outgoing messages is enabled, a repeatable entity must be provided");
    // Remember the output stream used for dumping (to be able to close it
    // later)
    aDumpOSHolder.set(aDumpOS);
    if (LOGGER.isDebugEnabled())
        LOGGER.debug("Creating dumping entity for the current request");
    return new HttpEntityWrapper(aSrcEntity) {

        @Override
        public void writeTo(@Nonnull @WillNotClose final OutputStream aHttpOS) throws IOException {
            // Write to multiple output streams
            final MultiOutputStream aMultiOS = new MultiOutputStream(aHttpOS, aDumpOS);
            // write to both streams
            super.writeTo(aMultiOS);
            // Flush both, but do not close both
            aMultiOS.flush();
        }
    };
}
Also used : HttpEntityWrapper(org.apache.http.entity.HttpEntityWrapper) Nonnull(javax.annotation.Nonnull) MultiOutputStream(com.helger.phase4.util.MultiOutputStream) OutputStream(java.io.OutputStream) WillNotClose(javax.annotation.WillNotClose) MultiOutputStream(com.helger.phase4.util.MultiOutputStream) Nonnull(javax.annotation.Nonnull)

Example 4 with IAS4OutgoingDumper

use of com.helger.phase4.dump.IAS4OutgoingDumper in project phase4 by phax.

the class AS4RequestHandler method handleRequest.

/**
 * This is the main handling routine when called from an abstract
 * (non-Servlet) API
 *
 * @param aServletRequestIS
 *        The input stream with the request data. May not be
 *        <code>null</code>.
 * @param aRequestHttpHeaders
 *        The HTTP headers of the request. May not be <code>null</code>.
 * @param aHttpResponse
 *        The HTTP response to be filled. May not be <code>null</code>.
 * @throws Phase4Exception
 *         in case the request is missing certain prerequisites. Since 0.9.11
 * @throws IOException
 *         In case of IO errors
 * @throws MessagingException
 *         MIME related errors
 * @throws WSSecurityException
 *         In case of WSS4J errors
 * @see #handleRequest(InputStream, HttpHeaderMap, IAS4ResponseAbstraction)
 *      for a more generic API
 */
public void handleRequest(@Nonnull @WillClose final InputStream aServletRequestIS, @Nonnull final HttpHeaderMap aRequestHttpHeaders, @Nonnull final IAS4ResponseAbstraction aHttpResponse) throws Phase4Exception, IOException, MessagingException, WSSecurityException {
    final IAS4ParsedMessageCallback aCallback = (aHttpHeaders, aSoapDocument, eSoapVersion, aIncomingAttachments) -> {
        // SOAP document and SOAP version are determined
        // Collect all runtime errors
        final ICommonsList<Ebms3Error> aErrorMessages = new CommonsArrayList<>();
        final IAS4ResponseFactory aResponder = _handleSoapMessage(aHttpHeaders, aSoapDocument, eSoapVersion, aIncomingAttachments, aErrorMessages);
        if (aResponder != null) {
            // Response present -> send back
            final IAS4OutgoingDumper aRealOutgoingDumper = m_aOutgoingDumper != null ? m_aOutgoingDumper : AS4DumpManager.getOutgoingDumper();
            aResponder.applyToResponse(aHttpResponse, aRealOutgoingDumper);
        } else {
            // Success, HTTP No Content
            aHttpResponse.setStatus(CHttp.HTTP_NO_CONTENT);
        }
        AS4HttpDebug.debug(() -> "RECEIVE-END with " + (aResponder != null ? "EBMS message" : "no content"));
    };
    AS4IncomingHandler.parseAS4Message(m_aIAF, m_aResHelper, m_aMessageMetadata, aServletRequestIS, aRequestHttpHeaders, aCallback, m_aIncomingDumper);
}
Also used : AS4DecompressException(com.helger.phase4.attachment.AS4DecompressException) StreamHelper(com.helger.commons.io.stream.StreamHelper) BasicHttpPoster(com.helger.phase4.http.BasicHttpPoster) EMimeContentType(com.helger.commons.mime.EMimeContentType) ESoapVersion(com.helger.phase4.soap.ESoapVersion) HttpHeaderMap(com.helger.commons.http.HttpHeaderMap) HttpXMLEntity(com.helger.phase4.http.HttpXMLEntity) LoggerFactory(org.slf4j.LoggerFactory) Ebms3PayloadInfo(com.helger.phase4.ebms3header.Ebms3PayloadInfo) MessagingException(javax.mail.MessagingException) EPModeSendReceiptReplyPattern(com.helger.phase4.model.pmode.leg.EPModeSendReceiptReplyPattern) AS4CryptParams(com.helger.phase4.crypto.AS4CryptParams) NonBlockingByteArrayOutputStream(com.helger.commons.io.stream.NonBlockingByteArrayOutputStream) EAS4MessageType(com.helger.phase4.messaging.domain.EAS4MessageType) WSSecurityException(org.apache.wss4j.common.ext.WSSecurityException) Nonempty(com.helger.commons.annotation.Nonempty) Locale(java.util.Locale) Document(org.w3c.dom.Document) IAS4IncomingMessageMetadata(com.helger.phase4.messaging.IAS4IncomingMessageMetadata) IAS4RetryCallback(com.helger.phase4.client.IAS4RetryCallback) PModeLeg(com.helger.phase4.model.pmode.leg.PModeLeg) IAS4IncomingAttachmentFactory(com.helger.phase4.attachment.IAS4IncomingAttachmentFactory) IAS4OutgoingDumper(com.helger.phase4.dump.IAS4OutgoingDumper) CGlobal(com.helger.commons.CGlobal) AS4SigningParams(com.helger.phase4.crypto.AS4SigningParams) IAS4ServletMessageProcessorSPI(com.helger.phase4.servlet.spi.IAS4ServletMessageProcessorSPI) HttpEntity(org.apache.http.HttpEntity) Ebms3CollaborationInfo(com.helger.phase4.ebms3header.Ebms3CollaborationInfo) IThrowingRunnable(com.helger.commons.callback.IThrowingRunnable) IAS4ParsedMessageCallback(com.helger.phase4.servlet.AS4IncomingHandler.IAS4ParsedMessageCallback) SOAPHeaderElementProcessorRegistry(com.helger.phase4.servlet.soap.SOAPHeaderElementProcessorRegistry) ISuccessIndicator(com.helger.commons.state.ISuccessIndicator) AS4SignalMessageProcessorResult(com.helger.phase4.servlet.spi.AS4SignalMessageProcessorResult) AS4DumpManager(com.helger.phase4.dump.AS4DumpManager) HttpRetrySettings(com.helger.phase4.http.HttpRetrySettings) Ebms3Error(com.helger.phase4.ebms3header.Ebms3Error) AS4ErrorMessage(com.helger.phase4.messaging.domain.AS4ErrorMessage) ICommonsList(com.helger.commons.collection.impl.ICommonsList) Ebms3PartyInfo(com.helger.phase4.ebms3header.Ebms3PartyInfo) HttpMimeMessageEntity(com.helger.phase4.http.HttpMimeMessageEntity) CHttp(com.helger.commons.http.CHttp) PhotonWorkerPool(com.helger.photon.app.PhotonWorkerPool) Ebms3SignalMessage(com.helger.phase4.ebms3header.Ebms3SignalMessage) MessageHelperMethods(com.helger.phase4.messaging.domain.MessageHelperMethods) ResponseHandlerXml(com.helger.httpclient.response.ResponseHandlerXml) AS4Signer(com.helger.phase4.messaging.crypto.AS4Signer) AS4ServletMessageProcessorManager(com.helger.phase4.servlet.mgr.AS4ServletMessageProcessorManager) WillClose(javax.annotation.WillClose) ServletInputStream(javax.servlet.ServletInputStream) AS4MessageProcessorResult(com.helger.phase4.servlet.spi.AS4MessageProcessorResult) AS4HttpDebug(com.helger.phase4.http.AS4HttpDebug) MetaAS4Manager(com.helger.phase4.mgr.MetaAS4Manager) CompletableFuture(java.util.concurrent.CompletableFuture) IAS4CryptoFactory(com.helger.phase4.crypto.IAS4CryptoFactory) Supplier(java.util.function.Supplier) Ebms3MessageProperties(com.helger.phase4.ebms3header.Ebms3MessageProperties) AS4Encryptor(com.helger.phase4.messaging.crypto.AS4Encryptor) Charset(java.nio.charset.Charset) EAS4MessageMode(com.helger.phase4.messaging.EAS4MessageMode) Node(org.w3c.dom.Node) IAS4IncomingDumper(com.helger.phase4.dump.IAS4IncomingDumper) AS4ResourceHelper(com.helger.phase4.util.AS4ResourceHelper) Ebms3MessageInfo(com.helger.phase4.ebms3header.Ebms3MessageInfo) AS4ReceiptMessage(com.helger.phase4.messaging.domain.AS4ReceiptMessage) Nonnull(javax.annotation.Nonnull) Phase4Exception(com.helger.phase4.util.Phase4Exception) Nullable(javax.annotation.Nullable) EEbmsError(com.helger.phase4.error.EEbmsError) Ebms3Property(com.helger.phase4.ebms3header.Ebms3Property) MimeMessageCreator(com.helger.phase4.messaging.mime.MimeMessageCreator) OutputStream(java.io.OutputStream) IRequestWebScopeWithoutResponse(com.helger.web.scope.IRequestWebScopeWithoutResponse) Ebms3UserMessage(com.helger.phase4.ebms3header.Ebms3UserMessage) Logger(org.slf4j.Logger) CommonsArrayList(com.helger.commons.collection.impl.CommonsArrayList) HasInputStream(com.helger.commons.io.stream.HasInputStream) IPMode(com.helger.phase4.model.pmode.IPMode) StringHelper(com.helger.commons.string.StringHelper) IPModeResolver(com.helger.phase4.model.pmode.resolve.IPModeResolver) AS4MimeMessage(com.helger.phase4.messaging.mime.AS4MimeMessage) EMEPBinding(com.helger.phase4.model.EMEPBinding) IOException(java.io.IOException) WSS4JAttachment(com.helger.phase4.attachment.WSS4JAttachment) XMLWriter(com.helger.xml.serialize.write.XMLWriter) ValueEnforcer(com.helger.commons.ValueEnforcer) AS4UserMessage(com.helger.phase4.messaging.domain.AS4UserMessage) IHasInputStream(com.helger.commons.io.IHasInputStream) MEPHelper(com.helger.phase4.model.MEPHelper) IMimeType(com.helger.commons.mime.IMimeType) CAS4(com.helger.phase4.CAS4) AS4XMLHelper(com.helger.phase4.util.AS4XMLHelper) InputStream(java.io.InputStream) IAS4ParsedMessageCallback(com.helger.phase4.servlet.AS4IncomingHandler.IAS4ParsedMessageCallback) IAS4OutgoingDumper(com.helger.phase4.dump.IAS4OutgoingDumper) ICommonsList(com.helger.commons.collection.impl.ICommonsList)

Example 5 with IAS4OutgoingDumper

use of com.helger.phase4.dump.IAS4OutgoingDumper in project phase4 by phax.

the class AS4BidirectionalClientHelper method sendAS4PullRequestAndReceiveAS4UserMessage.

public static void sendAS4PullRequestAndReceiveAS4UserMessage(@Nonnull final IAS4CryptoFactory aCryptoFactory, @Nonnull final IPModeResolver aPModeResolver, @Nonnull final IAS4IncomingAttachmentFactory aIAF, @Nonnull final IAS4IncomingProfileSelector aIncomingProfileSelector, @Nonnull final AS4ClientPullRequestMessage aClientPullRequest, @Nonnull final Locale aLocale, @Nonnull final String sURL, @Nullable final IAS4ClientBuildMessageCallback aBuildMessageCallback, @Nullable final IAS4OutgoingDumper aOutgoingDumper, @Nullable final IAS4IncomingDumper aIncomingDumper, @Nullable final IAS4RetryCallback aRetryCallback, @Nullable final IAS4RawResponseConsumer aResponseConsumer, @Nullable final IAS4UserMessageConsumer aUserMsgConsumer) throws IOException, Phase4Exception, WSSecurityException, MessagingException {
    if (LOGGER.isInfoEnabled())
        LOGGER.info("Sending AS4 PullRequest to '" + sURL + "' with max. " + aClientPullRequest.httpRetrySettings().getMaxRetries() + " retries");
    if (LOGGER.isDebugEnabled())
        LOGGER.debug("  MPC = '" + aClientPullRequest.getMPC() + "'");
    final Wrapper<HttpResponse> aWrappedResponse = new Wrapper<>();
    final ResponseHandler<byte[]> aResponseHdl = aHttpResponse -> {
        // May throw an ExtendedHttpResponseException
        final HttpEntity aEntity = ResponseHandlerHttpEntity.INSTANCE.handleResponse(aHttpResponse);
        if (aEntity == null)
            return null;
        aWrappedResponse.set(aHttpResponse);
        return EntityUtils.toByteArray(aEntity);
    };
    final AS4ClientSentMessage<byte[]> aResponseEntity = aClientPullRequest.sendMessageWithRetries(sURL, aResponseHdl, aBuildMessageCallback, aOutgoingDumper, aRetryCallback);
    if (LOGGER.isInfoEnabled())
        LOGGER.info("Successfully transmitted AS4 PullRequest with message ID '" + aResponseEntity.getMessageID() + "' to '" + sURL + "'");
    if (aResponseConsumer != null)
        aResponseConsumer.handleResponse(aResponseEntity);
    // Try interpret result as SignalMessage
    if (aResponseEntity.hasResponse() && aResponseEntity.getResponse().length > 0) {
        final IAS4IncomingMessageMetadata aMessageMetadata = new AS4IncomingMessageMetadata(EAS4MessageMode.RESPONSE).setRemoteAddr(sURL);
        // Read response as EBMS3 User Message
        // Read it in any case to ensure signature validation etc. happens
        final Ebms3UserMessage aUserMessage = AS4IncomingHandler.parseUserMessage(aCryptoFactory, aPModeResolver, aIAF, aIncomingProfileSelector, aClientPullRequest.getAS4ResourceHelper(), null, aLocale, aMessageMetadata, aWrappedResponse.get(), aResponseEntity.getResponse(), aIncomingDumper);
        if (aUserMessage != null && aUserMsgConsumer != null)
            aUserMsgConsumer.handleUserMessage(aUserMessage);
    } else
        LOGGER.info("AS4 ResponseEntity is empty");
}
Also used : Ebms3SignalMessage(com.helger.phase4.ebms3header.Ebms3SignalMessage) IAS4SignalMessageConsumer(com.helger.phase4.client.IAS4SignalMessageConsumer) IAS4RawResponseConsumer(com.helger.phase4.client.IAS4RawResponseConsumer) LoggerFactory(org.slf4j.LoggerFactory) MessagingException(javax.mail.MessagingException) IAS4CryptoFactory(com.helger.phase4.crypto.IAS4CryptoFactory) ResponseHandlerHttpEntity(com.helger.httpclient.response.ResponseHandlerHttpEntity) EntityUtils(org.apache.http.util.EntityUtils) IAS4IncomingProfileSelector(com.helger.phase4.servlet.IAS4IncomingProfileSelector) EAS4MessageMode(com.helger.phase4.messaging.EAS4MessageMode) WSSecurityException(org.apache.wss4j.common.ext.WSSecurityException) Locale(java.util.Locale) IAS4IncomingDumper(com.helger.phase4.dump.IAS4IncomingDumper) IAS4IncomingMessageMetadata(com.helger.phase4.messaging.IAS4IncomingMessageMetadata) IAS4RetryCallback(com.helger.phase4.client.IAS4RetryCallback) Nonnull(javax.annotation.Nonnull) IAS4IncomingAttachmentFactory(com.helger.phase4.attachment.IAS4IncomingAttachmentFactory) Phase4Exception(com.helger.phase4.util.Phase4Exception) Nullable(javax.annotation.Nullable) IAS4OutgoingDumper(com.helger.phase4.dump.IAS4OutgoingDumper) Ebms3Property(com.helger.phase4.ebms3header.Ebms3Property) AS4ClientPullRequestMessage(com.helger.phase4.client.AS4ClientPullRequestMessage) Ebms3UserMessage(com.helger.phase4.ebms3header.Ebms3UserMessage) Logger(org.slf4j.Logger) AS4IncomingMessageMetadata(com.helger.phase4.servlet.AS4IncomingMessageMetadata) IPModeResolver(com.helger.phase4.model.pmode.resolve.IPModeResolver) AS4ClientSentMessage(com.helger.phase4.client.AS4ClientSentMessage) HttpEntity(org.apache.http.HttpEntity) IOException(java.io.IOException) WSS4JAttachment(com.helger.phase4.attachment.WSS4JAttachment) IAS4ClientBuildMessageCallback(com.helger.phase4.client.IAS4ClientBuildMessageCallback) AS4IncomingHandler(com.helger.phase4.servlet.AS4IncomingHandler) Wrapper(com.helger.commons.wrapper.Wrapper) AS4ClientUserMessage(com.helger.phase4.client.AS4ClientUserMessage) HttpResponse(org.apache.http.HttpResponse) IAS4UserMessageConsumer(com.helger.phase4.client.IAS4UserMessageConsumer) ResponseHandler(org.apache.http.client.ResponseHandler) IAS4IncomingMessageMetadata(com.helger.phase4.messaging.IAS4IncomingMessageMetadata) Wrapper(com.helger.commons.wrapper.Wrapper) ResponseHandlerHttpEntity(com.helger.httpclient.response.ResponseHandlerHttpEntity) HttpEntity(org.apache.http.HttpEntity) IAS4IncomingMessageMetadata(com.helger.phase4.messaging.IAS4IncomingMessageMetadata) AS4IncomingMessageMetadata(com.helger.phase4.servlet.AS4IncomingMessageMetadata) Ebms3UserMessage(com.helger.phase4.ebms3header.Ebms3UserMessage) HttpResponse(org.apache.http.HttpResponse)

Aggregations

IAS4OutgoingDumper (com.helger.phase4.dump.IAS4OutgoingDumper)7 IOException (java.io.IOException)6 Nonnull (javax.annotation.Nonnull)6 Nullable (javax.annotation.Nullable)5 HttpEntity (org.apache.http.HttpEntity)5 Wrapper (com.helger.commons.wrapper.Wrapper)4 IAS4RetryCallback (com.helger.phase4.client.IAS4RetryCallback)4 IAS4CryptoFactory (com.helger.phase4.crypto.IAS4CryptoFactory)4 MessagingException (javax.mail.MessagingException)4 IAS4IncomingAttachmentFactory (com.helger.phase4.attachment.IAS4IncomingAttachmentFactory)3 WSS4JAttachment (com.helger.phase4.attachment.WSS4JAttachment)3 AS4ClientUserMessage (com.helger.phase4.client.AS4ClientUserMessage)3 IAS4ClientBuildMessageCallback (com.helger.phase4.client.IAS4ClientBuildMessageCallback)3 IAS4IncomingDumper (com.helger.phase4.dump.IAS4IncomingDumper)3 Ebms3Property (com.helger.phase4.ebms3header.Ebms3Property)3 Ebms3SignalMessage (com.helger.phase4.ebms3header.Ebms3SignalMessage)3 Ebms3UserMessage (com.helger.phase4.ebms3header.Ebms3UserMessage)3 EAS4MessageMode (com.helger.phase4.messaging.EAS4MessageMode)3 IAS4IncomingMessageMetadata (com.helger.phase4.messaging.IAS4IncomingMessageMetadata)3 IPModeResolver (com.helger.phase4.model.pmode.resolve.IPModeResolver)3