关于CXF WebService服务中Message类的使用(示例)

Example 1  
Project: remote   File: InInterceptor.java View source code Vote up 7 votes  
public void handleMessage(Message message) throws Fault {  
  HttpServletRequest request = (HttpServletRequest)message.get("HTTP.REQUEST");  
  HttpSession httpSession = request.getSession();  
  boolean newSession = false;  
  
  String userName = (String)httpSession.getAttribute(USER_NAME);  
  String password = null;  
    
  if (userName != null) {  
    password = (String)httpSession.getAttribute(PASSWORD);        
  } else {  
    AuthorizationPolicy policy = message.get(AuthorizationPolicy.class);  
    if (policy != null) {  
      userName = policy.getUserName();  
      password = policy.getPassword();  
      newSession = true;  
    }   
  }  
  if (userName == null) {  
    userName = ANONYMOUS_USER;  
  }  
  try {  
  
    //TODO log in or throw exception if login not correct  
      
    if (newSession) {  
    httpSession.setAttribute(USER_NAME, userName);  
    if (password != null) {  
      httpSession.setAttribute(PASSWORD, password);               
    }  
    }  
  
  } catch (Exception e) {  
    Activator.log("Exception while logging in:", e);  
    throw new Fault(e);  
  }      
}  


Example 2  
Project: rave   File: JsonResponseWrapperInterceptor.java View source code  Vote up 7 votes  
@Override  
public void handleMessage(Message message) throws Fault {  
    Object o = message.getContent(Object.class);  
  
    JsonResponseWrapper wrapper = new JsonResponseWrapper(o);  
  
    message.setContent(JsonResponseWrapper.class, wrapper);  
}  
    
  
   
 
Example 3  
Project: steve   File: FromAddressInterceptor.java View source code Vote up 6 votes  
private String getChargeBoxId(Message message) {  
    MessageContentsList lst = MessageContentsList.getContentsList(message);  
    if (lst == null) {  
        return null;  
    }  
  
    MessageInfo mi = (MessageInfo) message.get("org.apache.cxf.service.model.MessageInfo");  
    for (MessagePartInfo mpi : mi.getMessageParts()) {  
        if (CHARGEBOX_ID_HEADER.equals(mpi.getName().getLocalPart())) {  
            return (String) lst.get(mpi);  
        }  
    }  
  
    return null;  
}  
   

Example 4  
Project: carbon-registry   File: RestApiRequestAuthorizationHandler.java View source code   Vote up 6 votes  
/** 
  * This method handles the request received at the registry endpoint. The method decodes the extracted  
  * JWT token and extract the enduser's username and tenantID which is appended to the original rest request  
  * as query param and forwarded to the respective resource class. This method returns  
  * a null value which indicates that the request to be processed.  
  */  
@Override  
public Response handleRequest(Message message, ClassResourceInfo resourceInfo) {  
    if(log.isDebugEnabled()){  
        log.debug("request has been received at REST API handle request method");  
    }  
    String requestUrl = message.get(Message.REQUEST_URL).toString();  
    String queryParam = (message.get(Message.QUERY_STRING) != null)?message.get(Message.QUERY_STRING).toString():"";  
    //extracting all the headers received along with the request.  
    String header = message.get(Message.PROTOCOL_HEADERS).toString();  
    String userName = getUsernameFromJwtToken(header);  
    String tenantID = null;  
    try {  
        tenantID = String.valueOf(getTenantIdOFUser(userName));  
    }   
    catch (UserStoreException e) {  
        log.error(e.getMessage(),e);  
        return Response.status(Response.Status.UNAUTHORIZED).build();  
    }  
    String queryParamAppender = (queryParam.length() == 0 ? "" : "&");  
    queryParam += queryParamAppender + "username="+userName+"&tenantid="+tenantID;  
    message.put(Message.REQUEST_URL, requestUrl);  
    message.put(Message.QUERY_STRING, queryParam);            
    return null;  
}  
    
  
   
Example 5  
Project: forgestore   File: HeadersOutInterceptor.java View source code Vote up 6 votes  
@Override  
    public void handleMessage(Message outMessage) throws Fault {          
          
        Map<String, List<String>> headers = (Map<String, List<String>>) outMessage.get(Message.PROTOCOL_HEADERS);  
  
        if (headers == null) {  
            headers = new TreeMap<String, List<String>>(String.CASE_INSENSITIVE_ORDER);  
              
            List<String> vl = new ArrayList<String>();  
            vl.add("1.0.0");  
            headers.put("X-Baker-API-Version", vl );  
//          vl = new ArrayList<String>();  
//          vl.add("*");  
//          headers.put("Access-Control-Allow-Origin", vl);           
            outMessage.put(Message.PROTOCOL_HEADERS, headers);  
        }  
          
          
          
        // modify headers  
  
    }  
   

 
Example 6  
Project: springlab   File: SpringSecurityInInterceptor.java View source code    Vote up 6 votes  
public void handleMessage(Message message) throws Fault {  
    String userName = getUserNameFromWSS4JResult(message);  
    HttpServletRequest request = (HttpServletRequest) message.get("HTTP.REQUEST");  
  
    UserDetails userDetails = userDetailsService.loadUserByUsername(userName);  
    SpringSecurityUtils.saveUserDetailsToContext(userDetails, request);  
}  
   

 
Example 7  
Project: olingo-odata4   File: StaticSecurityInterceptor.java View source code  Vote up 6 votes  
@Override  
public void handleMessage(final Message message) throws Fault {  
  final SecurityContext sc = message.get(SecurityContext.class);  
  if (sc == null || sc.getUserPrincipal() == null) {  
    @SuppressWarnings("unchecked")  
    final Map<String, List<String>> headers = (Map<String, List<String>>) message.get(Message.PROTOCOL_HEADERS);  
  
    final List<String> auth = headers.get(AUTHORIZATION_PROPERTY);  
    if (auth == null || auth.isEmpty()) {  
      throw new WebApplicationException(Response.Status.UNAUTHORIZED);  
    }  
  
    final String encodedUserPassword = auth.get(0).replaceFirst(AUTHENTICATION_SCHEME + " ", "");  
    final String usernameAndPassword = new String(Base64.decode(encodedUserPassword));  
  
    // Split username and password tokens  
    final StringTokenizer tokenizer = new StringTokenizer(usernameAndPassword, ":");  
    final String username = tokenizer.nextToken();  
    final String password = tokenizer.nextToken();  
  
    if (!"odatajclient".equals(username) || !"odatajclient".equals(password)) {  
      throw new WebApplicationException(Response.Status.UNAUTHORIZED);  
    }  
  
    final SecurityContext newSc = new SecurityContext() {  
  
      @Override  
      public Principal getUserPrincipal() {  
        return new SimplePrincipal("odatajclient");  
      }  
  
      @Override  
      public boolean isUserInRole(final String role) {  
        return false;  
      }  
    };  
    message.put(SecurityContext.class, newSc);  
  }  
}  
   

 
Example 8  
Project: jbossws-cxf   File: SOAPConnectionImpl.java View source code   Vote up 6 votes  
@SuppressWarnings("unchecked")  
private MessageObserver createMessageObserver(final Conduit c)  
{  
   return new MessageObserver()   
   {  
       public void onMessage(Message inMessage)   
       {  
          LoadingByteArrayOutputStream bout = new LoadingByteArrayOutputStream();  
          try   
          {  
             IOUtils.copy(inMessage.getContent(InputStream.class), bout);  
             inMessage.getExchange().put(InputStream.class, bout.createInputStream());  
                     
             Map<String, List<String>> inHeaders =   
                (Map<String, List<String>>)inMessage.get(Message.PROTOCOL_HEADERS);  
                     
             inMessage.getExchange().put(Message.PROTOCOL_HEADERS, inHeaders);  
             c.close(inMessage);  
          }   
          catch (IOException e)   
          {  
             //ignore  
          }  
       }  
   };  
}  
   

 
Example 9  
Project: support-examples   File: ResponseTransformerInterceptor.java View source code  Vote up 6 votes  
public void handleMessage(Message message) throws Fault {  
  log.warn("Configuring interceptor");  
  Map<String, String> appendElements = new HashMap<String, String>();  
  appendElements.put("{http://schemas.xmlsoap.org/soap/envelope/}Body", "{http://schemas.xmlsoap.org/soap/envelope/}Header=");  
  TransformOutInterceptor interceptor = new TransformOutInterceptor();  
  interceptor.setOutAppendElements(appendElements);  
  message.getInterceptorChain().add(interceptor);  
  
  Map<String, String> envMap = new HashMap<String, String>();  
  envMap.put( "env" , "http://schemas.xmlsoap.org/soap/envelope/");  
  Map<String, String> nsMap = new HashMap<String, String>();  
  nsMap.put( "https://www.ccr.gov" , "m" );  
  JAXBDataBinding dataBinding = (JAXBDataBinding)message.getExchange().getEndpoint().getService().getDataBinding();  
  dataBinding.setNamespaceMap(nsMap);  
  message.put("soap.env.ns.map", envMap);  
}  
   

 
Example 10  
Project: jbossws-cxf   File: SOAPConnectionImpl.java View source code   Vote up 6 votes  
@Override  
public SOAPMessage get(Object addressObject) throws SOAPException   
{  
   checkClosed();  
     
   String address = getAddress(addressObject);  
   ConduitInitiator ci = getConduitInitiator(address);  
      
      
   // create a new Message and Exchange  
   EndpointInfo info = new EndpointInfo();  
   info.setAddress(address);  
   Message outMessage = new MessageImpl();  
   Exchange exch = new ExchangeImpl();  
   outMessage.setExchange(exch);  
      
   // sent GET request  
   try   
   {  
      final Conduit c = ci.getConduit(info, BusFactory.getThreadDefaultBus(false)); //TODO verify bus  
        
      if (c instanceof HTTPConduit)  
      {  
         ((HTTPConduit)c).getClient().setAutoRedirect(true);  
      }  
          
      outMessage.put(Message.HTTP_REQUEST_METHOD, "GET");  
      c.prepare(outMessage);  
          
      c.setMessageObserver(createMessageObserver(c));  
          
      c.close(outMessage);  
   }   
   catch (Exception ex)   
   {  
      throw MESSAGES.getRequestCouldNotBeSent(ex);  
   }      
  
   // read SOAPMessage  
   return readSoapMessage(exch);  
}  
   

 
Example 11  
Project: motown   File: ReplyToHeaderInterceptorTest.java View source code  Vote up 6 votes  
@Test  
public void handleMessageWithMapsVerifyReplyToHeaderAdded() {  
    AddressingProperties properties = new AddressingPropertiesImpl();  
    Message message = new MessageImpl();  
    message.put(MAP_PROPERTY, properties);  
    ReplyToHeaderInInterceptor headerInInterceptor = new ReplyToHeaderInInterceptor();  
  
    headerInInterceptor.handleMessage(new SoapMessage(message));  
  
    assertEquals(REPLY_TO_ANONYMOUS, properties.getReplyTo().getAddress().getValue());  
}  
   

 
Example 12  
Project: fcrepo   File: WadlGenerator.java View source code Vote up 6 votes  
@Override  
public Response handleRequest(Message message, ClassResourceInfo resource) {  
    if (getPath(message).endsWith("/application.wadl")) {  
        String query = (String) message.get(Message.QUERY_STRING);  
        if (query == null) {  
            message.put(Message.QUERY_STRING, "_wadl=&_type=xml");  
        } else {  
            if (query.indexOf("_wadl=") < 0) message.put(Message.QUERY_STRING, query + "&_wadl=&_type=xml");  
        }  
    }  
    return super.handleRequest(message, resource);  
}  
   

 
Example 13  
Project: ddf-platform   File: AbstractOverrideInterceptor.java View source code Vote up 6 votes  
/** 
 * Adds the policy retrieved from the configured policy loader to this message as the override 
 * policy. 
 * 
 * @param message 
 */  
@Override  
public void handleMessage(Message message) {  
    if (policy == null) {  
        PolicyBuilder builder = message.getExchange().getBus()  
                .getExtension(PolicyBuilder.class);  
  
        try {  
            policy = builder.getPolicy(loader.getPolicy().getDocumentElement());  
            logger.trace("Read in policy, adding to policy override of message.");  
            message.put(PolicyConstants.POLICY_OVERRIDE, policy);  
        } catch (Exception e) {  
            throw new Fault(e);  
        }  
    } else {  
        message.put(PolicyConstants.POLICY_OVERRIDE, policy);  
    }  
  
}  
   

 
Example 14  
Project: ginco   File: GincoOutFaultInterceptor.java View source code   Vote up 6 votes  
@Override  
public void handleMessage(Message message) throws Fault {  
    handleMessageCalled = true;  
    Exception ex = message.getContent(Exception.class);  
    if (ex == null) {  
        throw new RuntimeException("Exception is expected");  
    }  
    if (!(ex instanceof Fault)) {  
        throw new RuntimeException("Fault is expected");  
    }  
    logger.error("Uncaught exception in REST services : ", ex);  
    HttpServletResponse response = (HttpServletResponse) message.getExchange()  
            .getInMessage().get(AbstractHTTPDestination.HTTP_RESPONSE);  
    response.setStatus(200);  
    response.setContentType("text/html");  
    try {  
        String msg = "{success:false, message: '" + LabelUtil.getResourceLabel("unknown-exception") + "'}";  
        response.getOutputStream().write(msg.getBytes());  
        response.getOutputStream().flush();  
        message.getInterceptorChain().abort();  
    } catch (IOException ioex) {  
        throw new RuntimeException("Error writing the response");  
    }  
  
}  
   

 
Example 15  
Project: jbossws-cxf   File: CheckInterceptor.java View source code Vote up 6 votes  
public void handleMessage(Message message) throws Fault  
{  
   String method = (String)message.get(Message.HTTP_REQUEST_METHOD);  
   if (!method.equals("POST"))  
   {  
      return;  
   }  
   StringBuilder sb = new StringBuilder();  
   InputStream is = message.getContent(InputStream.class);  
   if (is != null)  
   {  
      CachedOutputStream bos = new CachedOutputStream();  
      try  
      {  
         copy(is, bos, 4096);  
         bos.flush();  
         is.close();  
         message.setContent(InputStream.class, bos.getInputStream());  
         bos.writeCacheTo(sb);  
         bos.close();  
      }  
      catch (IOException e)  
      {  
         throw new Fault(e);  
      }  
   }  
   if (!sb.toString().contains("http://www.w3.org/2005/08/addressing"))  
   {  
      throw new Fault("Could not find any reference to namespace 'http://www.w3.org/2005/08/addressing' in handled message.",  
            java.util.logging.Logger.getLogger(CheckInterceptor.class.getName()));  
   }  
}  
   

 
Example 16  
Project: jaxrs-oauth2   File: CXFMessageReader.java View source code    Vote up 6 votes  
private Map<String, List<String>> extractFormParams(Message message) throws MessageReadException {  
    InputStream is = message.getContent(InputStream.class);  
    StringBuilder buf = new StringBuilder();  
    if (is != null) {  
        try (CachedOutputStream bos = new CachedOutputStream(); InputStream stream = is) {  
            IOUtils.copy(stream, bos);  
  
            bos.flush();  
  
            message.setContent(InputStream.class, bos.getInputStream());  
            bos.writeCacheTo(buf);  
        } catch (IOException e) {  
            throw new MessageReadException(e);  
        }  
    }  
    return JAXRSUtils.getStructuredParams(buf.toString(), "&", false, false);  
}  
   

 
Example 17  
Project: Lather   File: IQBackChannelConduitTest.java View source code  Vote up 6 votes  
@Test  
public void testSendingReply() {  
      
    try {  
        testInputPacket.setFrom("SoapClient");  
        testInputPacket.setTo("SoapServer");  
        testInputPacket.setPacketID("packet-id");  
        testInputPacket.setType(IQ.Type.GET);  
          
        Message replyMsg = new MessageImpl();  
        IQBackChannelConduit conduit = new IQBackChannelConduit(testInputPacket, fakeXmppConnection);  
        conduit.prepare(replyMsg);  
          
        CachedOutputStream outputStream = (CachedOutputStream)replyMsg.getContent(OutputStream.class);  
        byte[] outputMsg = REPLY_MSG.getBytes();  
        outputStream.write(outputMsg, 0, outputMsg.length);  
          
        conduit.close(replyMsg);  
        Assert.assertEquals("From set to SoapServer",   
                            testInputPacket.getTo(),   
                            testReplyPacket.getFrom());  
        Assert.assertEquals("To set to SoapClient",   
                            testInputPacket.getFrom(),   
                            testReplyPacket.getTo());  
        Assert.assertEquals("Packet ids are the same",   
                            testInputPacket.getPacketID(),   
                            testReplyPacket.getPacketID());  
        Assert.assertEquals("IQ type should be result",  
                            IQ.Type.RESULT,   
                            testReplyPacket.getType());  
          
        Assert.assertEquals("Reply content read from CachedOutputStream",  
                            REPLY_MSG,   
                            testReplyPacket.getChildElementXML());  
          
    } catch (IOException e) {  
        Assert.fail("Could not write output message for testing: " + e.getMessage());  
    }  
  
      
}  
   

 
Example 18  
Project: jruby-cxf   File: AegisSchemaValidationInInterceptor.java View source code Vote up 6 votes  
public void handleMessage(Message message) throws Fault {  
    XMLStreamReader xmlReader = message.getContent(XMLStreamReader.class);  
    try {  
        setSchemaInMessage(message, xmlReader);  
    } catch (XMLStreamException e) {  
        throw new Fault(new org.apache.cxf.common.i18n.Message("SCHEMA_ERROR", LOG),   
                        e);  
    }  
}  
   

 
Example 19  
Project: ddf-platform   File: EXIOutInterceptor.java View source code   Vote up 6 votes  
@Override  
public void handleMessage(Message message) {  
  
    if (isRequestor(message)) {  
        //client sending request  
        LOGGER.trace("Not performing any EXI compression for initial request.");  
    } else {  
        //server sending back response  
        Message request = message.getExchange().getInMessage();  
        Map<String, List<String>> requestHeaders = CastUtils  
                .cast((Map<?, ?>) request.get(Message.PROTOCOL_HEADERS));  
        if (requestHeaders != null) {  
            String acceptEncodingHeader = StringUtils  
                    .join(requestHeaders.get(HttpHeaders.ACCEPT_ENCODING), ",");  
            if (StringUtils.isNotBlank(acceptEncodingHeader) && acceptEncodingHeader  
                    .contains(EXI_ACCEPT_ENCODING)) {  
                LOGGER.debug("Sending back response message using EXI-encoding.");  
                OutputStream os = message.getContent(OutputStream.class);  
                EXIOutputStream cached = new EXIOutputStream(os);  
                message.setContent(OutputStream.class, cached);  
            } else {  
                LOGGER.debug("EXI encoding not accepted by the client, skipping EXI encoding.");  
            }  
        } else {  
            LOGGER.debug(  
                    "No request headers were found in the incoming request. Cannot encode to exi.");  
        }  
    }  
}  
   

 
Example 20  
Project: cxf-circuit-switcher   File: CircuitSwitcherTargetSelector.java View source code   Vote up 6 votes  
private boolean performFailover(Exchange exchange, InvocationContext invocation) {  
    Exception prevExchangeFault = (Exception) exchange.remove(Exception.class.getName());  
    Message outMessage = exchange.getOutMessage();  
    Exception prevMessageFault = outMessage.getContent(Exception.class);  
    outMessage.setContent(Exception.class, null);  
    overrideAddressProperty(invocation.getContext());  
    Retryable retry = exchange.get(Retryable.class);  
    exchange.clear();  
    boolean failover = false;  
    if (retry != null) {  
        try {  
            failover = true;  
            long delay = getDelayBetweenRetries();  
            if (delay > 0) {  
                Thread.sleep(delay);  
            }  
            Map<String, Object> context = invocation.getContext();  
            retry.invoke(invocation.getBindingOperationInfo(), invocation.getParams(), context,  
                    exchange);  
        } catch (Exception e) {  
            if (exchange.get(Exception.class) != null) {  
                exchange.put(Exception.class, prevExchangeFault);  
            }  
            if (outMessage.getContent(Exception.class) != null) {  
                outMessage.setContent(Exception.class, prevMessageFault);  
            }  
        }  
    }  
    return failover;  
}  
   

 
Example 21  
Project: fuchsia   File: ExchangeUtils.java View source code    Vote up 6 votes  
protected static Exception getException(Message message) {  
    Exception ex = null;  
  
    if (message != null) {  
        ex = message.getContent(Exception.class);  
    }  
  
    return ex;  
}  
   

 
Example 22  
Project: jbossws-cxf   File: UDPConduit.java View source code   Vote up 6 votes  
private void dataReceived(Message message, byte bytes[], boolean async)  
{  
   final Message inMessage = new MessageImpl();  
   inMessage.setExchange(message.getExchange());  
   message.getExchange().setInMessage(inMessage);  
   inMessage.setContent(InputStream.class, new ByteArrayInputStream(bytes));  
   incomingObserver.onMessage(inMessage);  
   if (!message.getExchange().isSynchronous())  
   {  
      message.getExchange().setInMessage(null);  
   }  
}  
   

 
Example 23  
Project: Lather   File: IQClientConduit.java View source code   Vote up 6 votes  
/** 
 * Triggered when a response is received. Note this conduit can call many services. Responses will need to 
 * be correlated with their requests. 
 */  
@Override  
public void processPacket(Packet xmppResponse) {  
    Message responseMsg = new MessageImpl();  
    SoapPacket soapMsg = (SoapPacket)xmppResponse;  
    responseMsg.setContent(InputStream.class, new ByteArrayInputStream(soapMsg.getChildElementXML()  
        .getBytes()));  
  
    // TODO Fix this to handle error replies from XMPP server.  
    // TODO Fix this to handle exchanges that don't exist.  
    Exchange msgExchange = exchangeCorrelationTable.remove(xmppResponse.getPacketID());  
    msgExchange.setInMessage(responseMsg);  
  
    // TODO Fix this so the response is processed by a different thread.  
    getMessageObserver().onMessage(responseMsg);  
}  
   

 
Example 24  
Project: cxf-circuit-switcher   File: CircuitSwitcherTargetSelectorTest.java View source code   Vote up 6 votes  
private Message messageTo(String requestBaseURL, String requestPath) {  
    Message message = new SoapMessage(Soap11.getInstance());  
    String requestURL = requestBaseURL + requestPath;  
    message.put(Message.ENDPOINT_ADDRESS, requestURL);  
    message.put(Message.BASE_PATH, requestBaseURL);  
    message.put(Message.REQUEST_URI, requestURL);  
  
    HashMap<String, Object> ctx = new HashMap<String, Object>();  
    ctx.put(Client.REQUEST_CONTEXT, new HashMap<String, Object>());  
    message.put(Message.INVOCATION_CONTEXT, ctx);  
  
    CXFBusImpl bus = new CXFBusImpl();  
    BindingFactoryManagerImpl bindingFactoryManager = new BindingFactoryManagerImpl();  
    bindingFactoryManager.registerBindingFactory("abc", new JAXRSBindingFactory());  
    bus.setExtension(bindingFactoryManager, BindingFactoryManager.class);  
    Map<String, ConduitInitiator> conduitInitiators = new HashMap<String, ConduitInitiator>();  
    ConduitInitiator ci = new HTTPTransportFactory(bus);  
    conduitInitiators.put(ENDPOINT_TRANSPORT_ID, ci);  
    ConduitInitiatorManagerImpl cim = new ConduitInitiatorManagerImpl(conduitInitiators);  
    bus.setExtension(cim, ConduitInitiatorManager.class);  
  
    Exchange exchange = exchange(message);  
    exchange.put(Bus.class, bus);  
    EndpointInfo ei = new EndpointInfo();  
    ei.setAddress("http://abc123");  
    BindingInfo b = new BindingInfo(null, "abc");  
    ei.setBinding(b);  
    Endpoint endpointMock = mock(Endpoint.class);  
    when(endpointMock.getEndpointInfo()).thenReturn(ei);  
    exchange.put(Endpoint.class, endpointMock);  
  
    message.setExchange(exchange);  
    message.setContent(List.class, new ArrayList<String>());  
    circuitBreakerTargetSelector.prepare(message);  
  
    InvocationKey key = new InvocationKey(exchange);  
    InvocationContext invocation = circuitBreakerTargetSelector.getInvocation(key);  
  
    invocation.getContext().put(Message.ENDPOINT_ADDRESS, requestPath);  
    invocation.getContext().put("org.apache.cxf.request.uri", requestPath);  
    return message;  
}  
   

 
Example 25  
Project: fuchsia   File: ProtobufMessageInInterceptor.java View source code Vote up 6 votes  
/** 
 */  
public void handleMessage(Message message) throws Fault {  
    Endpoint endpoint = message.getExchange().get(Endpoint.class);  
    @SuppressWarnings(value = "unchecked")  
    Class<? extends com.google.protobuf.Message> messageClass = (Class) message.getExchange().get(IN_MESSAGE_CLASS);  
  
    if (messageClass == null) {  
        messageClass = (Class) endpoint  
                .get(IN_MESSAGE_CLASS);  
    }  
  
    InputStream in = message.getContent(InputStream.class);  
  
    try {  
        com.google.protobuf.Message m = (com.google.protobuf.Message) messageClass.getMethod("parseFrom",  
                InputStream.class).invoke(null, in);  
        message.setContent(com.google.protobuf.Message.class, m);  
    } catch (Exception e) {  
        log.error("Failed to invoke message method from protobuffer.",e);  
        throw new RuntimeException(e);  
    }  
}  
   

 
Example 26  
Project: tesb-rt-se   File: MessageToEventMapperTest.java View source code  Vote up 6 votes  
private Message getTestMessage() throws IOException, EndpointException {  
      Message message = new MessageImpl();  
      ExchangeImpl exchange = new ExchangeImpl();  
      ServiceInfo serviceInfo = new ServiceInfo();  
      InterfaceInfo interfaceInfo = new InterfaceInfo(serviceInfo, new QName("interfaceNs", "interfaceName"));  
      serviceInfo.setInterface(interfaceInfo );  
      SoapBindingInfo bInfo = new SoapBindingInfo(serviceInfo , WSDLConstants.NS_SOAP12);  
      bInfo.setTransportURI(TransportType);  
      OperationInfo opInfo = new OperationInfo();  
      opInfo.setName(new QName("namespace", "opName"));  
      BindingOperationInfo bindingOpInfo = new BindingOperationInfo(bInfo, opInfo);  
      exchange.put(BindingOperationInfo.class, bindingOpInfo);  
      SoapBinding binding = new SoapBinding(bInfo);  
      exchange.put(Binding.class, binding);  
      String ns = "ns";  
EndpointInfo ei = new EndpointInfo(serviceInfo, ns );  
ei.setAddress(Address);  
Service service = new ServiceImpl();  
Bus bus = BusFactory.getThreadDefaultBus();  
Endpoint endpoint = new EndpointImpl(bus, service, ei);  
exchange.put(Endpoint.class, endpoint );  
      message.setExchange(exchange);  
  
      FlowIdHelper.setFlowId(message,FlowID);  
  
      Principal principal = new X500Principal(PrincipalString);  
      SecurityContext sc = new DefaultSecurityContext(principal, new Subject());  
      message.put(SecurityContext.class, sc);  
        
      CachedOutputStream cos = new CachedOutputStream();  
        
      InputStream is = new ByteArrayInputStream(TESTCONTENT.getBytes("UTF-8"));  
      IOUtils.copy(is, cos);  
      message.setContent(CachedOutputStream.class, cos);  
        
      CustomInfo customInfo = CustomInfo.getOrCreateCustomInfo(message);  
      customInfo.put("key1", "value1");  
  
      return message;  
  }  
   

 
Example 27  
Project: jbossws-cxf   File: HandlerChainSortInterceptor.java View source code  Vote up 6 votes  
@Override  
@SuppressWarnings("rawtypes")  
public void handleMessage(Message message) throws Fault  
{  
   if (binding != null) {  
      Exchange ex = message.getExchange();  
      if (ex.get(HandlerChainInvoker.class) == null) {  
         List<Handler> hc = binding.getHandlerChain();  
         if (hc.size() > 1) { //no need to sort etc if the chain is empty or has one handler only  
            Collections.sort(hc, comparator);  
            //install a new HandlerChainInvoker using the sorted handler chain;  
            //the AbstractJAXWSHandlerInterceptor will be using this invoker  
            //instead of creating a new one  
            ex.put(HandlerChainInvoker.class, new HandlerChainInvoker(hc, isOutbound(message, ex)));  
         }  
      }  
   }  
}  
   

 
Example 28  
Project: ddf-platform   File: MetricsInInterceptor.java View source code    Vote up 6 votes  
@Override  
public void handleMessage(Message message) throws Fault {  
  
    Exchange ex = message.getExchange();  
  
    if (null == ex) {  
        return;  
    }  
  
    if (isClient(message)) {  
        if (!ex.isOneWay()) {  
            endHandlingMessage(ex);  
        }  
    } else {  
        beginHandlingMessage(ex);  
    }  
}  
   

 
Example 29  
Project: linshare-core   File: WebserviceBase.java View source code Vote up 6 votes  
protected Long getTransfertDuration() {  
    Long uploadStartTime = null;  
    Message currentMessage = PhaseInterceptorChain.getCurrentMessage();  
    Exchange exchange = currentMessage.getExchange();  
    if (exchange.containsKey("org.linagora.linshare.webservice.interceptor.start_time")) {  
        uploadStartTime = (Long) exchange.get("org.linagora.linshare.webservice.interceptor.start_time");  
        logger.debug("Upload start time : " + uploadStartTime);  
    }  
    Long transfertDuration = null;  
    if (uploadStartTime != null) {  
        Date endDate = new Date();  
        transfertDuration = endDate.getTime() - uploadStartTime;  
        if (logger.isDebugEnabled()) {  
            Date beginDate = new Date(uploadStartTime);  
            logger.debug("Upload was begining at : " + beginDate);  
            logger.debug("Upload was ending at : " + endDate);  
        }  
        logger.info("statistics:upload time:" + transfertDuration + "ms.");  
    }  
    return transfertDuration;  
}  
   

 
Example 30  
Project: cxf-circuit-switcher   File: CircuitSwitcherTargetSelector.java View source code   Vote up 6 votes  
/** 
 * Called when a Conduit is actually required. 
 *  
 * @param message 
 * @return the Conduit to use for mediation of the message 
 */  
  
public synchronized Conduit selectConduit(Message message) {  
    Conduit c = message.get(Conduit.class);  
    if (c == null) {  
  
        Exchange exchange = message.getExchange();  
        InvocationKey key = new InvocationKey(exchange);  
        InvocationContext invocation = getInvocation(key);  
  
        if ((invocation != null) && !invocation.getContext().containsKey(IS_SELECTED)) {  
            Endpoint target = getAvailableTarget();  
            if (target != null && targetChanged(message, target)) {  
                setEndpoint(target);  
                message.put(Message.ENDPOINT_ADDRESS, target.getEndpointInfo().getAddress());  
                overrideAddressProperty(invocation.getContext());  
                invocation.getContext().put(IS_SELECTED, "");  
            } else if (target == null) {  
                throw new Fault(new IOException("No available targets"));  
            }  
        }  
  
        message.put(CONDUIT_COMPARE_FULL_URL, Boolean.TRUE);  
        c = getSelectedConduit(message);  
    }  
    if (receiveTimeout != null) {  
        HTTPClientPolicy httpClientPolicy = ((HTTPConduit) c).getClient();  
        httpClientPolicy.setReceiveTimeout(receiveTimeout);  
    }  
  
    return c;  
}  
   

 
Example 31  
Project: geofence   File: AuthenticationHandler.java View source code   Vote up 6 votes  
/** 
 * @param inMessage 
 * @return Message 
 */  
private Message getOutMessage(Message inMessage)  
{  
    Exchange exchange = inMessage.getExchange();  
    Message outMessage = exchange.getOutMessage();  
    if (outMessage == null)  
    {  
        Endpoint endpoint = exchange.get(Endpoint.class);  
        outMessage = endpoint.getBinding().createMessage();  
        exchange.setOutMessage(outMessage);  
    }  
    outMessage.putAll(inMessage);  
  
    return outMessage;  
}  
   

 
Example 32  
Project: soi-toolkit-mule   File: FixEncoding.java View source code Vote up 6 votes  
private String getEncoding(Message message) {  
    Exchange ex = message.getExchange();  
    String encoding = (String)message.get(Message.ENCODING);  
    if (encoding == null && ex.getInMessage() != null) {  
        encoding = (String) ex.getInMessage().get(Message.ENCODING);  
        message.put(Message.ENCODING, encoding);  
    }  
      
    if (encoding == null) {  
        encoding = "UTF-8";  
        message.put(Message.ENCODING, encoding);  
    }  
    return encoding;  
}  
   

 
Example 33  
Project: tesb-rt-se   File: XPathProcessor.java View source code    Vote up 6 votes  
private String getEncoding(Message message) {  
    Exchange ex = message.getExchange();  
    String encoding = (String) message.get(Message.ENCODING);  
    if (encoding == null && ex.getInMessage() != null) {  
        encoding = (String) ex.getInMessage().get(Message.ENCODING);  
        message.put(Message.ENCODING, encoding);  
    }  
  
    if (encoding == null) {  
        encoding = "UTF-8";  
        message.put(Message.ENCODING, encoding);  
    }  
    return encoding;  
}  
   

 
Example 34  
Project: cxf   File: AbstractClient.java View source code   Vote up 6 votes  
protected Object[] preProcessResult(Message message) throws Exception {  
      
    Exchange exchange = message.getExchange();   
    
    Exception ex = message.getContent(Exception.class);  
    if (ex != null  
        || PropertyUtils.isTrue(exchange.get(SERVICE_NOT_AVAIL_PROPERTY))  
            && PropertyUtils.isTrue(exchange.get(COMPLETE_IF_SERVICE_NOT_AVAIL_PROPERTY))) {  
        getConfiguration().getConduitSelector().complete(exchange);  
    }  
    if (ex != null) {  
        checkClientException(message, ex);  
    }  
    checkClientException(message, exchange.get(Exception.class));  
      
    List<?> result = exchange.get(List.class);  
    return result != null ? result.toArray() : null;  
}  
   

 
Example 35  
Project: Lather   File: IQDestination.java View source code Vote up 6 votes  
@Override  
public void processPacket(Packet msg) {  
    SoapPacket soapMsg = (SoapPacket)msg;  
  
    Message cxfMsg = new MessageImpl();  
    cxfMsg.setContent(InputStream.class,  
                      new ByteArrayInputStream(soapMsg.getChildElementXML().getBytes()));  
  
    Exchange msgExchange = new ExchangeImpl();  
    msgExchange.setConduit(new IQBackChannelConduit(soapMsg, getXmppConnection()));  
    cxfMsg.setExchange(msgExchange);  
  
    // TODO Fix this so a different thread is used.  
    getMessageObserver().onMessage(cxfMsg);  
}  
   

 
Example 36  
Project: Lather   File: PubSubDestination.java View source code Vote up 6 votes  
@Override  
public void handlePublishedItems(ItemPublishEvent<PayloadItem<SimplePayload>> events) {  
  
    for (PayloadItem<SimplePayload> pi : events.getItems()) {  
        SimplePayload soapMsg = pi.getPayload();  
  
        Message cxfMsg = new MessageImpl();  
        cxfMsg.setContent(InputStream.class, new ByteArrayInputStream(soapMsg.toXML().getBytes()));  
  
        Exchange msgExchange = new ExchangeImpl();  
        msgExchange.setOneWay(true);  
        msgExchange.setDestination(this);  
        cxfMsg.setExchange(msgExchange);  
  
        // TODO Fix this so a different thread is used.  
        getMessageObserver().onMessage(cxfMsg);  
    }  
}  
   

 
Example 37  
Project: ddf-platform   File: PolicyWSDLGetInterceptor.java View source code    Vote up 6 votes  
@Override  
public void handleMessage(Message message) throws Fault {  
    String method = (String) message.get(Message.HTTP_REQUEST_METHOD);  
    String query = (String) message.get(Message.QUERY_STRING);  
  
    if (!"GET".equals(method) || StringUtils.isEmpty(query)) {  
        return;  
    }  
  
    String baseUri = (String) message.get(Message.REQUEST_URL);  
    String ctx = (String) message.get(Message.PATH_INFO);  
  
    Map<String, String> map = UrlUtils.parseQueryString(query);  
    if (isRecognizedQuery(map, baseUri, ctx,  
            message.getExchange().getEndpoint().getEndpointInfo())) {  
        Document doc = getDocument(message, baseUri, map, ctx);  
  
        // DDF- start ADDED code  
        if (map.containsKey("wsdl")) {  
            doc = addPolicyToWSDL(doc, loader.getPolicy());  
        }  
        // DDF- end of ADDED code  
  
        Endpoint e = message.getExchange().get(Endpoint.class);  
        Message mout = new MessageImpl();  
        mout.setExchange(message.getExchange());  
        mout = e.getBinding().createMessage(mout);  
        mout.setInterceptorChain(  
                OutgoingChainInterceptor.getOutInterceptorChain(message.getExchange()));  
        message.getExchange().setOutMessage(mout);  
  
        mout.put(DOCUMENT_HOLDER, doc);  
        mout.put(Message.CONTENT_TYPE, "text/xml");  
  
        // just remove the interceptor which should not be used  
        cleanUpOutInterceptors(mout);  
  
        // notice this is being added after the purge above, don't swap the order!  
        mout.getInterceptorChain().add(WSDLGetOutInterceptor.INSTANCE);  
  
        // DDF- CHANGED TRANSFORM_SKIP to transform.skip because private field   
        message.getExchange().put("transform.skip", Boolean.TRUE);  
        // skip the service executor and goto the end of the chain.  
        message.getInterceptorChain()  
                .doInterceptStartingAt(message, OutgoingChainInterceptor.class.getName());  
    }  
}  
   

 
Example 38  
Project: tesb-rt-se   File: FlowIdProducerTest.java View source code    Vote up 6 votes  
@Test  
public void flowIdProducerInTest() {  
    FlowIdProducerIn<Message> flowIdProducerIn = new FlowIdProducerIn<Message>();  
    Message message = new MessageImpl();  
    Exchange exchange = new ExchangeImpl();  
    message.setExchange(exchange);  
    String flowId = FlowIdHelper.getFlowId(message);  
      
    Assert.assertNull("FlowId should be null before FlowIdProducerIn handleMessage()", flowId);  
    flowIdProducerIn.handleMessage(message);  
    flowId = FlowIdHelper.getFlowId(message);  
    Assert.assertNotNull("FlowId should not be null after FlowIdProducerIn handleMessage()", flowId);  
}  
   

 
Example 39  
Project: tesb-rt-se   File: FlowIdProducerTest.java View source code    Vote up 6 votes  
@Test  
public void flowIdProducerOutTest() {  
    FlowIdProducerOut<Message> flowIdProducerOut = new FlowIdProducerOut<Message>();  
    Message message = new MessageImpl();  
    Exchange exchange = new ExchangeImpl();  
    Message inMessage = new MessageImpl();  
    exchange.setInMessage(inMessage);  
    message.setExchange(exchange);  
      
    String flowId = FlowIdHelper.getFlowId(message);  
    Assert.assertNull("FlowId should be null before FlowIdProducerOut handleMessage()", flowId);  
    flowIdProducerOut.handleMessage(message);  
    flowId = FlowIdHelper.getFlowId(message);  
    Assert.assertNotNull("FlowId should not be null after FlowIdProducerOut handleMessage()", flowId);  
}  
   

 
Example 40  
Project: cxf   File: AbstractClient.java View source code   Vote up 6 votes  
protected String convertParamValue(Object pValue, Annotation[] anns) {  
    if (pValue == null) {  
        return null;  
    }  
    ProviderFactory pf = ClientProviderFactory.getInstance(cfg.getEndpoint());  
    if (pf != null) {  
        Message m = null;  
        if (pf.isParamConverterContextsAvailable()) {  
            m = new MessageImpl();  
            m.put(Message.REQUESTOR_ROLE, Boolean.TRUE);  
            m.setExchange(new ExchangeImpl());  
            m.getExchange().setOutMessage(m);  
            m.getExchange().put(Endpoint.class, cfg.getEndpoint());  
        }  
        Class<?> pClass = pValue.getClass();  
        @SuppressWarnings("unchecked")  
        ParamConverter<Object> prov =   
            (ParamConverter<Object>)pf.createParameterHandler(pClass, pClass, anns, m);  
        if (prov != null) {  
            try {  
                return prov.toString(pValue);  
            } finally {  
                if (m != null) {  
                    pf.clearThreadLocalProxies();  
                }  
            }  
        }  
    }  
    return pValue.toString();  
}  
   

 
Example 41  
Project: cxf   File: AbstractClient.java View source code   Vote up 6 votes  
protected Exchange createExchange(Message m, Exchange exchange) {  
    if (exchange == null) {  
        exchange = new ExchangeImpl();  
    }  
    exchange.setSynchronous(true);  
    exchange.setOutMessage(m);  
    exchange.put(Bus.class, cfg.getBus());  
    exchange.put(MessageObserver.class, new ClientMessageObserver(cfg));  
    exchange.put(Endpoint.class, cfg.getConduitSelector().getEndpoint());  
    exchange.put("org.apache.cxf.transport.no_io_exceptions", true);  
    //REVISIT - when response handling is actually put onto the in chain, this will likely not be needed  
    exchange.put(StaxInEndingInterceptor.STAX_IN_NOCLOSE, Boolean.TRUE);  
    m.setExchange(exchange);  
    return exchange;  
}  
   

 
Example 42  
Project: ddf-spatial   File: EndpointOperationInfoResourceComparator.java View source code  Vote up 5 votes  
@Override  
public int compare(OperationResourceInfo oper1, OperationResourceInfo oper2, Message message) {  
    if (null == oper1 || null == oper2 || null == message) {  
        LOGGER.warn("Found NULL parameters in the compare method.");  
        return 0;  
    }  
    String httpMethod = (String) message.get(Message.HTTP_REQUEST_METHOD);  
    LOGGER.debug("HTTP METHOD = {}", httpMethod);  
  
    String requestName = null;  
    String requestedService = null;  
  
    if (HTTP_GET.equalsIgnoreCase(httpMethod)) {  
        String queryString = (String) message.get(Message.QUERY_STRING);  
        if (StringUtils.isNotEmpty(queryString)) {  
  
            MultivaluedMap<String, String> allQueryParams = JAXRSUtils  
                    .getStructuredParams(queryString, QUERY_PARAM_DELIMITER, false, false);  
            // Loop through the keys and do a case insensitive check  
            for (Entry<String, List<String>> queryParam : allQueryParams.entrySet()) {  
                if ((REQUEST_PARAM.equalsIgnoreCase(queryParam.getKey())) && (!queryParam  
                        .getValue().isEmpty()) && requestName == null) {  
                    // We should never have more than one "request" query  
                    // param so ignore them if we do  
                    requestName = queryParam.getValue().get(0);  
                    LOGGER.debug("Request Query Param = {}", requestName);  
                }  
                if ((SERVICE_PARAM.equalsIgnoreCase(queryParam.getKey())) && (!queryParam  
                        .getValue().isEmpty()) && requestedService == null) {  
                    // We should never have more than one "service" query  
                    // param so ignore them if we do  
                    requestedService = queryParam.getValue().get(0);  
                    LOGGER.debug("Service Query Param = {}", requestedService);  
                }  
            }  
        }  
    } else if (HTTP_POST.equalsIgnoreCase(httpMethod)) {  
        // Get the payload  
        try (InputStream is = message.getContent(InputStream.class)) {  
            if (is != null) {  
  
                CachedOutputStream bos = new CachedOutputStream();  
                // We need to make a copy and put it back for later  
                // processing  
                IOUtils.copy(is, bos);  
                bos.flush();  
                is.close();  
                message.setContent(InputStream.class, bos.getInputStream());  
                XMLSource xml = new XMLSource(bos.getInputStream());  
                xml.setBuffering();  
                // The request name will be the root node name  
  
                requestName = xml.getValue("local-name(/*)");  
                requestedService = xml.getValue("/*/@service");  
  
                LOGGER.debug("ROOT NODE = {}", requestName);  
                LOGGER.debug("Service Name = {}", requestedService);  
                bos.close();  
            }  
        } catch (IOException ioe) {  
            LOGGER.warn("Unable to read message contents", ioe);  
        }  
  
    } else {  
        LOGGER.warn("Got unknown HTTP Method {}", httpMethod);  
        return 0;  
    }  
  
    if (StringUtils.isEmpty(requestName)) {  
        LOGGER.warn("Unable to determine the request name");  
        return 0;  
    }  
  
    int op1Rank = getOperationRank(oper1, requestName, requestedService);  
    int op2Rank = getOperationRank(oper2, requestName, requestedService);  
  
    return (op1Rank == op2Rank) ? 0 : (op1Rank < op2Rank) ? 1 : -1;  
}  
   

 
Example 43  
Project: ddf-catalog   File: EndpointOperationInfoResourceComparator.java View source code  Vote up 5 votes  
@Override  
public int compare(OperationResourceInfo oper1, OperationResourceInfo oper2, Message message) {  
    if (null == oper1 || null == oper2 || null == message) {  
        LOGGER.warn("Found NULL parameters in the compare method.");  
        return 0;  
    }  
    String httpMethod = (String) message.get(Message.HTTP_REQUEST_METHOD);  
    LOGGER.debug("HTTP METHOD = {}", httpMethod);  
  
    String requestName = null;  
    String requestedService = null;  
  
    if (HTTP_GET.equalsIgnoreCase(httpMethod)) {  
        String queryString = (String) message.get(Message.QUERY_STRING);  
        if (StringUtils.isNotEmpty(queryString)) {  
  
            MultivaluedMap<String, String> allQueryParams = JAXRSUtils  
                    .getStructuredParams(queryString, QUERY_PARAM_DELIMITER, false, false);  
            // Loop through the keys and do a case insensitive check  
            for (Entry<String, List<String>> queryParam : allQueryParams.entrySet()) {  
                if ((REQUEST_PARAM.equalsIgnoreCase(queryParam.getKey())) && (!queryParam  
                        .getValue().isEmpty()) && requestName == null) {  
                    // We should never have more than one "request" query  
                    // param so ignore them if we do  
                    requestName = queryParam.getValue().get(0);  
                    LOGGER.debug("Request Query Param = {}", requestName);  
                }  
                if ((SERVICE_PARAM.equalsIgnoreCase(queryParam.getKey())) && (!queryParam  
                        .getValue().isEmpty()) && requestedService == null) {  
                    // We should never have more than one "service" query  
                    // param so ignore them if we do  
                    requestedService = queryParam.getValue().get(0);  
                    LOGGER.debug("Service Query Param = {}", requestedService);  
                }  
            }  
        }  
    } else if (HTTP_POST.equalsIgnoreCase(httpMethod)) {  
        // Get the payload  
        try (InputStream is = message.getContent(InputStream.class)) {  
            if (is != null) {  
  
                CachedOutputStream bos = new CachedOutputStream();  
                // We need to make a copy and put it back for later  
                // processing  
                IOUtils.copy(is, bos);  
                bos.flush();  
                is.close();  
                message.setContent(InputStream.class, bos.getInputStream());  
                XMLSource xml = new XMLSource(bos.getInputStream());  
                xml.setBuffering();  
                // The request name will be the root node name  
  
                requestName = xml.getValue("local-name(/*)");  
                requestedService = xml.getValue("/*/@service");  
  
                LOGGER.debug("ROOT NODE = {}", requestName);  
                LOGGER.debug("Service Name = {}", requestedService);  
                bos.close();  
            }  
        } catch (IOException ioe) {  
            LOGGER.warn("Unable to read message contents", ioe);  
        }  
  
    } else {  
        LOGGER.warn("Got unknown HTTP Method {}", httpMethod);  
        return 0;  
    }  
  
    if (StringUtils.isEmpty(requestName)) {  
        LOGGER.warn("Unable to determine the request name");  
        return 0;  
    }  
  
    int op1Rank = getOperationRank(oper1, requestName, requestedService);  
    int op2Rank = getOperationRank(oper2, requestName, requestedService);  
  
    return (op1Rank == op2Rank) ? 0 : (op1Rank < op2Rank) ? 1 : -1;  
}


爱小板凳小编整理: 电影天堂

转载于:https://my.oschina.net/zhangmaoyuan/blog/1606301

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值