1、应用场景:访问web应用A时,需要将一些的请求转发到web应用B,如A为前台应用,B为静态资源应用(主要为:html静态页面、图片、css、js等),A的访问路径为/shop,B的访问路径/shop/release,即所有访问A的shop/release请求都直接转发到B。
2、转发配置原理:
1)请求的url http://192.168.1.100:7001/test/realse/index.html
2)portal web.xml中配置/realse/* 转发,weblogic中配置访问根目录:/test
3)portal收到的地址是 /test/realse/index.html
4)portal减去weblogic.xml的<wls:context-root>/test</wls:context-root> 得到的结果是 /realse/index.html
5)匹配成功/realse/* 得到转发的内容是 /test/realse/index.html
6)后台收到以后也要减去weblogic.xml的<wls:context-root>/test/realse</wls:context-root>
7)得到后台的实际访问地址是/index.html
3、具体配置
1)应用A的配置
weblogic配置工程名:
<context-root>/test</context-root>
web.xml中配置转发:
<servlet>
<servlet-name>proxy_proxy</servlet-name>
<servlet-class>weblogic.servlet.proxy.HttpProxyServlet</servlet-class>
<init-param>
<param-name>WebLogicHost</param-name>
<param-value>192.168.1.101</param-value>
</init-param>
<init-param>
<param-name>WebLogicPort</param-name>
<param-value>7002</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>proxy_proxy</servlet-name>
<url-pattern>/release/*</url-pattern>
</servlet-mapping>
2)应用B的配置:
weblogic配置工程名:
<context-root>/test/release</context-root>
4、访问转发结果
假设A的访问路径:http://192.168.1.100:7001/;B的访问路径:http://192.168.1.101.7002/。
那么现在访问A的http://192.168.1.100:7001/test/realse/index.html,实际访问的是B的http//192.168.1.101.7002/test/realse/index.html(由于B的访问根路径为:/test/release,所以实际访问的B工程的web目录下的index.html文件)
2、转发配置原理:
1)请求的url http://192.168.1.100:7001/test/realse/index.html
2)portal web.xml中配置/realse/* 转发,weblogic中配置访问根目录:/test
3)portal收到的地址是 /test/realse/index.html
4)portal减去weblogic.xml的<wls:context-root>/test</wls:context-root> 得到的结果是 /realse/index.html
5)匹配成功/realse/* 得到转发的内容是 /test/realse/index.html
6)后台收到以后也要减去weblogic.xml的<wls:context-root>/test/realse</wls:context-root>
7)得到后台的实际访问地址是/index.html
3、具体配置
1)应用A的配置
weblogic配置工程名:
<context-root>/test</context-root>
web.xml中配置转发:
<servlet>
<servlet-name>proxy_proxy</servlet-name>
<servlet-class>weblogic.servlet.proxy.HttpProxyServlet</servlet-class>
<init-param>
<param-name>WebLogicHost</param-name>
<param-value>192.168.1.101</param-value>
</init-param>
<init-param>
<param-name>WebLogicPort</param-name>
<param-value>7002</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>proxy_proxy</servlet-name>
<url-pattern>/release/*</url-pattern>
</servlet-mapping>
2)应用B的配置:
weblogic配置工程名:
<context-root>/test/release</context-root>
4、访问转发结果
假设A的访问路径:http://192.168.1.100:7001/;B的访问路径:http://192.168.1.101.7002/。
那么现在访问A的http://192.168.1.100:7001/test/realse/index.html,实际访问的是B的http//192.168.1.101.7002/test/realse/index.html(由于B的访问根路径为:/test/release,所以实际访问的B工程的web目录下的index.html文件)