我有一个使用Tomcat7在生产中部署的java Web应用程序。
我在生产中使用===
页面,我在上下文路径" /"中部署我的WAR。在制作中,我没有在网址中看到Tomcat Web Application Manager
。
在我的开发环境中,同样的应用程序(因此相同的jsessionid
)从eclipse中的Tomcat7开始在URL中显示web.xml
。
我jsessionid
中唯一的会话配置是:
web.xml
我在Tomcat7中看到的唯一区别是<session-config>
<session-timeout>15</session-timeout>
</session-config>
:
生产:
server.xml
本地:
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log." suffix=".txt" pattern="%h %l %u %t "%r" %s %b" />
</Host>
另一个不同之处在于我在生产中使用NGinx从Tomcat执行从端口80到8080的代理传递。
我可能缺少什么?
谢谢
答案 0 :(得分:0)
您可以在开发环境中使用不支持(或禁用)Cookie的浏览器或其他客户端。
另一个提示:您可以在tomcat 7中使用此代码(在您的web.xml文件中):
<session-config>
<tracking-mode>COOKIE</tracking-mode>
</session-config>
答案 1 :(得分:0)
问题是,要使Cookie正常运行,域名必须至少包含两个点(https://curl.haxx.se/rfc/cookie_spec.html)。
因此,要使其在本地运行,我必须执行以下操作:
将/ etc / hosts文件更改为包含至少一个句点的任何域名,指向127.0.0.1:
127.0.0.1 localhost
127.0.0.1 localhost.test
255.255.255.255 broadcasthost
::1 localhost
更改context.xml以包括新域:
<Context sessionCookieDomain=".localhost.test" sessionCookiePath="/">
...
</Context>