Java SE从另一个maven模块注入服务

时间:2016-07-02 22:42:07

标签: java maven dependency-injection resteasy jboss-weld

我遇到来自另一个.jar模块的依赖注入问题。当我尝试从该项目注入服务时,我收到错误

  

WELD-001408:对于带有限定符@Default的MyService类型不满意     在注入点[BackedAnnotatedField] @Inject private smilecounter.app.windows.MainWindow.service     在smilecounter.app.windows.MainWindow.service(MainWindow.java:0)

我上课了:

@Singleton
public class MainWindow extends JFrame{
   @Inject private MyService service;
   ...
}

注入MyService定义如下:

@ApplicationScoped
@Singleton
public class MyService{...}

在我的桌面应用程序模块(Java SE)中,我已添加到pom:

 <!-- CDI -->
 <dependency>
     <groupId>org.jboss.weld.se</groupId>
     <artifactId>weld-se</artifactId>
     <version>${cdi.version}</version>
 </dependency>

在我的服务模块中,我添加了:

    <!-- CDI -->
    <dependency>
        <groupId>org.jboss.weld.se</groupId>
        <artifactId>weld-se</artifactId>
        <version>${cdi.version}</version>
    </dependency>
    <!-- JAX-RS -->
    <dependency>
        <groupId>javax.ws.rs</groupId>
        <artifactId>javax.ws.rs-api</artifactId>
        <version>${jaxrs.version}</version>
    </dependency>
    <!-- RESTEASY -->
    <dependency>
        <groupId>javax</groupId>
        <artifactId>javaee-api</artifactId>
        <version>${javaee.api.version}</version>
        <scope>provided</scope>
    </dependency>

因为这些服务也使用RESTeasy服务。

有没有办法在我的桌面模块中注入这些服务而不创建设置手动依赖项的代理?

修改

根据评论部分的要求,我将我的依赖关系从desktop发布到core-services

    <dependency>
        <groupId>myApp</groupId>
        <artifactId>myApp.services</artifactId>
        <version>0.0.1-SNAPSHOT</version>
    </dependency>

0 个答案:

没有答案