Servlets java.lang.ClassNotFoundException:com.google.api.client.http.HttpTransport
我正在尝试构建一个java服务器,当它收到一个“帖子”时,它将 做一个div,里面将是我在谷歌硬盘中得到的文件列表 首先,我构建了google驱动端,并将其放到arrylist中。 当我给出正确的参数时,它就起作用了 但是当我尝试将它与我的服务器结合时,它会变得疯狂。 我的doPost方法正在调用此列表并希望打印它,但是我有一些错误。 请告诉我 Connection.java(删除了id和sec)Servlets java.lang.ClassNotFoundException:com.google.api.client.http.HttpTransport,servlets,google-drive-api,Servlets,Google Drive Api,我正在尝试构建一个java服务器,当它收到一个“帖子”时,它将 做一个div,里面将是我在谷歌硬盘中得到的文件列表 首先,我构建了google驱动端,并将其放到arrylist中。 当我给出正确的参数时,它就起作用了 但是当我尝试将它与我的服务器结合时,它会变得疯狂。 我的doPost方法正在调用此列表并希望打印它,但是我有一些错误。 请告诉我 Connection.java(删除了id和sec) 确保已将google客户端http jar文件添加到项目中。此外,有时您可能需要根据所使用的IDE
确保已将google客户端http jar文件添加到项目中。此外,有时您可能需要根据所使用的IDE对项目执行清理。试着看看这是否有效。也看看这个,嗨,谢谢,我怎样才能“清理”这个项目呢?这完全取决于你使用的IDE。例如,Eclipse,clean选项位于Project选项卡下。选择“清理”选项后,可以选择“清理所有项目”,确保选中该选项。这将在执行完全重新发布之前从服务器中删除任何无效资源。再说一遍,我并不是说它能解决问题,但值得一试。:)
package javaServerPack;
import com.google.api.client.googleapis.auth.oauth2.GoogleCredential;
import com.google.api.client.http.HttpTransport;
import com.google.api.client.http.javanet.NetHttpTransport;
import com.google.api.client.json.jackson2.JacksonFactory;
import com.google.api.services.drive.Drive;
import com.google.api.services.drive.Drive.Files;
import com.google.api.services.drive.model.File;
import com.google.api.services.drive.model.FileList;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
public class Connection {
public static void main(String[] args) throws IOException
{
System.out.println(Connection.getFilesNames(clientId, clientSecret, refresh));
}
public static String getFilesNames(String clientId,String clientSecret,String refresh) throws IOException
{
HttpTransport httpTransport = new NetHttpTransport();
JacksonFactory jsonFactory = new JacksonFactory();
GoogleCredential credential = logIn(clientId,clientSecret,refresh,httpTransport,jsonFactory);
Drive service = new Drive.Builder(httpTransport, jsonFactory, credential)
.setApplicationName("listNumberOne")
.build();
return printFilesName(retrieveAllFiles(service));
}
private static String printFilesName(List<File> files)
{
String lines = "";
for(File each:files)
{
lines += each.getTitle() + "\n";
}
return lines;
}
private static GoogleCredential logIn(String clientId, String clientSecret, String refresh,
HttpTransport httpTransport,JacksonFactory jsonFactory)
{
GoogleCredential credential = new GoogleCredential.Builder()
.setTransport(httpTransport)
.setJsonFactory(jsonFactory)
.setClientSecrets(clientId,clientSecret)
.build();
credential.setRefreshToken(refresh);
return credential;
}
/**
* Retrieve a list of File resources.
*
* @param service Drive API service instance.
* @return List of File resources.
*/
private static List<File> retrieveAllFiles(Drive service) throws IOException {
List<File> result = new ArrayList<File>();
Files.List request = service.files().list();
do {
try {
FileList files = request.execute();
result.addAll(files.getItems());
request.setPageToken(files.getNextPageToken());
} catch (IOException e) {
System.out.println("An error occurred: " + e);
request.setPageToken(null);
}
}
while (request.getPageToken() != null &&
request.getPageToken().length() > 0);
return result;
}
}
package javaServerPack;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class JavaServer extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* Default constructor.
*/
public JavaServer() {
super();
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//System.out.println(request.getParameter("name"));
response.setContentType("text/plain");
response.setCharacterEncoding("UTF-8");
response.getWriter().println("<div id =\"someDiv\">" + "hi" + " </div>");
}
/*Connection.getFilesNames(clientId, clientSecret, refresh)
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/plain");
response.setCharacterEncoding("UTF-8");
response.getWriter().println("<div id =\"someDiv\">" + Connection.getFilesNames(clientId2, clientSecret2, refresh2) + " </div>");
}
}
2016-01-14 14:26:18.007:WARN:oejs.ServletHandler:qtp548246552-13: Error for /JavaServer/JavaServer
java.lang.NoClassDefFoundError: com/google/api/client/http/HttpTransport
at javaServerPack.JavaServer.doPost(JavaServer.java:54)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:808)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:587)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:577)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
at org.eclipse.jetty.server.handler.HandlerList.handle(HandlerList.java:52)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)
at org.eclipse.jetty.server.Server.handle(Server.java:499)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:310)
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257)
at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:540)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635)
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555)
at java.lang.Thread.run(Unknown Source)
Caused by:
java.lang.ClassNotFoundException: com.google.api.client.http.HttpTransport
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at org.eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:450)
at org.eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:403)
at javaServerPack.JavaServer.doPost(JavaServer.java:54)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:808)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:587)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:577)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
at org.eclipse.jetty.server.handler.HandlerList.handle(HandlerList.java:52)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)
at org.eclipse.jetty.server.Server.handle(Server.java:499)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:310)
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257)
at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:540)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635)
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555)
at java.lang.Thread.run(Unknown Source)