我有一个多模块maven-spring项目。以下是结构 -
ParentService
---ChildService-service
---ChildService-core
---ChildService-web
---ChildService-wsClient
---ChildService-mongo
我创建了一个名为ChildService-wsService的新模块,我将在其中编写方法并公开为Axis2 SOAP Web服务。我已经能够在这个模块项目的类中编写独立的方法并公开为服务,但我想调用ChildService-service模块的方法。
当我尝试调用ChildService-service模块的方法时,它会给我一些错误,比如NoClassDefFoundError。
以下是示例代码 -
public class HelloWorld {
@Autowired
private ITestService iTestService;
@Autowired
ICommonService commonService;
public String getVal(String s){
return s+"...testing...";
}
public String getValFfmService(){
iTestService=new TestServiceImpl();
return iTestService.test();
}
我收到错误如下 -
Error: java.lang.NoClassDefFoundError: com/service/test/business/ITestService at java.lang.Class.forName0
如果我在课程中包含以下行,那么我也会收到classnotfound错误。
extends SpringBeanAutowiringSupport
答案 0 :(得分:0)
您需要将您需要的其他项目作为依赖项包括在内,例如,在pom.xml中:
<dependencies>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>ChildService-service</artifactId>
<version>${project.version}</version>
<scope>compile</scope>
</dependency>
...
</dependencies>
然后您需要在本地存储库中安装这些依赖项(mvn clean install
将执行此操作),或者在Eclipse中,您需要激活Workspace resolution
(右键单击您的模块,Maven&gt;启用工作区解决方案)。