多模块maven项目模块公开为soap web服务

时间:2015-03-17 11:53:37

标签: spring web-services maven soap module

我有一个多模块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

1 个答案:

答案 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;启用工作区解决方案)。