【问题标题】:Tomcat 5.5 Axis2 application scope problem - Unable to create single instanceTomcat 5.5 Axis2 应用程序范围问题 - 无法创建单个实例
【发布时间】:2025-12-22 12:00:12
【问题描述】:

我在 Tomcat 5.5 上部署了一个axis2 Web 服务。 Web 服务按预期运行。但我注意到我收到了重复的日志条目。经过研究,很明显正在创建该类的多个实例 - 即它第一次运行时,一个日志条目;第二次,两个条目,依此类推。

我添加了 scope="application" 参数,但这并没有解决问题。我在服务标签和单独的参数标签中都添加了它,但无济于事。

这个类有很多关键的全局变量,日志就是其中之一。尽管我很沮丧,但我仍然没有达到解构全局变量的地步(大修,打破了我部门的代码约定)。全局变量是罪魁祸首吗?还是我缺少其他一些 Tomcat/Axis2 配置?

将根据要求发布 services.xml 或其他代码。

提前致谢 - 比尔

【问题讨论】:

    标签: web-services scope axis2 tomcat5.5


    【解决方案1】:

    我已经解决了这个问题......不一定明白为什么,但我现在有正确的行为......

    我作为 Web 服务 (WEB-INF/services/myService/META-INF) 的一部分创建的 services.xml 文件被 tomcat/conf/server.xml 中的配置覆盖,我之前只提到过myService 带有上下文块。为了让 myService 拥有唯一的服务级别参数,它必须在 tomcat/conf/server.xml 中有自己的配置...而不仅仅是上下文引用。

    在我看来,这不是 server.xml 中最好的配置...服务和上下文。那样不是动态的。不幸的是,我在很多个月前都在遵循这里的标准,所以我无能为力。

    【讨论】: