مشكلة مع إعادة توجيه Struts2 عند استخدام Bigip
سؤال
أنا أستخدم Struts2 (2.1.6) وأريد إعادة توجيه إلى Action2 من Action1.
struts.xml:
<action name="Action1" class="Action1">
<result name="success" type="redirectAction">Action2</result>
</action>
<action name="Action2" class="Action2">
<result name="success">/demo.jsp</result>
</action>
هذا يعمل كما هو متوقع: http://myserver:9064/demo/Action1
إعادة توجيه إلى http://myserver:9064/demo/Action2
(تم اختباره على Tomcat و WebSphere).
لكن عندما أضع تطبيقي خلف Bigip ، redirectAction
لم يعد يتصرف كما هو متوقع.
http://mybigip/demo/Action1
من المتوقع إعادة التوجيه إلى http://mybigip/demo/Action2
, ، بدلاً من ذلك يعيد التوجيه إلى http://mybigip:9064/demo/Action2
(لاحظ أن رقم منفذ التطبيق الخاص بي يتم إلحاقه) والذي يعطي خطأ 404. حصلت على نفس النتيجة ل type="redirect"
ايضا.
أي مؤشر لحل هذه القضية سيكون موضع تقدير كبير.
المحلول
لقد وجدت الحل لهذه المشكلة. في الواقع هذا لا يحدث فقط للدعامات. يحدث بشكل عام مع أي Response.sendRedirect
أو RequestDispatcher.forward
. أيضًا ، يتم ملاحظة هذا السلوك عند نشر التطبيق في WebSphere وليس عندما في Tomcat.
الروابط أدناه لديها المزيد من التفاصيل:
http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/index.jsp؟
(ابحث عن الخاصية المخصصة httpsIndicatorHeader
)
ايضا:
http://support.f5.com/kb/en-us/solutions/public/1000/800/sol1871.html