随笔 - 154  文章 - 60  trackbacks - 0
<2007年9月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456

声明:

该blog是为了收集资料,认识朋友,学习、提高技术,所以本blog的内容除非声明,否则一律为转载!!

感谢那些公开自己技术成果的高人们!!!

支持开源,尊重他人的劳动!!

常用链接

留言簿(3)

随笔分类(148)

随笔档案(143)

收藏夹(2)

其他

学习(技术)

观察思考(非技术)

搜索

  •  

最新评论

阅读排行榜

评论排行榜

在找东西时偶然看到的觉得很有趣就粘过来了,也许以后用得着!

删除了论坛中一些回复,或许应该改个名字叫:服务器之间的重定向!



最近在做一个单点登录的接口,基本实现如下:
1. webApp-A
        if (session.getAttribute("UserID") != null) {
          response.sendRedirect(ssoURL);
        }
2. webApp-B (在另外一台服务器上)
   显示登录界面,登录,然后返回我webApp-A的一URL
3. webApp-A 根据 返回URL中的result参数判断登录的结果,并设置session变量UserID

问题就出在了在重定向到ssoURL,并从webAPP-B返回后,weblogic的sessionid变了,所有的session 变量都没有了,刷新一次sessionid就变一次,同样的程序用tomcat一点问题都没有,不知道问题出在哪,该怎么解决

-------------------------------------------------------------------
webApp-A和webApp-B 分别跑在不同的服务器上
webApp-A 中会重定向到webApp-B的URL
webApp-B 中也会重定到webApp-A的URL
-----------------------------------------------------------------

测试代码如下:
a.jsp

<%@ page contentType="text/html; charset=GBK" %>
<html>
<head>
<title>
a
</title>
</head>
<body bgcolor="#ffffff">
<h1>
JBuilder Generated JSP
</h1>
<%
out.println("SessionID:"+session.getId());
        response.sendRedirect("http://localhost:8080/wtui/b.jsp");
%>
</body>
</html>


b.jsp

<%@ page contentType="text/html; charset=GBK" %>
<html>
<head>
<title>
b
</title>
</head>
<body bgcolor="#ffffff">
<h1>
JBuilder Generated JSP
</h1>
<%
out.println("SessionID:"+session.getId());
        response.sendRedirect("http://localhost:7001/wtui/c.jsp");
%>
</body>
</html>


c.jsp

<%@ page contentType="text/html; charset=GBK" %>
<html>
<head>
<title>
c
</title>
</head>
<body bgcolor="#ffffff">
<h1>
JBuilder Generated JSP
</h1>
<% out.println("SessionID:"+session.getId());
%>
        <A href="a.jsp"><br>返回</A>
</body>
</html>


把a.jsp,c.jsp 放到本机的7001端口,b.jsp 放到本机的8080端口,
(我的7001端口是weblogic 8.1 sp2,8080端口是tomcat 5.0),然后 http://localhost:7001/wtui/a.jsp
最后可以看到c.jsp显示出来的session id, 刷新一下页面,看看是不是每次session id 都在变?

---------------------------------------------------------------------------------------------------------------

今天下午总算是找到了问题的原因了
只要把a.jsp中的
response.sendRedirect("http://localhost:8080/wtui/b.jsp");
改为
response.sendRedirect("http://127.0.0.1:8080/wtui/b.jsp");

就一切正常了,原来做模拟环境的时候没有找两台机器,只是在同一机器开了两个端口。

不过我还是想知道为什么weblogic为出现这种问题

(完)
posted on 2007-09-27 11:17 lk 阅读(2677) 评论(1)  编辑  收藏 所属分类: j2ee

FeedBack:
# re: weblogic session问题 [未登录] 2008-10-27 21:35 leo
如果两台服务器是在相同的毓下,还会有这样的问题。  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航: