Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么POM中的依赖顺序会影响bean可见性_Java_Spring_Maven - Fatal编程技术网

Java 为什么POM中的依赖顺序会影响bean可见性

Java 为什么POM中的依赖顺序会影响bean可见性,java,spring,maven,Java,Spring,Maven,我正在尝试将一个组件连接到现有系统。为此,我在主项目POM文件中包含了对组件(DataFilter)的依赖关系 订单1) 从组件DataFilter 当我将依赖项切换到顺序2时(CommandHandlerfirst) ${project.groupId} 命令处理程序 1.0.0-SNAPSHOT ${project.groupId} 数据过滤器 1.0.0-SNAPSHOT 出现以下行为: 主应用程序仍然像上面那样预实例化bean [activemq、解析器、rawStorage

我正在尝试将一个组件连接到现有系统。为此,我在主项目POM文件中包含了对组件(
DataFilter
)的依赖关系

订单1)

  • 从组件
    DataFilter

  • 当我将依赖项切换到顺序2时(
    CommandHandler
    first)

    
    ${project.groupId}
    命令处理程序
    1.0.0-SNAPSHOT
    ${project.groupId}
    数据过滤器
    1.0.0-SNAPSHOT
    
    出现以下行为:

    • 主应用程序仍然像上面那样预实例化bean

      [activemq、解析器、rawStorage、commandDAO、CommandService、payloadStorage、payloadRetrieval、rawReply、rawRetrieval、模板、consumerTemplate、应用上下文:beanPostProcessor、应用上下文]

    • 组件命令处理程序(该bean在顺序1中不可见)预实例化其bean

      [
      iCommandService
      commandDAO
      ]

    • 在设置camel上下文时,甚至没有提到组件数据过滤器;没有数据过滤器bean的预实例化,没有关于缺少bean的错误

    • 驼峰上下文启动并正确构建路由

    另外

    • 命令处理程序和数据过滤器将其上下文保存在
      Beans.xml
    • blueprint.xml
      中的主应用程序(或
      packaging-jar-camel-context-xml.txt
      构建为jar而非捆绑时)
    • 数据文件管理器可编译为
      OSGi
      bundle
    • 没有使用自动连线
    问题是:

    • 为什么依赖顺序会影响可见性或不创建bean
    • 如何正确地设置它以实现正确创建所有三个组件的所有bean的时刻

    您能检查commandhandler和DataFilter中可传递依赖项的版本吗?它们有两个公共依赖项—一个是org.apache.camel,另一个是内部公司包。在这两种情况下,版本都是相同的。当您更改依赖项顺序时,您的部署是否有任何更改,比如lib文件夹中的不同版本或类似的更改
    <dependency>
      <groupId>${project.groupId}</groupId>
      <artifactId>DataFilter</artifactId>
      <version>1.0.0-SNAPSHOT</version>
    </dependency>
    <dependency>
      <groupId>${project.groupId}</groupId>
      <artifactId>CommandHandler</artifactId>
      <version>1.0.0-SNAPSHOT</version>
    </dependency>
    
    [activemq,parser,rawStorage,commandDAO,CommandService,payloadStorage,payloadRetrieval,rawReply,rawRetrieval,template,consumerTemplate,app-context:beanPostProcessor,app-context];
    
    [filters,hdop_filter_pass_less_than_4,vdop_filter_pass_less_than_4,speed_filter_pass_less_than_high_speed,event_and_gps_time_diff_less_than_exp_time,fix_type_recomended_to_3dfix,always_pass_when_motion_or_stationary]
    
     Exception encountered during context initialization - cancelling refresh attempt
    org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'rawReply' defined in class path resource [OSGI-INF/blueprint/packaging-jar-camel-context-xml.txt]: Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [com.company.product.CommandHandler.InitialClass]: Constructor threw exception; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'iCommandService' is defined
    
    <dependency>
      <groupId>${project.groupId}</groupId>
      <artifactId>CommandHandler</artifactId>
      <version>1.0.0-SNAPSHOT</version>
    </dependency>    
    <dependency>
      <groupId>${project.groupId}</groupId>
      <artifactId>DataFilter</artifactId>
      <version>1.0.0-SNAPSHOT</version>
    </dependency>
    
    [activemq,parser,rawStorage,commandDAO,CommandService,payloadStorage,payloadRetrieval,rawReply,rawRetrieval,template,consumerTemplate,app-context:beanPostProcessor,app-context]