2012-08-29 31 views
0

我正在使用Java RESTful Web服务,并且出于某种奇怪的原因,我得到了3个我完全不确定的Java标记。3 x“令牌上的语法错误” - 基本的Java声明

这里是我的代码:

package au.com.rest; //self made package 
import javax.ws.rs.*; //JaxRS 
import javax.ws.rs.core.*; 
import au.edu.uts.it.wsd.*; //Package containing the relevant classes 

@Path("/feedlist") 
public class RESTFeedService { 

String name, uri, action, feedFile; 
String textReply = "Feed "; 
String xmlReply = "<?xml version=\"1.0\"?> \n<feeds> \n"; 

feedFile = "/tmp/feeds.txt"; 
action = request.getParameter("action"); 
name = request.getParameter("feedName"); 
uri = request.getParameter("uri"); 

Feed feed = new Feed(name, uri); 
FeedList feedList = new FeedListImpl(); 

feedList.load(feedFile); 

@GET 
@Produces(MediaType.TEXT_PLAIN) 
public String showTextFeeds() 
{ 
    for (Feed f:feedList.list()){ 
     textReply += "[Feed Name: " + f.getName() + ", "; 
     textReply += "[Feed URI: " + f.getURI() + "]"; } 
    return textReply; 
} 



我得到的错误是以下行:

String xmlReply = "<?xml version=\"1.0\"?> \n<feeds> \n"; 

语法令牌错误 “;”,{在此之后有望代币

feedFile = "/tmp/feeds.txt"; 

令牌 “字符串”,@预计语法错误

public String showTextFeeds() 

语法错误令牌(S),错位结构

请点我在正确的方向至于我做错了什么。 谢谢!

+0

注意:这段代码编译得很好吗? \t @GET \t @Produces(MediaType.APPLICATION_XML) \t公共字符串showXmlFeeds() \t { \t \t对(进给量f:feedList.list()){ \t \t \t XMLREPLY + =“ \ n “+ f.getName()+” \ n“; \t \t \t xmlReply + =“”+ f.getURI()+“ \ n \ n”; \t \t} \t \t return xmlReply; \t} – AlexM

+0

上述代码与原始帖子中的“showTextFeeds”方法完全相同,尽管它返回XML而不是纯文本。 – AlexM

回答

1
String name, uri, action, feedFile; 

feedFile = "/tmp/feeds.txt"; 
action = request.getParameter("action"); 
name = request.getParameter("feedName"); 
uri = request.getParameter("uri"); 

应该

String name = request.getParameter("feedName"); 
String uri = request.getParameter("uri"); 
String feedFile = "/tmp/feeds.txt"; 
String action = request.getParameter("action"); 
+0

谢谢,这已经解决了我的问题。 – AlexM

0

你的代码,你只能有领域。您可以将这些移到构造函数中。

public RESTFeedService(Request request) { 
    feedFile = "/tmp/feeds.txt"; 
    action = request.getParameter("action"); 
    name = request.getParameter("feedName"); 
    uri = request.getParameter("uri"); 

    feed = new Feed(name, uri); 
    feedList = new FeedListImpl(); 

    feedList.load(feedFile); 
0

您不能在课堂级别放置任意语句。分配和feedList.load(feedFile);之类的语句必须位于方法之外,而非类级别。

+0

非常感谢,这对我帮助很大。 – AlexM

相关问题