设置Spring Web Service时找不到端点映射 [英] No endpoint mapping found when setting up Spring Web Service

查看:147
本文介绍了设置Spring Web Service时找不到端点映射的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我是设置Spring Web应用程序的初学者.我已经走了这么远,但是现在我发现自己陷入困境了.

我收到以下错误:

WARNING: No endpoint mapping found for [SaajSoapMessage {http://mycompany.com/weather/schemas}GetCities]

主要问题是我已经用尽了寻找调试信息的想法.我修复了许多错误,但现在我什至无法在日志中找到错误.所以我有点绝望了.

这是我的web.xml

<web-app>
    <display-name>Weather report webservice</display-name>

    <servlet>
        <servlet-name>spring-ws</servlet-name>
        <servlet-class>org.springframework.ws.transport.http.MessageDispatcherServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>/WEB-INF/spring-ws-servlet.xml</param-value>
        </init-param>
        <init-param>
            <param-name>transformWsdlLocations</param-name>
            <param-value>true</param-value>
        </init-param>
    </servlet>

    <servlet-mapping>
        <servlet-name>spring-ws</servlet-name>
        <url-pattern>/weatherws</url-pattern>
    </servlet-mapping>
</web-app>

这就是我的spring-ws-servlet.xml

<beans xmlns="http://www.springframework.org/schema/beans"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xmlns:context="http://www.springframework.org/schema/context"
   xmlns:sws="http://www.springframework.org/schema/web-services"
   xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
    http://www.springframework.org/schema/web-services http://www.springframework.org/schema/web-services/web-services-2.0.xsd
    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd">

    <context:component-scan base-package="path.to.weather"/>

    <sws:annotation-driven/>

</beans>

这是我的端点的样子:

@Endpoint
public class WeatherEndpoint {

    private static final String NAMESPACE_URI = "http://mycompany.com/weather/schema";

    private WeatherReportManager manager;

    @Autowired
    public WeatherEndpoint(WeatherReportManager manager) throws JDOMException {
        this.manager = manager;
    }

    @PayloadRoot(namespace = NAMESPACE_URI, localPart = "GetCities")
    @ResponsePayload
    public Element getCities() {
        Element toReturn = null;

        for(City city : manager.getCities()) {
            //To some stuff
        }

        return toReturn;
    }
}

这是我现在看到的catalina.log.我试图通过编辑logging.properties使Tomcat输出DEBUG消息.这并没有产生任何其他效果.

INFO: Deploying web application archive weather.war
Feb 15, 2012 3:28:51 PM org.springframework.web.servlet.FrameworkServlet initServletBean
INFO: FrameworkServlet 'spring-ws': initialization started
Feb 15, 2012 3:28:51 PM org.springframework.context.support.AbstractApplicationContext prepareRefresh
INFO: Refreshing WebApplicationContext for namespace 'spring-ws-servlet': startup date [Wed Feb 15 15:28:51 EET 2012]; root of context hierarchy
Feb 15, 2012 3:28:52 PM org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
INFO: Loading XML bean definitions from ServletContext resource [/WEB-INF/spring-ws-servlet.xml]
Feb 15, 2012 3:28:52 PM org.springframework.ws.soap.addressing.server.AbstractAddressingEndpointMapping afterPropertiesSet
INFO: Supporting [WS-Addressing August 2004, WS-Addressing 1.0]
Feb 15, 2012 3:28:52 PM org.springframework.beans.factory.support.DefaultListableBeanFactory preInstantiateSingletons
INFO: Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@36496381: defining beans [weatherEndpoint,weatherReportManagerWWW,org.springframework.context.annotation.internalConfigurationAnnotationProcessor,org.springframework.context.annotation.internalAutowiredAnnotationProcessor,org.springframework.context.annotation.internalRequiredAnnotationProcessor,org.springframework.context.annotation.internalCommonAnnotationProcessor,org.springframework.ws.server.endpoint.mapping.PayloadRootAnnotationMethodEndpointMapping#0,org.springframework.ws.soap.server.endpoint.mapping.SoapActionAnnotationMethodEndpointMapping#0,org.springframework.ws.soap.addressing.server.AnnotationActionEndpointMapping#0,org.springframework.ws.server.endpoint.adapter.method.dom.DomPayloadMethodProcessor#0,org.springframework.ws.server.endpoint.adapter.method.SourcePayloadMethodProcessor#0,org.springframework.ws.server.endpoint.adapter.method.jaxb.XmlRootElementPayloadMethodProcessor#0,org.springframework.ws.server.endpoint.adapter.method.jaxb.JaxbElementPayloadMethodProcessor#0,org.springframework.ws.server.endpoint.adapter.method.dom.JDomPayloadMethodProcessor#0,org.springframework.ws.server.endpoint.adapter.DefaultMethodEndpointAdapter#0,org.springframework.context.annotation.ConfigurationClassPostProcessor$ImportAwareBeanPostProcessor#0]; root of factory hierarchy
Feb 15, 2012 3:28:52 PM org.springframework.ws.soap.saaj.SaajSoapMessageFactory afterPropertiesSet
INFO: Creating SAAJ 1.3 MessageFactory with SOAP 1.1 Protocol
Feb 15, 2012 3:28:52 PM org.springframework.web.servlet.FrameworkServlet initServletBean
INFO: FrameworkServlet 'spring-ws': initialization completed in 714 ms
Feb 15, 2012 3:28:52 PM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory docs
Feb 15, 2012 3:28:52 PM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory examples
Feb 15, 2012 3:28:53 PM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory host-manager
Feb 15, 2012 3:28:53 PM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory lib
Feb 15, 2012 3:28:53 PM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory manager
Feb 15, 2012 3:28:53 PM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory ROOT
Feb 15, 2012 3:28:53 PM org.apache.coyote.http11.Http11Protocol start
INFO: Starting Coyote HTTP/1.1 on http-8080
Feb 15, 2012 3:28:53 PM org.apache.coyote.ajp.AjpProtocol start
INFO: Starting Coyote AJP/1.3 on ajp-8009
Feb 15, 2012 3:28:53 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 8777 ms
Feb 15, 2012 3:29:07 PM org.springframework.ws.server.MessageDispatcher dispatch
WARNING: No endpoint mapping found for [SaajSoapMessage {http://mycompany.com/weather/schemas}GetCities]

我将非常感谢您的协助.如果您需要其他任何内容,请告诉我.

解决方案

在端点代码中,您具有:

private static final String NAMESPACE_URI = "http://mycompany.com/weather/schema";

,但是您的消息来自http://mycompany.com/weather/schemas命名空间.请注意最后的 s .

I'm a beginner at setting up spring web-applications. I got this far but now I find myself stuck.

I get the following error:

WARNING: No endpoint mapping found for [SaajSoapMessage {http://mycompany.com/weather/schemas}GetCities]

The main problem is that I have run out of ideas where to look for debug information. I fixed as many errors that I've seen, but now I can't even find something wrong in the logs. So I'm getting bit desperate.

This my web.xml

<web-app>
    <display-name>Weather report webservice</display-name>

    <servlet>
        <servlet-name>spring-ws</servlet-name>
        <servlet-class>org.springframework.ws.transport.http.MessageDispatcherServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>/WEB-INF/spring-ws-servlet.xml</param-value>
        </init-param>
        <init-param>
            <param-name>transformWsdlLocations</param-name>
            <param-value>true</param-value>
        </init-param>
    </servlet>

    <servlet-mapping>
        <servlet-name>spring-ws</servlet-name>
        <url-pattern>/weatherws</url-pattern>
    </servlet-mapping>
</web-app>

This is what my spring-ws-servlet.xml

<beans xmlns="http://www.springframework.org/schema/beans"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xmlns:context="http://www.springframework.org/schema/context"
   xmlns:sws="http://www.springframework.org/schema/web-services"
   xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
    http://www.springframework.org/schema/web-services http://www.springframework.org/schema/web-services/web-services-2.0.xsd
    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd">

    <context:component-scan base-package="path.to.weather"/>

    <sws:annotation-driven/>

</beans>

This is what my endpoint looks like:

@Endpoint
public class WeatherEndpoint {

    private static final String NAMESPACE_URI = "http://mycompany.com/weather/schema";

    private WeatherReportManager manager;

    @Autowired
    public WeatherEndpoint(WeatherReportManager manager) throws JDOMException {
        this.manager = manager;
    }

    @PayloadRoot(namespace = NAMESPACE_URI, localPart = "GetCities")
    @ResponsePayload
    public Element getCities() {
        Element toReturn = null;

        for(City city : manager.getCities()) {
            //To some stuff
        }

        return toReturn;
    }
}

This is the catalina.log as I see it right now. I tried to get Tomcat to output DEBUG messages by editing the logging.properties. This did not give any additional effect.

INFO: Deploying web application archive weather.war
Feb 15, 2012 3:28:51 PM org.springframework.web.servlet.FrameworkServlet initServletBean
INFO: FrameworkServlet 'spring-ws': initialization started
Feb 15, 2012 3:28:51 PM org.springframework.context.support.AbstractApplicationContext prepareRefresh
INFO: Refreshing WebApplicationContext for namespace 'spring-ws-servlet': startup date [Wed Feb 15 15:28:51 EET 2012]; root of context hierarchy
Feb 15, 2012 3:28:52 PM org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
INFO: Loading XML bean definitions from ServletContext resource [/WEB-INF/spring-ws-servlet.xml]
Feb 15, 2012 3:28:52 PM org.springframework.ws.soap.addressing.server.AbstractAddressingEndpointMapping afterPropertiesSet
INFO: Supporting [WS-Addressing August 2004, WS-Addressing 1.0]
Feb 15, 2012 3:28:52 PM org.springframework.beans.factory.support.DefaultListableBeanFactory preInstantiateSingletons
INFO: Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@36496381: defining beans [weatherEndpoint,weatherReportManagerWWW,org.springframework.context.annotation.internalConfigurationAnnotationProcessor,org.springframework.context.annotation.internalAutowiredAnnotationProcessor,org.springframework.context.annotation.internalRequiredAnnotationProcessor,org.springframework.context.annotation.internalCommonAnnotationProcessor,org.springframework.ws.server.endpoint.mapping.PayloadRootAnnotationMethodEndpointMapping#0,org.springframework.ws.soap.server.endpoint.mapping.SoapActionAnnotationMethodEndpointMapping#0,org.springframework.ws.soap.addressing.server.AnnotationActionEndpointMapping#0,org.springframework.ws.server.endpoint.adapter.method.dom.DomPayloadMethodProcessor#0,org.springframework.ws.server.endpoint.adapter.method.SourcePayloadMethodProcessor#0,org.springframework.ws.server.endpoint.adapter.method.jaxb.XmlRootElementPayloadMethodProcessor#0,org.springframework.ws.server.endpoint.adapter.method.jaxb.JaxbElementPayloadMethodProcessor#0,org.springframework.ws.server.endpoint.adapter.method.dom.JDomPayloadMethodProcessor#0,org.springframework.ws.server.endpoint.adapter.DefaultMethodEndpointAdapter#0,org.springframework.context.annotation.ConfigurationClassPostProcessor$ImportAwareBeanPostProcessor#0]; root of factory hierarchy
Feb 15, 2012 3:28:52 PM org.springframework.ws.soap.saaj.SaajSoapMessageFactory afterPropertiesSet
INFO: Creating SAAJ 1.3 MessageFactory with SOAP 1.1 Protocol
Feb 15, 2012 3:28:52 PM org.springframework.web.servlet.FrameworkServlet initServletBean
INFO: FrameworkServlet 'spring-ws': initialization completed in 714 ms
Feb 15, 2012 3:28:52 PM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory docs
Feb 15, 2012 3:28:52 PM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory examples
Feb 15, 2012 3:28:53 PM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory host-manager
Feb 15, 2012 3:28:53 PM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory lib
Feb 15, 2012 3:28:53 PM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory manager
Feb 15, 2012 3:28:53 PM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory ROOT
Feb 15, 2012 3:28:53 PM org.apache.coyote.http11.Http11Protocol start
INFO: Starting Coyote HTTP/1.1 on http-8080
Feb 15, 2012 3:28:53 PM org.apache.coyote.ajp.AjpProtocol start
INFO: Starting Coyote AJP/1.3 on ajp-8009
Feb 15, 2012 3:28:53 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 8777 ms
Feb 15, 2012 3:29:07 PM org.springframework.ws.server.MessageDispatcher dispatch
WARNING: No endpoint mapping found for [SaajSoapMessage {http://mycompany.com/weather/schemas}GetCities]

I would be very grateful for any assistance. If you need to see anything additional, just let me know.

解决方案

In your endpoint code you have :

private static final String NAMESPACE_URI = "http://mycompany.com/weather/schema";

but your message is from http://mycompany.com/weather/schemas namespace. Note the final s.

这篇关于设置Spring Web Service时找不到端点映射的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆