Apache+tomcat迁移到apache+Weblogic整合之动静分离问题?困惑两天了~

问题描述

先看看我的WEB应用是用Spring MVC 3.0.4做的,在Apache(mod_jk)+tomcat的时候完全没有问题。 1. web.xml配置,注意url-pattern,是处理所有的请求,这是一个网站的根应用项目。<servlet-name>cts-web</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/spring/webmvc-config.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>cts-web</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping>2. 上面为什么spring要拦截所有请求呢,是因为在处理URL路径时更方便,URL更友好,这就是spring MVC好用的地方,不需要专门的url rewrite//处理首页 @RequestMapping(value = "/", method = {RequestMethod.GET, RequestMethod.POST})public ModelAndView index(HttpServletResponse resp, HttpServletRequest req) throws Exception {// TODO: somethingModelAndView result = new ModelAndView("index");return result;} //处理learn首页@RequestMapping(value = "/learn", method = { RequestMethod.GET })//处理一级分类@RequestMapping(value = "/learn/{sectionName}", method = { RequestMethod.GET })public ModelAndView sectionIndex(@PathVariable String sectionName)//处理二级分类@RequestMapping(value = "/learn/{sectionName}/{categoryName}/{currPage}", method = { RequestMethod.GET })public ModelAndView categoryIndex(@PathVariable String sectionName,@PathVariable String categoryName,@PathVariable Integer currPage)3.  spring-mvc.xml配置,开发的时候静态内容不经过Spring MVC处理,直接交给容器 <!--静态内容不经过Spring MVC处理,直接交给容器 --><mvc:resources location="/images/" mapping="/images/**"/><mvc:resources location="/styles/" mapping="/styles/**"/><mvc:resources location="/scripts/" mapping="/scripts/**"/>4. httpd.conf配置,在cts-web目录中放入静态内容JkAutoAlias "D:apache-wwwcts-web"JkMount /* ctsJkUnMount /images/* ctsJkUnMount /styles/* ctsJkUnMount /scripts/* cts至此,apache+tomcat整合动静分离完全没有问题,run了好几个月。----------------------------------------------------------------------------- 现在换成weblogic做应用服务器了,和apache整合就出问题了。用的是weblogic的plug in来整合,如果不做静态文件分离,下面的配置完全能够跑起来了,没有任何问题。LoadModule weblogic_module modules/mod_wl_22.so<IfModule mod_weblogic.c> WebLogicHost localhost WebLogicPort 7001 MatchExpression *</IfModule>现在问题出来了,我如何才能把静态文件分离出来呢?1. mod_weblogic只有MatchExpression,他是正向匹配的,不像JkUnMount可以反向排除?2. 我的应用中动态处理的url有些有后缀名,有些没有(上面有详细描述),干脆直接就是个目录,比如 http://www.sample.com/jobs,导致没法用MatchExpression来匹配?3. 在不修改我的程序的基础上有没有办法做到:apache+weblogic整合,并且做到静态文件分离由apache处理呢?  问题补充:<div class="quote_title">william_ai 写道</div><div class="quote_div">httpd.conf中可以这样写:<br /><pre name="code" class="java">LoadModule weblogic_module modules/mod_wl_22.so &lt;IfModule mod_weblogic.c&gt; WebLogicHost localhost WebLogicPort 7001 MatchExpression *.do MatchExpression *.jsp &lt;/IfModule&gt;</pre><br /><br />DocumentRoot 再改一下。</div><br /><br />在我的应用的url中,没有*.do也没有*.jsp,动态处理的url有些有后缀名,有些没有(上面有详细描述),有些干脆直接就是个目录,比如 http://www.sample.com/jobs,导致没法用MatchExpression来匹配

解决方案

<IfModule mod_weblogic.c> WebLogicHost localhost WebLogicPort 7001 MatchExpression *.do MatchExpression *.jsp MatchExpression /jobs* </IfModule>
解决方案二:
httpd.conf中可以这样写:LoadModule weblogic_module modules/mod_wl_22.so <IfModule mod_weblogic.c> WebLogicHost localhost WebLogicPort 7001 MatchExpression *.do MatchExpression *.jsp </IfModule>DocumentRoot 再改一下。

时间: 2024-11-08 23:31:22

Apache+tomcat迁移到apache+Weblogic整合之动静分离问题?困惑两天了~的相关文章

从Apache Tomcat迁移到WebSphere Application Server Liberty Profile

简介 Apache Tomcat 是一个 HTTP 服务器和 servlet 容器,常用于简单的 Web 应用程序,以及使用不需要完整的 Java EE 服务器的框架的应用程序.然而,用户经常会发现,当对 Apache Tomcat 有更多需求时,其最初的简单性就会变得复杂且不实用. 例如,也许 Apache Tomcat 安装的占用空间会变得太大,因为您需要添加第三方库来提供所需的功能.或者,服务器的启动时间也可能是一个问题,因为对 server.xml 文件的任何配置更改都需要重新启动 Ap

从Apache Tomcat迁移到IBM WebSphere Application Server的说明

Apache Tomcat 是一个 HTTP 服务器和 servlet 容器,常用于简单的 Web 应用程序,以及使用不需要完整的 Java EE 服务器的框架的应用程序.然而,用户经常会发现,当对 Apache Tomcat 有更多需求时,其最初的简单性就会变得复杂且不实用. 例如,也许 Apache Tomcat 安装的占用空间会变得太大,因为您需要添加第三方库来提供所需的功能.或者,服务器的启动时间也可能是一个问题,因为对 server.xml 文件的任何配置更改都需要重新启动 Apach

apache tomcat 集群-apache 反向代理遇到的问题

问题描述 apache 反向代理遇到的问题 用apache做tomcat集群,tomcat发布的webservice服务 当tomcat有一个当掉的时候,客户端就不能再调用webservice服务 报错如下:error您的主机中的软件放弃了一个已建立的连接. : ajp_ilink_send(): send failederror您的主机中的软件放弃了一个已建立的连接. : proxy: send failed to 174.16.40.252:8009 (174.16.40.252) 部署环境

Windows下Apache+Tomcat+MySQL+jsp+php的服务器整合配置经验总结

apache|js|mysql|window|服务器 Windows下Apache+Tomcat+MySQL+jsp+php的服务器整合配置经验总结 1.作者:moonsbird 题目:Windows下Apache+Tomcat+MySQL+jsp+php的服务器整合配置经验总结 时间:2004.8.19 最初发表于西南交通大学锦城驿站 2.本文是作者学习几年来学习jsp/配置服务器环境的经验总结.可以转载,但请注明出处. 开始学习jsp很久了,网上有许多关于jsp整合的例子,但存在着许多问题.

优化apache/tomcat配置

apache|优化 近日不得不越那个代疱地钻研发布和发布系统管理和测试的相关问题.有充分证据表明现得绝大多数的apache/tomcat配置中,apache根本就是摆设,所有的响应负担,包括静态多媒体文件实际上是由tomcat完成,而tomcat实际上是效率相当低的,大约是apache的十分之一.因此,没有达到集成两者的目的:但在优化配置本地基本成功,打算在网上测试服务器实际试行时,却碰到了"martix现象":无可解释的不可重复的异常表现.看来,在tomcat/apache的配合上要

在CentOS中给Apache Tomcat绑定IPv4地址的教程

  今天我们来学习一下如何在CentOS 7 Linux分布式系统中为Tomcat绑定IPv4. Apache Tomcat 是由Apache 软件基金会 开发的开源web服务器和servlet容器.它实现了Java Servlet,JavaServer页面(JSP),Java的统一表达式语言,以及Sun Microsystems的Java的WebSocket规范,并提供了一个运行java代码的web服务器环境. 如果由于tomcat默认绑定到IPv6而导致我们的web服务器不能正常工作,就有必

如何在 CentOS/RHEL 中为 Apache Tomcat 绑定 IPv4 地址

如何在 CentOS/RHEL 中为 Apache Tomcat 绑定 IPv4 地址 今天我们来学习一下如何在CentOS 7 Linux分布式系统中为Tomcat绑定IPv4. Apache Tomcat 是由Apache 软件基金会 开发的开源web服务器和servlet容器.它实现了Java Servlet,JavaServer页面(JSP),Java的统一表达式语言,以及Sun Microsystems的Java的WebSocket规范,并提供了一个运行java代码的web服务器环境.

Apache Tomcat爆出安全绕过漏洞CVE-2017-5664 789大部分版本受影响

Apache Tomcat由于设置错误,出现了 tomcat安全绕过漏洞 CVE-2017-5664,攻击者利用这个漏洞可以绕过某些安全性限制,执行未授权动作.这可能引发更多攻击.如下版本受到影响 Apache Tomcat 9.0.0.M1至 9.0.0.M20 Apache Tomcat 8.5.0 至 8.5.14 Apache Tomcat 8.0.0.RC1 至 8.0.43 Apache Tomcat 7.0.0 至 7.0.77 Apache Tomcat CVE-2017-566

Ubuntu 16.04安装Apache Tomcat的方法_Linux

Apache Tomcat是Java Servlet和Java Server Pages技术的开源软件实现. 可以使用OpenJDK tomcat运行你的Java应用. Apache Tomcat安装 从Ubuntu软件库安装Tomcat: apt-get install tomcat8 您可能还需要安装tomcat8-docs,tomcat8-examples和tomcat8-admin工具,这些工具提供了文档,测试和允许您基于Web的应用程序管理Tomcat. 您可以使用以下命令安装所有这三