Example usage for javax.xml.ws.soap MTOMFeature MTOMFeature

List of usage examples for javax.xml.ws.soap MTOMFeature MTOMFeature

Introduction

In this page you can find the example usage for javax.xml.ws.soap MTOMFeature MTOMFeature.

Prototype

public MTOMFeature(int threshold) 

Source Link

Document

Creates a MTOMFeature .

Usage

From source file:org.socraticgrid.docmgr.NHINQueryProcessor.java

public void handleQueryMessage(String ticket, NHINQueryMessage msg) {

    try { // Call Web Service Operation
        List<WebServiceFeature> wsfeatures = new ArrayList<WebServiceFeature>();
        wsfeatures.add(new MTOMFeature(0));
        WebServiceFeature[] wsfeaturearray = wsfeatures.toArray(new WebServiceFeature[0]);

        javax.xml.ws.Service myService = new ServiceUtil().createService("EntityDocQuery.wsdl",
                "urn:org:socraticgrid:entitydocquery", "EntityDocQuery");
        org.socraticgrid.entitydocquery.EntityDocQueryPortType port = myService.getPort(
                new javax.xml.namespace.QName("urn:gov:hhs:fha:nhinc:entitydocquery", "EntityDocQueryPortSoap"),
                org.socraticgrid.entitydocquery.EntityDocQueryPortType.class);
        ((javax.xml.ws.BindingProvider) port).getRequestContext().put(
                javax.xml.ws.BindingProvider.ENDPOINT_ADDRESS_PROPERTY,
                PropertyAccessor.getProperty(DocumentManagerImpl.REPOSITORY_PROPERTY_FILE,
                        DocumentManagerImpl.NHINDOCQUERY_ENDPOINT_PROP));
        ((javax.xml.ws.BindingProvider) port).getRequestContext().put("com.sun.xml.ws.request.timeout",
                3 * 60 * 1000);//from w  ww .j a  v a  2 s . c  om
        ((javax.xml.ws.BindingProvider) port).getRequestContext().put("com.sun.xml.internal.ws.request.timeout",
                3 * 60 * 1000);

        RespondingGatewayCrossGatewayQueryRequestType gatewayQueryRequest = new RespondingGatewayCrossGatewayQueryRequestType();
        AdhocQueryRequest adhocQueryRequest = createQuery(msg);
        AssertionType assertion = createAssertion(msg);
        gatewayQueryRequest.setAdhocQueryRequest(adhocQueryRequest);
        gatewayQueryRequest.setAssertion(assertion);

        AdhocQueryResponse result = port.respondingGatewayCrossGatewayQuery(gatewayQueryRequest);

        //Compare gateway results with local repository
        List<NewDocInfo> newDocs = findNewDocuments(result, adhocQueryRequest);

        //Start async retrieve of new documents
        for (NewDocInfo newDoc : newDocs) {
            startRetrieve(newDoc, assertion, msg.getPatientUnitNumber(), msg.getHomeCommunityId(),
                    PropertyAccessor.getProperty(DocumentManagerImpl.REPOSITORY_PROPERTY_FILE,
                            DocumentManagerImpl.INBOUND_DOCUMENT_REPOSITORY_ID_PROP),
                    new DocumentManagerImpl().generateUniqueId(null).getUniqueId(), msg.getCallbackURL());
        }

        //Notify caller of status
        doCallback(true, "Success", ticket, msg.getCallbackURL(), newDocs);
    } catch (Exception e) {
        //Handle custom exceptions here
        log.error("Error handling NHIN query message.", e);

        //Notify caller of status
        doCallback(false, e.getMessage(), ticket, msg.getCallbackURL(), new LinkedList<NewDocInfo>());
    }

}