Announcement Announcement Module
Collapse
No announcement yet.
No adapter for endpoint[..]. Does your endpoint implement ... Page Title Module
Move Remove Collapse
X
Conversation Detail Module
Collapse
  • Filter
  • Time
  • Show
Clear All
new posts

  • No adapter for endpoint[..]. Does your endpoint implement ...

    I am using SoapActionEndpointMapping, with GenericMarshallingMethodEndpointAdapter and Jaxb2Marshaller.

    My end point is

    Code:
    import javax.xml.bind.JAXBElement;
    
    import org.apache.log4j.Logger;
    import org.springframework.ws.server.endpoint.annotation.Endpoint;
    import org.springframework.ws.soap.addressing.server.annotation.Action;
    
    import com.mycompany.Order;
    import com.mycompany.CreateOrder;
    
    @Endpoint
    public class MyActionEndpoint {
    	protected static final Logger log = Logger.getLogger(MyActionEndpoint.class);
    	
    	protected OrderService orderService;
    
    	public MyActionEndpoint(OrderService orderService) {
    		this.orderService = orderService;
    	}
    
    	@Action("http://www.myweb.com/schema/getOrder")
        public JAXBElement<Order> createOrder(JAXBElement<CreateOrder> request) {
        	return orderService.createOrder(request.getValue());
        }
    
    }

    While debugging, I saw that the endpoint is not a MethodEndpoint in the AbstractMethodEndpointAdaptor.supports method.

    I made sure the method argument and the return type of the payload method are JAXBElements. Still I am getting this error. can someone advice on this ?

    Thanks in advance,
    Shameer

  • #2
    Hi

    First - your endpoint's method is annotated with @Action which means WS-Addressing. There is org.springframework.ws.soap.addressing.server.Anno tationActionEndpointMapping for that kind of annotations.

    Second - SoapActionEndpointMapping is map-based endpoint mapping - show your mapping (XML) - maybe there is the bug? Try intercept incoming SOAP messages to check whether there is proper SOAPAction HTTP header (which is examined by your SoapActionEndpointMapping).

    regards
    Grzegorz Grzybek

    Comment


    • #3
      The issue is solved by using SoapActionAnnotationMethodEndpointMapping instead of SoapActionEndpointMapping, with a slight change in the method signature as follows.

      @Action("http://www.myweb.com/schema/getOrder")
      public JAXBElement<Order> createOrder(CreateOrder request) {
      return orderService.createOrder(request.getValue());
      }
      The problem was that, there was not sample which uses this combination. Finally trial and error worked.

      Thanks for you reply, Grzybek.

      Comment


      • #4
        Hi

        The only strange thing left is why you're using @Action (WS-Addressing) and not @SoapAction (old school web services) annotation?

        regards
        Grzegorz Grzybek

        Comment

        Working...
        X