当我在Eclipse上开发Axis2 Web服务时,我注意到Eclipse自动将Axis2的lib文件夹中的类复制到新项目的lib文件夹中。但是,并非Axis2的lib文件夹中的所有类都正在被复制。有趣的是,当通过Eclipse部署到Tomcat时,即使一些来自Axis2的jar没有被复制,web服务也没有任何问题。另外,当我查看Tomcat的临时文件时,Tomcat似乎为web服务的modules.list上列出的模块生成了jar。Eclipse不会导入所有的Axis2 jar,但项目仍然在Tomcat上运行?
有人能告诉我关于这是怎么回事?为什么Eclipse不会复制Axis2中的所有罐子?为什么即使没有来自Axis2的其他罐子,Web服务也可以在Tomcat上运行?这些临时文件是什么?何时及为何产生?
我试图在WebSphere上运行同一个项目,并且由于缺少罐子而遇到ClassDefNotFound异常。当我将所有没有被Eclipse复制的Axis2 jar复制到我的项目中时,我的问题得到了解决。但是我对我的解决方案并不满意,因为即使没有这些罐子,Tomcat也可以运行我的项目。我的解决方案是否真的是最佳解决方还是我缺少配置设置?
这只是为了澄清:
我的Web服务已经在运行的Axis2。我的类加载策略设置为PARENT_LAST。我知道,由于WebSphere有自己的Axis2配置,因此类加载策略必须设置为PARENT_LAST,以便WebSphere将使用项目本身的Axis2。除了设置类加载策略之外,我还做了一些让我的Web服务在WebSphere上运行的东西。我描述了我在上面做了什么。我的问题是为什么必须采取这种方法?
我已经告诉他(见http://stackoverflow.com/questions/8502240/module-is-not-valid-when-deploying-an-axis2-web-service-on-websphere),但他wouldn听不到... – 2011-12-21 09:58:35
@AndreasVeithen:我知道WebSphere有自己的配置。当我问到你回答的问题时,我的课堂加载策略已经设置为PARENT_LAST。这就是为什么我发布我的问题,因为即使我的类加载策略已经设置为PARENT_LAST,我的Web服务仍然无法正常工作。无论如何,我的web服务已经在运行,你的解决方案并不是解决我的问题的方法。我在自己的问题上发布了我的答案。也许你还没有检查过它。而我目前的问题不是如何解决它。 – Arci 2011-12-22 01:24:16
@Udo Held:感谢您的回复,但我的问题不是如何解决。我已经能够在Axis2上运行我的Web服务。我的方法在我的帖子中被指出。我的问题是为什么需要这种方法才能在WebSphere上运行Axis2 Web服务。这不是关于班级装载政策。 – Arci 2011-12-22 01:26:36