我有一个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服务比较陌生,所以这可能只是我犯过的一个愚蠢的错误。你有什么想法吗?
答案 0 :(得分:2)
你说你有不同的项目。如果这意味着Tomcat中的WAR文件/文件夹,那么您的问题可能是一个Web应用程序无法直接看到任何其他Web应用程序(包括类路径)。
如果没有,请编辑您的问题,以便对您所看到的内容和您的期望非常具体。
答案 1 :(得分:1)
您还没有说过如何构建和部署它。 TestClass是否在某个jar文件中?如果是这样,部署的系统中的jar文件在哪里,以及您的Web服务类是如何部署的?
答案 2 :(得分:1)
这不是您问题的答案,但您可以使用此免费soapui
查看生成的wsdl并调用服务上的方法。 这意味着您可以在不编译和部署存根到第二个测试客户端的情况下测试您的服务(稍后您将不得不这样做)
希望这有帮助