Details

    • Type: Improvement
    • Status: Resolved
    • Priority: Minor
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 2.1.1
    • Component/s: Core
    • Labels:
      None

      Description

      With UriEndpointMapping you have to map the whole url in case of http protocol is used. With following class, url path instead of full uri is used. So that hostname and port is not important.

      Mapping with UriEndpointMapping and URLPathEndpointMapping
      "http://theserver:9084/service/abc" -> "/service/abc"

      Please add a class like:

       
      package org.springframework.ws.server.endpoint.mapping;
       
      import org.springframework.ws.context.MessageContext;
      import org.springframework.ws.server.endpoint.mapping.AbstractMapBasedEndpointMapping;
      import org.springframework.ws.transport.WebServiceConnection;
      import org.springframework.ws.transport.context.TransportContext;
      import org.springframework.ws.transport.context.TransportContextHolder;
       
      import java.net.URI;
      import java.net.URISyntaxException;
      import java.net.URL;
      import java.util.Locale;
       
      /**
       *
       *@author Kaan Yamanyar
       */
      public class URLPathEndpointMapping extends AbstractMapBasedEndpointMapping {
       
          @Override
          protected boolean validateLookupKey(String key) {
              try {
                  new URI(key);
                  return true;
              } catch (URISyntaxException e) {
                  return false;
              }
          }
       
          @Override
          protected String getLookupKeyForMessage(MessageContext messageContext) throws Exception {
              TransportContext transportContext = TransportContextHolder.getTransportContext();
              if (transportContext != null) {
                  WebServiceConnection connection = transportContext.getConnection();
                  if (connection != null) {
                      String connectionUri = connection.getUri().toString();
                      URL connectionURL = new URL(connectionUri);
                      String path = connectionURL.getPath().toLowerCase(Locale.ENGLISH);
                      logger.debug("Required endpoint: "+path);
                      return path;
                  }
              }
              return null;
          }
      }

        Activity

        Transition Time In Source Status Execution Times Last Executer Last Execution Date
        Open Open In Progress In Progress
        10d 18h 25m 1 Arjen Poutsma 10/Jul/12 2:27 AM
        In Progress In Progress Resolved Resolved
        12m 12s 1 Arjen Poutsma 10/Jul/12 2:39 AM

          People

          • Assignee:
            arjen.poutsma Arjen Poutsma
            Reporter:
            yamanyar Kaan Yamanyar
          • Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Time Tracking

              Estimated:
              Original Estimate - Not Specified
              Not Specified
              Remaining:
              Remaining Estimate - Not Specified
              Not Specified
              Logged:
              Time Spent - 11m
              11m