All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.springframework.ws.server.endpoint.adapter.PayloadMethodEndpointAdapter Maven / Gradle / Ivy

There is a newer version: 4.0.10
Show newest version
/*
 * Copyright 2005-2010 the original author or authors.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package org.springframework.ws.server.endpoint.adapter;

import java.lang.reflect.Method;
import javax.xml.transform.Source;

import org.springframework.ws.WebServiceMessage;
import org.springframework.ws.context.MessageContext;
import org.springframework.ws.server.MessageDispatcher;
import org.springframework.ws.server.endpoint.MethodEndpoint;
import org.springframework.ws.soap.server.SoapMessageDispatcher;

/**
 * Adapter that supports endpoint methods that use marshalling. Supports methods with the following signature:
 * 
 * void handleMyMessage(Source request);
 * 
* or *
 * Source handleMyMessage(Source request);
 * 
* I.e. methods that take a single {@link Source} parameter, and return either {@code void} or a {@link Source}. * The method can have any name, as long as it is mapped by an {@link org.springframework.ws.server.EndpointMapping}. * *

This adapter is registered by default by the {@link MessageDispatcher} and {@link SoapMessageDispatcher}. * * @author Arjen Poutsma * @since 1.0.0 * @deprecated as of Spring Web Services 2.0, in favor of {@link DefaultMethodEndpointAdapter} and {@link * org.springframework.ws.server.endpoint.adapter.method.SourcePayloadMethodProcessor * SourcePayloadMethodProcessor}. */ @Deprecated public class PayloadMethodEndpointAdapter extends AbstractMethodEndpointAdapter { @Override protected boolean supportsInternal(MethodEndpoint methodEndpoint) { Method method = methodEndpoint.getMethod(); return (Void.TYPE.isAssignableFrom(method.getReturnType()) || Source.class.isAssignableFrom(method.getReturnType())) && method.getParameterTypes().length == 1 && Source.class.isAssignableFrom(method.getParameterTypes()[0]); } @Override protected void invokeInternal(MessageContext messageContext, MethodEndpoint methodEndpoint) throws Exception { Source requestSource = messageContext.getRequest().getPayloadSource(); Object result = methodEndpoint.invoke(requestSource); if (result != null) { Source responseSource = (Source) result; WebServiceMessage response = messageContext.getResponse(); transform(responseSource, response.getPayloadResult()); } } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy