如何在一个Spring应用程序中的web.xml中注册多个servlet

我想在Spring web.xml中定义两个servlet-一个用于应用程序html / jsp页面,另一个用于将由外部应用程序调用的Web服务。这是web.xml:

<servlet>

<servlet-name>myservlet</servlet-name>

<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

<load-on-startup>1</load-on-startup>

</servlet>

<servlet-mapping>

<servlet-name>myservlet</servlet-name>

<url-pattern>*.htm</url-pattern>

</servlet-mapping>

<context-param>

<param-name>contextConfigLocation</param-name>

<param-value>WEB-INF/user-service-servlet.xml</param-value>

</context-param>

<servlet>

<servlet-name>user-webservice</servlet-name>

<servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>

<load-on-startup>1</load-on-startup>

</servlet>

<servlet-mapping>

<servlet-name>user-webservice</servlet-name>

<url-pattern>/UserService/*</url-pattern>

</servlet-mapping>

如果我让我的servlet单独在文件中使用DispatcherServlet,它就可以正常工作。如果我的用户Web服务的配置文件(user-service-servlet.xml)具有context-param,则工作正常。但是,如果文件中同时包含这两个文件,则myservlet无法正常工作,因为不会自动加载myservlet-servlet.xml文件。如果删除context-param,则myservlet可以工作,但是user-webservice不能工作,因为未加载其配置文件(user-service-servlet.xml)。

如何定义两个servlet和两个配置文件?

回答:

正如该线程在cxf-user邮件列表上所解释的user-webservice-servlet.xml,你不必将CXFServlet从中加载自己的spring上下文,而只需将全部加载到root上下文中即可。将现有user-webservice-servlet.xml名称重命名为其他名称(例如user-webservice-beans.xml),然后将contextConfigLocation参数更改为类似以下内容:

<servlet>

<servlet-name>myservlet</servlet-name>

<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

<load-on-startup>1</load-on-startup>

</servlet>

<servlet-mapping>

<servlet-name>myservlet</servlet-name>

<url-pattern>*.htm</url-pattern>

</servlet-mapping>

<context-param>

<param-name>contextConfigLocation</param-name>

<param-value>

/WEB-INF/applicationContext.xml

/WEB-INF/user-webservice-beans.xml

</param-value>

</context-param>

<servlet>

<servlet-name>user-webservice</servlet-name>

<servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>

<load-on-startup>2</load-on-startup>

</servlet>

<servlet-mapping>

<servlet-name>user-webservice</servlet-name>

<url-pattern>/UserService/*</url-pattern>

</servlet-mapping>

以上是 如何在一个Spring应用程序中的web.xml中注册多个servlet 的全部内容, 来源链接: utcz.com/qa/418107.html

回到顶部