繁体   English   中英

指向相同软件包和Web服务的两个Servlet

[英]two servlets which point on the same package and webservice

任何人都可以告诉我我在做什么吗?

我有一个带有内部声明的servlet的web.xml文件,我想创建另一个访问[到达]同一webservice的servlet。

它不起作用,我不知道我在想什么,请您能帮忙吗? 这是我的servlet和代码:

<!-- old servlet-->

<servlet>
    <servlet-name>api</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/spring-config/api-r-servlet.xml</param-value>
    </init-param>
    <load-on-startup>3</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>api</servlet-name>
    <url-pattern>/sitesApi/*</url-pattern>
</servlet-mapping>

<!-- my secod servmet V2  -->
<servlet>
    <servlet-name>webservice</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/spring-config/api-web-servlet.xml</param-value>
    </init-param>
    <load-on-startup>3</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>webservice</servlet-name>
    <url-pattern>/api/*</url-pattern>
</servlet-mapping>

因此,对于我的其他XML文件api-web-servlet来说,它是完全相同的:

<?xml version="1.0" encoding="UTF-8"?>
<beans   xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:mvc="http://www.springframework.org/schema/mvc"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
    http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
    http://www.springframework.org/schema/context
    http://www.springframework.org/schema/context/spring-context.xsd
    http://www.springframework.org/schema/mvc
    http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd"
    > 
<context:annotation-config/>
<context:component-scan base-package="com.me.project.rest.api" />
<mvc:annotation-driven />      
</beans>

对于我的URL测试,我使用: http:// localhost:8080 / sitesApi / v1 / mysite?id = 1&fields = site.name ,它可以正常工作,但是当我尝试使用其他servlet时,它却没有: http:// localhost:8080 / api / v1 / mysite?id = 1&fields = site.name

*******版本*****

    @RequestMapping(value = "/v1/mySite", method = RequestMethod.GET)
public @ResponseBody
Object  SitesV1( @RequestParam(value = "ajouterstatus", required = false) Integer ajouterstatus,
        @RequestParam(value = "monadresse", required = false) String monadresseHttpServletRequest request, HttpServletResponse responseHttp{ 

 try {
        appname = request.getHeaders( "Name" ).nextElement().toString();
    } catch ( Exception e ) {
        return new Result( "", ": AppName is Empty" );
    }

所以与另一种方法完全一样

@RequestMapping(value = "/v2/mySite", method = RequestMethod.GET)
public @ResponseBody
Object  SitesV2( @RequestParam(value = "ajouterstatus", required = false) Integer ajouterstatus,
        @RequestParam(value = "monadresse", required = false) String monadresseHttpServletRequest request, HttpServletResponse responseHttp{ 

 try {
        appname = request.getHeaders( "Name" ).nextElement().toString();
    } catch ( Exception e ) {
        return new Result( "", ": AppName is Empty" );
    }

任何想法 ?? 谢谢

您可以根据需要使用任意数量的Dispatcher Servlet,但是每个服务器都需要使用自己的xml文件进行配置。

因此,对于名为“ api”的servlet,必须将配置文件放置在名为“ api-servlet.xml ”的位置。

现在,您需要具有“ webservice-servlet.xml ”才能使“ webservice”调度程序servlet起作用。

您可以参考以下答案:

如果我们有多个XML配置文件,DispatcherServlet将如何工作?

多个应用程序上下文,多个调度程序servlet?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM