我的代码要用到commons-httpclient包,我去网站下载并添加到eclispse Java Build Path里。
eclipse没有语法错误,当编译的时候却提示找不到符号,找不到符号的这些类都是commons-httpclient包里的类,请问这是怎么回事。
以下是源码
======================
package org.compiere.process;import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.logging.Level;
import java.util.logging.Logger;import org.apache.commons.httpclient.Cookie;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpException;
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.httpclient.cookie.CookiePolicy;
import org.apache.commons.httpclient.methods.PostMethod;
public class ProcessBlogB {
protected void prepare ()
{}
protected String doIt () throws Exception
{
postBlog();
return "";
}
public static void postBlog()
{
HttpClient client=new HttpClient();
PostMethod post=new PostMethod("http://login.xiaonei.com/Login.do");
post.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
client.getParams().setCookiePolicy(CookiePolicy.BROWSER_COMPATIBILITY);
NameValuePair[] data=
{
new NameValuePair("email","[email protected]"),
new NameValuePair("password","12345678")
};
post.setRequestBody(data);
try {
client.executeMethod(post);
Cookie [] cookies=client.getState().getCookies();
InputStream stream=post.getResponseBodyAsStream();
writeStream(stream);
stream.close();
post.releaseConnection();
post=new PostMethod("http://blog.xiaonei.com/NewEntry.do");
post.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
data=new NameValuePair[]{
new NameValuePair("title","我也来试试"),
new NameValuePair("body","测试。") ,
new NameValuePair("categoryId","0") ,
new NameValuePair("blogControl","99") ,
new NameValuePair("passwordProtedted","0")
};
post.setRequestBody(data);
client.executeMethod(post);
stream=post.getResponseBodyAsStream();
writeStream(stream);
stream.close();
post.releaseConnection();
}catch (HttpException ex) {
Logger.getLogger(ProcessBlogB.class.getName()).log(Level.SEVERE, null, ex);
} catch (IOException ex) {
Logger.getLogger(ProcessBlogB.class.getName()).log(Level.SEVERE, null, ex);
}
}
private static void writeStream(InputStream stream) throws IOException
{
BufferedReader reader=new BufferedReader(new InputStreamReader(stream));
String line=null;
for(line=reader.readLine();line!=null;line=reader.readLine())
{
System.out.println(line);
}
reader.close();
}
}
编译错误信息
=========
[javac] E:\stephy\HF\demopos\base\src\org\compiere\process\ProcessBlogB.java:29: 找不到符号
[javac] 符号: 类 HttpClient
[javac] 位置: 类 org.compiere.process.ProcessBlogB
[javac] HttpClient client=new HttpClient();
[javac] ^
[javac] E:\stephy\HF\demopos\base\src\org\compiere\process\ProcessBlogB.java:29: 找不到符号
[javac] 符号: 类 HttpClient
[javac] 位置: 类 org.compiere.process.ProcessBlogB
[javac] HttpClient client=new HttpClient();
[javac] ^
[javac] E:\stephy\HF\demopos\base\src\org\compiere\process\ProcessBlogB.java:30: 找不到符号
[javac] 符号: 类 PostMethod
[javac] 位置: 类 org.compiere.process.ProcessBlogB
[javac] PostMethod post=new PostMethod("http://login.xiaonei.com/Login.do");
[javac] ^
[javac] E:\stephy\HF\demopos\base\src\org\compiere\process\ProcessBlogB.java:30: 找不到符号
[javac] 符号: 类 PostMethod
[javac] 位置: 类 org.compiere.process.ProcessBlogB
[javac] PostMethod post=new PostMethod("http://login.xiaonei.com/Login.do");
[javac] ^
[javac] E:\stephy\HF\demopos\base\src\org\compiere\process\ProcessBlogB.java:32: 找不到符号
[javac] 符号: 变量 CookiePolicy
[javac] 位置: 类 org.compiere.process.ProcessBlogB
[javac] client.getParams().setCookiePolicy(CookiePolicy.BROWSER_COMPATIBILITY);
[javac] ^
[javac] E:\stephy\HF\demopos\base\src\org\compiere\process\ProcessBlogB.java:33: 找不到符号
[javac] 符号: 类 NameValuePair
[javac] 位置: 类 org.compiere.process.ProcessBlogB
[javac] NameValuePair[] data=
[javac] ^
[javac] E:\stephy\HF\demopos\base\src\org\compiere\process\ProcessBlogB.java:35: 找不到符号
[javac] 符号: 类 NameValuePair
[javac] 位置: 类 org.compiere.process.ProcessBlogB
[javac] new NameValuePair("email","[email protected]"),
[javac] ^
[javac] E:\stephy\HF\demopos\base\src\org\compiere\process\ProcessBlogB.java:36: 找不到符号
[javac] 符号: 类 NameValuePair
[javac] 位置: 类 org.compiere.process.ProcessBlogB
[javac] new NameValuePair("password","12345678")
[javac] ^
[javac] E:\stephy\HF\demopos\base\src\org\compiere\process\ProcessBlogB.java:41: 找不到符号
[javac] 符号: 类 Cookie
[javac] 位置: 类 org.compiere.process.ProcessBlogB
[javac] Cookie [] cookies=client.getState().getCookies();
[javac] ^
[javac] E:\stephy\HF\demopos\base\src\org\compiere\process\ProcessBlogB.java:46: 找不到符号
[javac] 符号: 类 PostMethod
[javac] 位置: 类 org.compiere.process.ProcessBlogB
[javac] post=new PostMethod("http://blog.xiaonei.com/NewEntry.do");
[javac] ^
[javac] E:\stephy\HF\demopos\base\src\org\compiere\process\ProcessBlogB.java:48: 找不到符号
[javac] 符号: 类 NameValuePair
[javac] 位置: 类 org.compiere.process.ProcessBlogB
[javac] data=new NameValuePair[]{
[javac] ^
[javac] E:\stephy\HF\demopos\base\src\org\compiere\process\ProcessBlogB.java:49: 找不到符号
[javac] 符号: 类 NameValuePair
[javac] 位置: 类 org.compiere.process.ProcessBlogB
[javac] new NameValuePair("title","我也来试试"),
[javac] ^
[javac] E:\stephy\HF\demopos\base\src\org\compiere\process\ProcessBlogB.java:50: 找不到符号
[javac] 符号: 类 NameValuePair
[javac] 位置: 类 org.compiere.process.ProcessBlogB
[javac] new NameValuePair("body","测试。") ,
[javac] ^
[javac] E:\stephy\HF\demopos\base\src\org\compiere\process\ProcessBlogB.java:51: 找不到符号
[javac] 符号: 类 NameValuePair
[javac] 位置: 类 org.compiere.process.ProcessBlogB
[javac] new NameValuePair("categoryId","0") ,
[javac] ^
[javac] E:\stephy\HF\demopos\base\src\org\compiere\process\ProcessBlogB.java:52: 找不到符号
[javac] 符号: 类 NameValuePair
[javac] 位置: 类 org.compiere.process.ProcessBlogB
[javac] new NameValuePair("blogControl","99") ,
[javac] ^
[javac] E:\stephy\HF\demopos\base\src\org\compiere\process\ProcessBlogB.java:53: 找不到符号
[javac] 符号: 类 NameValuePair
[javac] 位置: 类 org.compiere.process.ProcessBlogB
[javac] new NameValuePair("passwordProtedted","0")
[javac] ^
[javac] E:\stephy\HF\demopos\base\src\org\compiere\process\ProcessBlogB.java:61: 找不到符号
[javac] 符号: 类 HttpException
[javac] 位置: 类 org.compiere.process.ProcessBlogB
[javac] }catch (HttpException ex) {
eclipse没有语法错误,当编译的时候却提示找不到符号,找不到符号的这些类都是commons-httpclient包里的类,请问这是怎么回事。
以下是源码
======================
package org.compiere.process;import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.logging.Level;
import java.util.logging.Logger;import org.apache.commons.httpclient.Cookie;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpException;
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.httpclient.cookie.CookiePolicy;
import org.apache.commons.httpclient.methods.PostMethod;
public class ProcessBlogB {
protected void prepare ()
{}
protected String doIt () throws Exception
{
postBlog();
return "";
}
public static void postBlog()
{
HttpClient client=new HttpClient();
PostMethod post=new PostMethod("http://login.xiaonei.com/Login.do");
post.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
client.getParams().setCookiePolicy(CookiePolicy.BROWSER_COMPATIBILITY);
NameValuePair[] data=
{
new NameValuePair("email","[email protected]"),
new NameValuePair("password","12345678")
};
post.setRequestBody(data);
try {
client.executeMethod(post);
Cookie [] cookies=client.getState().getCookies();
InputStream stream=post.getResponseBodyAsStream();
writeStream(stream);
stream.close();
post.releaseConnection();
post=new PostMethod("http://blog.xiaonei.com/NewEntry.do");
post.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
data=new NameValuePair[]{
new NameValuePair("title","我也来试试"),
new NameValuePair("body","测试。") ,
new NameValuePair("categoryId","0") ,
new NameValuePair("blogControl","99") ,
new NameValuePair("passwordProtedted","0")
};
post.setRequestBody(data);
client.executeMethod(post);
stream=post.getResponseBodyAsStream();
writeStream(stream);
stream.close();
post.releaseConnection();
}catch (HttpException ex) {
Logger.getLogger(ProcessBlogB.class.getName()).log(Level.SEVERE, null, ex);
} catch (IOException ex) {
Logger.getLogger(ProcessBlogB.class.getName()).log(Level.SEVERE, null, ex);
}
}
private static void writeStream(InputStream stream) throws IOException
{
BufferedReader reader=new BufferedReader(new InputStreamReader(stream));
String line=null;
for(line=reader.readLine();line!=null;line=reader.readLine())
{
System.out.println(line);
}
reader.close();
}
}
编译错误信息
=========
[javac] E:\stephy\HF\demopos\base\src\org\compiere\process\ProcessBlogB.java:29: 找不到符号
[javac] 符号: 类 HttpClient
[javac] 位置: 类 org.compiere.process.ProcessBlogB
[javac] HttpClient client=new HttpClient();
[javac] ^
[javac] E:\stephy\HF\demopos\base\src\org\compiere\process\ProcessBlogB.java:29: 找不到符号
[javac] 符号: 类 HttpClient
[javac] 位置: 类 org.compiere.process.ProcessBlogB
[javac] HttpClient client=new HttpClient();
[javac] ^
[javac] E:\stephy\HF\demopos\base\src\org\compiere\process\ProcessBlogB.java:30: 找不到符号
[javac] 符号: 类 PostMethod
[javac] 位置: 类 org.compiere.process.ProcessBlogB
[javac] PostMethod post=new PostMethod("http://login.xiaonei.com/Login.do");
[javac] ^
[javac] E:\stephy\HF\demopos\base\src\org\compiere\process\ProcessBlogB.java:30: 找不到符号
[javac] 符号: 类 PostMethod
[javac] 位置: 类 org.compiere.process.ProcessBlogB
[javac] PostMethod post=new PostMethod("http://login.xiaonei.com/Login.do");
[javac] ^
[javac] E:\stephy\HF\demopos\base\src\org\compiere\process\ProcessBlogB.java:32: 找不到符号
[javac] 符号: 变量 CookiePolicy
[javac] 位置: 类 org.compiere.process.ProcessBlogB
[javac] client.getParams().setCookiePolicy(CookiePolicy.BROWSER_COMPATIBILITY);
[javac] ^
[javac] E:\stephy\HF\demopos\base\src\org\compiere\process\ProcessBlogB.java:33: 找不到符号
[javac] 符号: 类 NameValuePair
[javac] 位置: 类 org.compiere.process.ProcessBlogB
[javac] NameValuePair[] data=
[javac] ^
[javac] E:\stephy\HF\demopos\base\src\org\compiere\process\ProcessBlogB.java:35: 找不到符号
[javac] 符号: 类 NameValuePair
[javac] 位置: 类 org.compiere.process.ProcessBlogB
[javac] new NameValuePair("email","[email protected]"),
[javac] ^
[javac] E:\stephy\HF\demopos\base\src\org\compiere\process\ProcessBlogB.java:36: 找不到符号
[javac] 符号: 类 NameValuePair
[javac] 位置: 类 org.compiere.process.ProcessBlogB
[javac] new NameValuePair("password","12345678")
[javac] ^
[javac] E:\stephy\HF\demopos\base\src\org\compiere\process\ProcessBlogB.java:41: 找不到符号
[javac] 符号: 类 Cookie
[javac] 位置: 类 org.compiere.process.ProcessBlogB
[javac] Cookie [] cookies=client.getState().getCookies();
[javac] ^
[javac] E:\stephy\HF\demopos\base\src\org\compiere\process\ProcessBlogB.java:46: 找不到符号
[javac] 符号: 类 PostMethod
[javac] 位置: 类 org.compiere.process.ProcessBlogB
[javac] post=new PostMethod("http://blog.xiaonei.com/NewEntry.do");
[javac] ^
[javac] E:\stephy\HF\demopos\base\src\org\compiere\process\ProcessBlogB.java:48: 找不到符号
[javac] 符号: 类 NameValuePair
[javac] 位置: 类 org.compiere.process.ProcessBlogB
[javac] data=new NameValuePair[]{
[javac] ^
[javac] E:\stephy\HF\demopos\base\src\org\compiere\process\ProcessBlogB.java:49: 找不到符号
[javac] 符号: 类 NameValuePair
[javac] 位置: 类 org.compiere.process.ProcessBlogB
[javac] new NameValuePair("title","我也来试试"),
[javac] ^
[javac] E:\stephy\HF\demopos\base\src\org\compiere\process\ProcessBlogB.java:50: 找不到符号
[javac] 符号: 类 NameValuePair
[javac] 位置: 类 org.compiere.process.ProcessBlogB
[javac] new NameValuePair("body","测试。") ,
[javac] ^
[javac] E:\stephy\HF\demopos\base\src\org\compiere\process\ProcessBlogB.java:51: 找不到符号
[javac] 符号: 类 NameValuePair
[javac] 位置: 类 org.compiere.process.ProcessBlogB
[javac] new NameValuePair("categoryId","0") ,
[javac] ^
[javac] E:\stephy\HF\demopos\base\src\org\compiere\process\ProcessBlogB.java:52: 找不到符号
[javac] 符号: 类 NameValuePair
[javac] 位置: 类 org.compiere.process.ProcessBlogB
[javac] new NameValuePair("blogControl","99") ,
[javac] ^
[javac] E:\stephy\HF\demopos\base\src\org\compiere\process\ProcessBlogB.java:53: 找不到符号
[javac] 符号: 类 NameValuePair
[javac] 位置: 类 org.compiere.process.ProcessBlogB
[javac] new NameValuePair("passwordProtedted","0")
[javac] ^
[javac] E:\stephy\HF\demopos\base\src\org\compiere\process\ProcessBlogB.java:61: 找不到符号
[javac] 符号: 类 HttpException
[javac] 位置: 类 org.compiere.process.ProcessBlogB
[javac] }catch (HttpException ex) {
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货