1

我是 Guice 的新手,确实是 cloudify,我希望得到一个指针或区域来查看可能导致这种情况的原因:

  1. 首先 :

    No implementation for com.google.common.cache.LoadingCache<org.jclouds.ec2.domain.RunningInstance, org.jclouds.domain.LoginCredentials> was bound.
      while locating com.google.common.cache.LoadingCache<org.jclouds.ec2.domain.RunningInstance, org.jclouds.domain.LoginCredentials>
        for parameter 9 at org.jclouds.aws.ec2.compute.strategy.AWSEC2CreateNodesInGroupThenAddToSet.<init>(AWSEC2CreateNodesInGroupThenAddToSet.java:94)
      at org.jclouds.aws.ec2.compute.config.AWSEC2ComputeServiceContextModule.configure(AWSEC2ComputeServiceContextModule.java:96)
    
  2. 和 :

    No implementation for com.google.common.cache.CacheLoader<org.jclouds.ec2.domain.RunningInstance, org.jclouds.domain.Credentials> was bound.
      at org.jclouds.ec2.compute.config.EC2ComputeServiceDependenciesModule.credentialsMap(EC2ComputeServiceDependenciesModule.java:169)
    2 errors
    

代码1是:-

public class AWSEC2ComputeServiceContextModule extends BaseComputeServiceContextModule {
@Override
protected void configure() {
super.configure();
    installDependencies();
    install(new EC2BindComputeStrategiesByClass());
    install(new AWSEC2BindComputeSuppliersByClass());
    bind(ReviseParsedImage.class).to(AWSEC2ReviseParsedImage.class);
    bind(CreateKeyPairAndSecurityGroupsAsNeededAndReturnRunOptions.class).to(
           CreateKeyPairPlacementAndSecurityGroupsAsNeededAndReturnRunOptions.class);
    bind(EC2HardwareSupplier.class).to(AWSEC2HardwareSupplier.class);
    bind(EC2TemplateBuilderImpl.class).to(AWSEC2TemplateBuilderImpl.class);
    bind(EC2GetNodeMetadataStrategy.class).to(AWSEC2GetNodeMetadataStrategy.class);
    bind(EC2ListNodesStrategy.class).to(AWSEC2ListNodesStrategy.class);
    bind(EC2DestroyNodeStrategy.class).to(AWSEC2DestroyNodeStrategy.class);
    bind(InstancePresent.class).to(AWSEC2InstancePresent.class);
    bind(EC2CreateNodesInGroupThenAddToSet.class).to(AWSEC2CreateNodesInGroupThenAddToSet.class);
    bind(RunningInstanceToNodeMetadata.class).to(AWSRunningInstanceToNodeMetadata.class);
}

代码2是:-

@Provides
@Singleton
@Named("SECURITY")
protected LoadingCache<RegionAndName, String> securityGroupMap(
        @Named("SECURITY") CacheLoader<RegionAndName, String> in) {
    return CacheBuilder.newBuilder().build(in);
}

我最初的想法是它可能是路径中缺少或缺少项目的 jar 文件?任何指针和指导表示赞赏。这是在Bootcamped IMAC 上的Netbeans 7.3 beta, Java 1.7, GlassFish, Cloudify 2.5.0-SNAPSHOT, Windows 7 Professional 64 位上。

4

2 回答 2

0

您的类路径中缺少一些 jar 文件。至少您应该在类路径的以下目录中包含 jar 文件:

  • CLOUDIFY_HOME/lib/必需/*
  • CLOUDIFY_HOME/lib/platform/esm/*
  • CLOUDIFY_HOME/lib/platform/cloudify/*
于 2013-03-17T13:19:21.370 回答
0

还要检查您使用的 Java 版本。如果它是 1.7u51 或更高版本,则它不适用于 cloudify 使用的 jclouds 版本,特别是 Guice(此处描述的问题)。

恢复到较早的 JDK(1.7u45 或更低版本)应该可以解决它。

于 2014-06-29T15:09:16.023 回答