欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

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

程序员文章站 2022-04-10 14:15:45
...

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

一个上线很久的生产系统某项功能突然不正常,开发人员分析日志后作出重启系统的决定。
重启系统时后台出现下述错误: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

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