为什么我看不到我的Java/SalesForce/Google App?
问题描述:
我目前正在题为SalesForce.com教程Force.com for Google App Engine for Java: Getting Started为什么我看不到我的Java/SalesForce/Google App?
我已经安装了谷歌Eclipse插件,下载库,并进入的“Hello World应用程序”(教程页面上看到的):
package com.force;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.http.*;
import java.util.logging.*;
import com.sforce.ws.*;
import com.sforce.soap.partner.*;
import com.sforce.soap.partner.sobject.SObject;
@SuppressWarnings("serial")
public class HelloWorldServlet extends HttpServlet {
private static final Logger log = Logger.getLogger(HelloWorldServlet.class.getName());
private String username = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
private String password = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
private PartnerConnection connection;
public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {
resp.setContentType("text/html");
resp.getWriter().println("Hello, world. this is a test2");
PrintWriter t = resp.getWriter();
getConnection(t, req);
if (connection == null) { return; }
QueryResult result = null;
try {
result = connection.query( "select id, name, phone from Account order by LastModifiedDate desc limit 10 ");
} catch (ConnectionException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
for (SObject account : result.getRecords()) {
t.println("<li>"+ (String)account.getField("Name") + "</li>");
}
}
void getConnection(PrintWriter out, HttpServletRequest req) {
try {
// build up a ConnectorConfig from a sid
String sessionid = req.getParameter("sid");
String serverurl = req.getParameter("srv");
if (connection == null) {
out.println("<p>new connection needed</p>");
// login to the Force.com Platform
ConnectorConfig config = new ConnectorConfig();
if (sessionid != null && serverurl != null) {
config.setServiceEndpoint(serverurl);
config.setSessionId(sessionid);
config.setManualLogin(false);
out.println("using session from query string");
} else {
config.setUsername(username);
config.setPassword(password);
}
connection = Connector.newConnection(config);
out.println(connection.getConfig().getSessionId());
out.println(connection.getConfig().getServiceEndpoint());
} else {
out.println("<p> reuse existing connection");
out.println(connection.getConfig().getSessionId());
}
log.warning("Connection SID " +connection.getConfig().getSessionId());
} catch (ConnectionException ce) {
log.warning("ConnectionException " +ce.getMessage());
out.println(ce.getMessage() + " s " + ce.getClass());
}
}
}
当我运行该应用程序为“Web应用程序”我得到了在控制台下面:
Initializing AppEngine server
Logging to JettyLogger(null) via com.google.apphosting.utils.jetty.JettyLogger
Successfully processed D:\education\java\HelloWorldOriginal\war\WEB-INF/appengine-web.xml
Successfully processed D:\education\java\HelloWorldOriginal\war\WEB-INF/web.xml
The server is running at http://localhost:8888/
Warning: default mime table not found: C:\devtool\Java\jre6\lib\content-types.properties
当我试图访问http://localhost:8080/,我看到:
Oops! Google Chrome could not connect to localhost:8080
Did you mean: localhost-8080.com
Additional suggestions:
Try reloading: localhost:8080
Search on Google:
Google Chrome Help - Why am I seeing this page?
©2011 Google - Google Home
但是,当我访问http://localhost:8888/,我得到:
Web Application Starter Project
Please enter your name:
Send
(哪,也不是所期望的或预期的结果)
这是什么content-type.properties我我错过了,我该如何解决它?或者这只是一个更大问题的症状?
答
您是否检查过您的web.xml将请求/
指向相应的处理程序类?仅仅写这个类是不够的 - 你必须确保传入的请求被引导到它。
我想你可能会对此有所...我隐约记得为一些早期的动态Web应用程序做这件事,但后来发现,由于一些注释,新的不需要这样做......我会尝试这并回到你身边。 :-) – 2011-01-24 07:35:41