org.apache.axis2.AxisFault: Transport error: 403 Error: Forbidden

 一个上线很久的生产系统某项功能突然不正常,开发人员分析日志后作出重启系统的决定。
重启系统时后台出现下述错误: org.apache.axis2.AxisFault: Transport error: 403 Error: Forbidden
导致tomcat无法重启成功,由于tomcat下部署了多个应用,临时又找不到解决问题的方法。
只能先禁用这个功能,让其他的系统可以正常工作。


系统所在环境如下:
jdk 版本
java version "1.6.0_14"
Java(TM) SE Runtime Environment (build 1.6.0_14-b08)
Java HotSpot(TM) Server VM (build 14.0-b16, mixed mode)

tomcat版本:
Server version: Apache Tomcat/6.0.20
Server built:   May 14 2009 01:13:50
Server number:  6.0.20.0
OS Name:        Linux
OS Version:     2.6.32-200.13.1.el5uek
Architecture:   i386
JVM Version:    1.6.0_14-b08
JVM Vendor:     Sun Microsystems Inc.

操作系统:
Linux  2.6.32-200.13.1.el5uek #1 SMP Wed Jul 27 21:02:33 EDT 2011 x86_64 x86_64 x86_64 GNU/Linux


具体错误信息:
org.apache.axis2.AxisFault: Transport error: 403 Error: Forbidden
        at org.apache.axis2.transport.http.HTTPSender.handleResponse(HTTPSender.java:310)
        at org.apache.axis2.transport.http.HTTPSender.sendViaPost(HTTPSender.java:200)
        at org.apache.axis2.transport.http.HTTPSender.send(HTTPSender.java:76)
        at org.apache.axis2.transport.http.CommonsHTTPTransportSender.writeMessageWithCommons(CommonsHTTPTransportSender.java:400)
        at org.apache.axis2.transport.http.CommonsHTTPTransportSender.invoke(CommonsHTTPTransportSender.java:225)
        at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:435)
        at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:402)
        at org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:229)
        at org.apache.axis2.client.OperationClient.execute(OperationClient.java:165)
        at org.apache.axis2.client.ServiceClient.sendReceive(ServiceClient.java:540)
        at org.apache.axis2.client.ServiceClient.sendReceive(ServiceClient.java:521)
        at org.apache.axis2.rpc.client.RPCServiceClient.invokeBlocking(RPCServiceClient.java:102)
        at com.*.invokeWebService(MuZhiUtil.java:36)
        at com.*.loginSMS(MuZhiUtil.java:64)
        at com.*.sendSourceNoSMS(MuZhiUtil.java:108)
        at com.*.etaNoticeSMS(MuZhiDao.java:452)
        at com.*.execute(ETANoticeSMSJob.java:14)
        at org.quartz.core.JobRunShell.run(JobRunShell.java:202)
        at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:525)
java.lang.NullPointerException
        at com.*.loginSMS(MuZhiUtil.java:65)
        at com.*.sendSourceNoSMS(MuZhiUtil.java:108)
        at com.*.etaNoticeSMS(MuZhiDao.java:452)
        at com.*.execute(ETANoticeSMSJob.java:14)
        at org.quartz.core.JobRunShell.run(JobRunShell.java:202)
        at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:525)

描述一下问题的解决思路及大致过程:
首先程序没有任何改动,操作系统,数据库均正常,tomcat的配置没有改变。
本来正常的功能突然出现问题,基本可以排除是程序的问题。问题定位在系统的运行环境上。
而操作系统,数据库,包括tomcat的配置除了我基本上没人敢去改动,而程序的升级肯定会
通知我的。可能是什么原因呢?只能是程序运行的“环境”发生了变化,可能是什么呢?

在windows上做如下操作:
1.把有问题的程序从生产拷贝到windows测试环境,连测试库,一切正常。
  证明了不是程序的问题。
2.把程序指向生产库,一切正常。
  证明不是生产数据库的问题。

在linux上重复上述操作:
1.把有问题的程序从生产拷贝到Linux测试环境,连测试库,一切正常。
证明了不是程序的问题,也不是操作系统的问题。

2.把程序指向生产库,一切正常。
证明不是生产数据库的问题。

排除了程序,操作系统,数据库及运行环境的问题,还有什么可能呢?

中间件,网络?

3.把生产环境的tomcat,应用拷贝到测试环境,重启应用出错。
  同样的程序在不同的tomcat上运行结果不一致,看来是tomcat的问题了。
对比测试和生产的tomca发现生产与测试的tomcat/conf/catalina.properties有差异 。

原来生产tomcat的catalina.properties中设置有代理。测试环境没有。
把生产tomcat的代理去掉后,一样启动正常。
看来问题找到了,是代理的问题
tomcat/conf/catalina.properties       
http.proxyHost=192.168.0.208
http.proxyPort=8080

原来网管修改了代理,对这个代理做了一些限制。所以导致本来正常的应用突然出现了上述错误。

       

你可能感兴趣的:(org.apache.axis2.AxisFault: Transport error: 403 Error: Forbidden)