2013-10-16 21 views
0

我需要将RabbitMQ与另一个在Java上运行的系统集成。于是我去了official website,下载了软件包并将其复制到了我的类路径中。然后我跟着basic tutorial,并验证导入外部库的工作。RabbitMQ Java客户端 - Java依赖关系(标准库?)

我现在面对的问题对于Java开发人员可能非常容易解决:为了使以下代码正常工作,必须导入哪些标准Java库?

import com.rabbitmq.client.Connection; 
import com.rabbitmq.client.Channel; 
import com.rabbitmq.client.ConnectionFactory; 
... 
ConnectionFactory factory = new ConnectionFactory(); 

,而不会在进口象这样的错误:

Line 51, Column 18: No applicable constructor/method found for actual parameters "java.lang.String"; 
candidates are: "void com.rabbitmq.client.ConnectionFactory.setPort(int)" 

我想这样的事情,但我不知道如何在Java中的作品,所以我想有一些澄清。例如,我应该何时使用星号?

import java.lang.String; 
import java.lang.String.*; 

顺便说一下,我试图集成RabbitMQ的系统是Pentaho Data Integration(又名Kettle)。

回答

1

首先,摆脱您的java.lang导入。

其次,请致电setPortint而不是API中所述的String

0

只需在类路径中包含amqp-client - $ {version} jar即可。 Astreix用于从包中导入所有类。 java中的类名称以大写字母开头,而包名称小写。所以,java.lang是一个包,String是一个类。默认情况下,所有类的java.lang包都是在Java程序中导入的,并且您不需要编写import java.lang.String; or import java.lang.*;

+0

你是否应该在“rabbitmq-client.jar”(版本3.1.5)之外添加它?当我阅读[网站](http://www.rabbitmq.com/java-client.html)时,我认为它已包含在内。顺便说一句,我确信“rabbitmq-client.jar”在类路径中,因为如果我将它从它中取出,我会得到一个不同的错误:导入的类“com.rabbitmq.client.Connection”无法加载。 –