Announcement Announcement Module
Collapse
No announcement yet.
URL Path Endmapping Page Title Module
Move Remove Collapse
X
Conversation Detail Module
Collapse
  • Filter
  • Time
  • Show
Clear All
new posts

  • URL Path Endmapping

    With UriEndpointMapping you have to map the whole url in case of http protocol is used. I wrote a small class which uses the url path instead of full uri. So that hostname and port is not important.

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

    Can you please add this to source code?

    Code:
    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;
        }
    }
Working...
X