关于本地servlet和线上servlet请求返回结果不一样的问题

    xiaoxiao2021-04-18  55

    问题描述:在平台项目(deskchart)中进行缓存管理,就是可以在管理平台中手动清理主项目多个服务器上的子项目(deskswitch,desktheme,deskad,desktop,deskweather)的缓存,子项目为了提高系统性能,使用guava cache开辟了一块内存空间,现在deskchart上配置子项目用到的资源信息,需要在桌面项目上立即生效,这时就需要在平台中调用(http://ip:port/projectname/opt?cmd=flushcache)手动清理缓存,几个子项目结构一样,都是两个servlet,DesktopServlet主程序,OperatServlet清缓存,服务器上server.xml也差不多一样。其他子项目缓存都可以正常清理,唯独deskswitch,返回结果{‘a’:0},是主程序的结果,正常应该是返回success!或者Bad command!。 web.xml配置文件

    <!--请缓存等操作--> <servlet> <servlet-name>desktop_opt</servlet-name> <servlet-class>qn.web.service.desktop.servlet.OperatServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>desktop_opt</servlet-name> <url-pattern>/opt</url-pattern> </servlet-mapping> <!--主程序--> <servlet> <servlet-name>desktop_api</servlet-name> <servlet-class>qn.web.service.desktop.servlet.DesktopServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>desktop_api</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping>

    tomcat server.xml配置

    <Host name="localhost" appBase="" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"> <Context docBase="/app/seweb/webapps_9100_deskswitch/deskswitch" path="/" reloadable="true" > </Context> <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs/access" fileDateFormat="yyyy-MM-dd" prefix="access_log." suffix=".txt" pattern="%t "%{X-Up-Calling-Line-ID}i" "%m" "%U" "%q" "%{User-Agent}i" %s "%{X-Forwarded-For}i" "%{referer}i" %D %b "%{Via}i" %h "%{iX-Source-ID}i" "%{x-wap-profile}i" "%{x-apn-id}i" "%{X-Forwarded-For-Pound}i"" resolveHosts="false"/> </Host> #参数解释 unpackWARs="true" appBase="" docBase="/app/seweb/webapps_9100_deskswitch/deskswitch" path="/" #war包自动解压到docBase目录下,项目上下文为 /

    最后把请求地址换成http://ip:port/opt?cmd=flushcache就可以正常清理缓存了。 残留疑问:其他子项目配置完全一样,为什么加projectname可以正常访问呢?

    转载请注明原文地址: https://ju.6miu.com/read-674663.html

    最新回复(0)