我是Java新手,需要一些帮助。 我期待从MQ队列中读取消息,然后将消息输出到txt文件,最后从队列中删除原始消息。 我想出了以下内容,但它不会编译。 任何帮助将不胜感激! 谢谢!
public class test
{
public static void main(String[] args);
{
MQQueueManager QMgr=new MQQueueManager(qManager);
int openOptions=MQC.MQOO_FAIL_IF_QUIESCING | MQC.MQOO_INPUT_SHARED | MQC.MQOO_BROWSE;
MQQueue queue=QMgr.accessQueue(queueName, openOptions);
MQMessage theMessage=new MQMessage();
MQGetMessageOptions gmo=new MQGetMessageOptions();
gmo.options=MQC.MQGMO_WAIT | MQC.MQGMO_BROWSE_FIRST;
gmo.matchOptions=MQC.MQMO_NONE;
gmo.waitInterval=5000;
boolean thereAreMessages=true;
while(thereAreMessages){ **(Gives an "Illegal start of type" error)**
try{
queue.get(theMessage,gmo);
String msgText = theMessage.readString(theMessage.getMessageLength());
PrintStream out = new PrintStream(new FileOutputStream("C:\\Users\\js04279\\Desktop\\test.txt")):
System.setOut(out);
System.out.println("REMOVING.............................");
getMessageOptions.options =MQC.MQGMO_MSG_UNDER_CURSOR;
}
catch(MQException e){
if(e.reasonCode == e.MQRC_NO_MSG_AVAILABLE)
System.out.println("No more message available or retrieved");
thereAreMessages=false;
}
catch (IOException e){
System.out.println("ERROR: "+e.getMessage());
}
}
I got the following error messages:
"test.java:17: illegal start of type" - this was at the while statement
"test.java:35: <identifier> expected"
答案 0 :(得分:0)
如果这是你在课堂上的所有内容,那么我认为你缺少2个结束括号。 1表示主要方法,1表示班级。
我看到你的最后一个结束括号是针对while循环的。
Java会将此视为该类的结束括号,并将其解释为您在类级别编写语句。这是不允许的,因此被视为非法类型的开始。
答案 1 :(得分:0)
在Public static void main(String args []);
之后删除分号正确的陈述是
public static void main(String[] args) {
//TODO your code
}
答案 2 :(得分:0)
请使用Eclipse或Net Beans等IDE,以避免编译时错误。使用IDE将以许多其他方式为您提供帮助。
你的代码对我来说似乎没问题。实际上不需要从队列中删除消息。从队列中读取消息后,应自动删除它。