2

我有一个 Axis (1.4) Web 服务(在 Tomcat 6.0.20 上运行),它工作正常,直到我尝试使用来自另一个项目的任何类。

我有我的 Web 服务项目和另一个包含业务逻辑的项目。我已将业务逻辑项目添加为我的 Web 服务项目中的项目依赖项/引用。

package MyProject.services;
import BusinessLogic.Core.TestClass;

    public class MyServiceImpl implements MyProject.services.MyServiceImpl_PortType {

    public java.lang.String getServerStatus() throws java.rmi.RemoteException {
             //BusinessLogic.Core.TestClass core = new BusinessLogic.Core.TestClass();
             return "This is working fine!";
    }
}

当我调用上面的方法时,一切正常。但是,如果我取消注释 getServerStatus() 中的行,我会收到 NoClassDefFoundException。

代码当然编译得很好,据我所知,我已经添加了所有依赖项。TestClass 只有一个打印“Hello”的构造函数,没有其他依赖项。

我对 java web 服务比较陌生,所以这可能只是我犯的一个愚蠢的错误。你有什么想法?

4

3 回答 3

2

你说你有他们在不同的项目。如果这意味着 Tomcat 中的 WAR 文件/文件夹,那么您的问题可能是一个 Web 应用程序无法直接看到任何其他 Web 应用程序(包括类路径)。

如果没有,请编辑您的问题,以非常具体地说明您所看到的和您的期望。

于 2009-07-17T08:10:18.100 回答
1

你还没有说你是如何构建和部署它的。TestClass 是否在某个 jar 文件中?如果是这样,部署系统中的 jar 文件在哪里,您的 Web 服务类是如何部署的?

于 2009-07-17T06:48:28.593 回答
1

这不是您问题的答案,但您可以使用这个免费的肥皂

查看生成的 wsdl 并调用服务上的方法。这意味着您可以测试您的服务,而无需编译存根并将其部署到第二个测试客户端(您必须在稍后阶段执行此操作)

希望这可以帮助

于 2009-07-17T08:07:15.923 回答