日期:2014-05-20  浏览次数:20823 次

IIS和Resin集成,只能运行jsp,servlet则报找不到页面?
我的网站是用java开发的,在服务提供商那里是将resin整合到iis里的,好好的运行了半年 
不想前几天不知他们动了什么,网站突然出了问题,先是所有css样式表不起作用,所有页面一片混乱。 
让他们查,终于解决了,但不想却留了个后遗症,就是所有jsp和html页面都正常去行,但是凡是用到servlet的地方 
也就是调用的url为如下形式:http://www.yyy.cn/servlet/myservlet 
时,也就是在url后面的调用页面没有后缀如.jsp或.do(我用了struts,用.do调用也正常), 
只有一个名字时,会报“404”找不到页面的错误。 

我和服务提供商说,他们总说jsp能正常调用就ok,不承认是他们的问题, 
也说不明白,因为我的servlet的调用好多是用ajax方式的 

我现在认为,这一问题是因为iis在看到无后缀的url调用时,没有将这个调用转到resin,而它自己当然找不到页面了 

现在我心急火燎的,但也没有什么办法,请有经验的同志们帮帮我,分析一下,这个问题可能会出在哪儿,我先谢了!

------解决方案--------------------
估计要重新安装ajax了
------解决方案--------------------
只有一个可能,他们重新安装了tomcat, 而且没有调整web.xml配置文件
要求他们修改
tomcat/conf/web.xml
让tomcat支持
/servlet/这种访问 servlet的方式

请参考:http://www.java2000.net/viewthread.jsp?tid=151
------解决方案--------------------
sorry!看错了,你的是resin

配置resin
  $#@60;caucho.com$#@62;
  $#@60;http-server app-dir=C:\Inetpub\wwwroot$#@62;
  $#@60;servlet-mapping rl-pattern=/servlets/* servlet-name=invoker/$#@62;
  $#@60;servlet-mapping rl-pattern=*.xtp ervlet-name=com.caucho.jsp.XtpServlet/$#@62; 
  $#@60;servlet-mapping rl-pattern=*.jsp servlet-name=com.caucho.jsp.JspServlet/$#@62;
  $#@60;/http-server$#@62;
  $#@60;/caucho.com$#@62;
------解决方案--------------------
明白楼主意思了,他们少了一个配置。 他们需要增加一个路径转发。
将/servlet/的都转发到resin去处理才行

请参考
http://www.ccw.com.cn/htm/center/skill/02_3_28_7.asp
------解决方案--------------------
看你怎么转了,你是把根/下的所有转发给resin当然SERVLET没问题喽,如果不是完全转发,那么就需要配置,而你的服务商是用IIS整合resin的,那么一旦改变转发映射,那么将影响到该服务器下的所有虚拟主机,当然不允许你那样做了,因此 一般的同时支持JSP,PHP和ASP的主机一般都对SEVLET支持得很有限,如果要方便的使用SERVLET,还是找纯JAVA的主机比较好。你试试给主机提供商要求他们增加映射试试,一般考虑风险是不会允许你这样做的。
------解决方案--------------------
是在IIS中建一个ISAPI的筛选器,将可执行文件指向isapi_srun.dll。 映射也在那儿配置。

------解决方案--------------------
被蒙了,肯定是IIS设置修改了。