目前我在Force.com Canvas Developer's Guide查看Force.com Canvas Developer's Guide .

我已成功从GitHub克隆SalesforceCanvasFrameworkSDK,现在正尝试在本地运行Web应用程序 .

构建成功并且已创建密钥库 . 但是,当我执行target \ bin \ webapp.bat时,我收到以下错误:

错误:无法找到或加载主类Main

发现主类似乎在 C:\SalesforceCanvasFrameworkSDK\target\classes 中,我修改了.bat文件,将其包含在CLASSPATH中:

set CLASSPATH="C:\SalesforceCanvasFrameworkSDK\target\classes;%BASEDIR%"\etc;"%REPO%"\javax\servlet\servlet-api\2.5\servlet-api-2.5.jar;"%REPO%"\org\mortbay\jetty\jsp-2.1-glassfish\2.1.v20100127\jsp-2.1-glassfish-2.1.v20100127.jar;"%REPO%"\org\eclipse\jdt\core\compiler\ecj\3.5.1\ecj-3.5.1.jar;"%REPO%"\org\mortbay\jetty\jsp-api-2.1-glassfish\2.1.v20100127\jsp-api-2.1-glassfish-2.1.v20100127.jar;"%REPO%"\ant\ant\1.6.5\ant-1.6.5.jar;"%REPO%"\org\codehaus\jackson\jackson-mapper-asl\1.9.0\jackson-mapper-asl-1.9.0.jar;"%REPO%"\org\codehaus\jackson\jackson-core-asl\1.9.0\jackson-core-asl-1.9.0.jar;"%REPO%"\org\eclipse\jetty\jetty-webapp\7.6.0.v20120127\jetty-webapp-7.6.0.v20120127.jar;"%REPO%"\org\eclipse\jetty\jetty-xml\7.6.0.v20120127\jetty-xml-7.6.0.v20120127.jar;"%REPO%"\org\eclipse\jetty\jetty-util\7.6.0.v20120127\jetty-util-7.6.0.v20120127.jar;"%REPO%"\org\eclipse\jetty\jetty-servlet\7.6.0.v20120127\jetty-servlet-7.6.0.v20120127.jar;"%REPO%"\org\eclipse\jetty\jetty-security\7.6.0.v20120127\jetty-security-7.6.0.v20120127.jar;"%REPO%"\org\eclipse\jetty\jetty-server\7.6.0.v20120127\jetty-server-7.6.0.v20120127.jar;"%REPO%"\org\eclipse\jetty\jetty-continuation\7.6.0.v20120127\jetty-continuation-7.6.0.v20120127.jar;"%REPO%"\org\eclipse\jetty\jetty-http\7.6.0.v20120127\jetty-http-7.6.0.v20120127.jar;"%REPO%"\org\eclipse\jetty\jetty-io\7.6.0.v20120127\jetty-io-7.6.0.v20120127.jar;"%REPO%"\asm\asm\3.2\asm-3.2.jar;"%REPO%"\org\json\json\20080701\json-20080701.jar;"%REPO%"\commons-httpclient\commons-httpclient\3.1\commons-httpclient-3.1.jar;"%REPO%"\commons-logging\commons-logging\1.0.4\commons-logging-1.0.4.jar;"%REPO%"\commons-codec\commons-codec\1.4\commons-codec-1.4.jar;"%REPO%"\sfdc\sfdc-canvas-sdk\1.0-SNAPSHOT\sfdc-canvas-sdk-1.0-SNAPSHOT.jar

这使批处理文件能够执行并启动Jetty .

但是,当我尝试访问 https://localhost:8443/examples/hello-world/index.jsp 时,在超过浏览器警告消息后,我收到了HTTP ERROR 500页面:

HTTP ERROR 500访问/examples/hello-world/index.jsp时出现问题 . 原因:PWC6033:无法为JSP编译类
PWC6199:生成的servlet错误:无法解析类型java.util.Map $ Entry . 它是从所需的.class文件间接引用引起的:org.apache.jasper.JasperException:PWC6033:无法编译JSP PWC6199的类:生成的servlet错误:类型java.util.Map $ Entry无法解析 . 它是org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:123)中的org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:296)中所需的.class文件间接引用的 . 位于org.apache.jasper.JspCompilationContext.compile的org.apache.jasper.compiler.Compiler.compile(Compiler.java:437)中的apache.jasper.compiler.Compiler.generateClass(Compiler.java:376)(JspCompilationContext.java: 608)org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:360)org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:486)org.apache.jasper.servlet.JspServlet .service(JspServlet.java:380)位于org.eclipse的org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:565)的javax.servlet.http.HttpServlet.service(HttpServlet.java:820) . 在org.eclipse.jetty.secu的org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:119)的jetty.servlet.ServletHandler.doHandle(ServletHandler.java:479) rity.SecurityHandler.handle(SecurityHandler.java:521)org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:227)org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler . java:1031)org.eclipse.jet中的org.eclipse.jetty.server.sev.Herler.doScope(SessionHandler.java:186)的org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:406)位于org.eclipse.jetty.server.hand.hand.WandlerWrapper.handle的org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117)的.server.handler.ContextHandler.doScope(ContextHandler.java:965) (HandlerWrapper.java:111)位于org.eclipse的org.eclipse.jetty上的org.eclipse.jetty.server.handle(AbstractHttpConnection.handle:449)中的org.eclipse.jetty.server.Server.handle(Server.java:349) . orty.eclipse.jetty.server.AbstractHttpConnection $ requestHandler.headerComplete(AbstractHttpConnection.java:910)中的jetty.server.BlockingHttpConnection.handleRequest(BlockingHttpConnection.java:47) )org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:634)org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:230)org.eclipse.jetty.server.BlockingHttpConnection . 在org.eclipse.jetty.server.ssl.SslSocketConnector $ SslConnectorEndPoint.run(SslSocketConnector . )的org.eclipse.jetty.server.bio.SocketConnector $ ConnectorEndPoint.run(SocketConnector.java:254)处理(BlockingHttpConnection.java:66) . java:665)org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:599)at org.eclipse.jetty.util.thread.QueuedThreadPool $ 3.run(QueuedThreadPool.java:534)at java . lang.Thread.run(Thread.java:745)由Jetty提供支持://

同时,我的Jetty服务器死了:

错误:在org.apache.jasper.compiler.JDTJavaCompiler的org.eclipse.jdt.internal.compiler.classfmt.ClassFileReader . (ClassFileReader.java:372)的编译错误org.eclipse.jdt.internal.compiler.classfmt.ClassFormatException位于org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.askForType(LookupEnvironment.java)的org.apache.jasper.compiler.JDTJavaCompiler $ 1.findType(JDTJavaCompiler.java:324)的$ 1.findType(JDTJavaCompiler.java:367) :102)org.eclipse.jdt.internal.compiler.lookup.UnresolvedReferenceBinding.resolve(UnresolvedReferenceBinding.java:49)at org.eclipse.jdt.internal.compiler.lookup.BinaryTypeBinding.resolveType(BinaryTypeBinding.java:122)at at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.getTypeFromTypeSignature(LookupEnvironment.java:1188)位于org.eclipse的org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.getTypeFromVariantTypeSignature(LookupEnvironment.java:1244) . jdt.internal.compiler.lookup.LookupEnvironment.getTypeArgumentsFromSignature(看upEnvironment.java:1 031)atorg.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.getTypeFromTypeSignature(LookupEnvironment.java:1193)位于org.eclipse的org.eclipse.jdt.internal.compiler.lookup.BinaryTypeBinding.createMethod(BinaryTypeBinding.java:495) . 位于org.eclipse.jdt.internal的org.eclipse.jdt.internal.compiler.lookup.BinaryTypeBinding.cachePartsFrom(BinaryTypeBinding.java:327)中的jdt.internal.compiler.lookup.BinaryTypeBinding.createMethods(BinaryTypeBinding.java:577) . 在org.eclipse.jdt.internal.compiler.Compiler的org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.createBinaryTypeFrom(LookupEnvironment.java:619)的compiler.lookup.LookupEnvironment.createBinaryTypeFrom(LookupEnvironment.java:640) . 在org.eclipse.jdt.internal.compiler.lookup.PackageBinding.getTypeOrPackage(PackageBinding)的org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.askForType(LookupEnvironment.java:133)中接受(Compiler.java:295) . java:183)at org.eclipse.jdt.internal.compiler.lookup.CompilationUnitScope.findImport(Com) pilationUnitScope.java:465)在org.eclipse.jdt.internal.compiler.lookup.CompilationUnitScope.findSingleImport(CompilationUnitScope.java:519)在org.eclipse.jdt.internal.compiler.lookup.CompilationUnitScope.faultInImports(CompilationUnitScope.java: 368)在org.eclipse上的org.eclipse.jdt.internal.compiler.lookup.CompilationUnitScope.faultInTypes(CompilationUnitScope.java:444)org.eclipse.jdt.internal.compiler.Compiler.process(Compiler.java:752) .gdt.internal.compiler.Compiler.compile(Compiler.java:464)org.apache.jasper.compiler.JDTJavaCompiler.compile(JDTJavaCompiler.java:503)org.apache.jasper.compiler.Compiler.generateClass(Compiler) .java:368)org.apache.jasper.compiler.Compiler.compile(Compiler.java:437)org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:608)org.apache.jasper.servlet . 位于org.apache.jasper.servlet.JspS的org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:486)的JspServletWrapper.service(JspServletWrapper.java:360) ervlet.service(JspServlet.java:380)位于org.eclipse的org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:565)的javax.servlet.http.HttpServlet.service(HttpServlet.java:820) .jetty.servlet.ServletHandler.doHandle(ServletHandler.java:479)在org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:119)在org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler .java:521)org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:227)atg.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1031)at org . eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:406)位于org.eclipse.jetty.server.hand.ContextHandler的org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:186) . dogcope(ContextHandler.java:965)atg.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117)org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:111)在org.e clipse.jetty.server.Server.handle(Server.java:349)在org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:449)在org.eclipse.jetty.server.BlockingHttpConnection.handleRequest(BlockingHttpConnection . Java的:47)在org.eclipse.jetty.server.AbstractHttpConnection $ RequestHandler.headerComplete(AbstractHttpConnection.java:910)在org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:634)在org.eclipse.jetty .http.HttpParser.parseAvailable(HttpParser.java:230)在org.eclipse.jetty.server.BlockingHttpConnection.handle(BlockingHttpConnection.java:66)在org.eclipse.jetty.server.bio.SocketConnector $ ConnectorEndPoint.run(SocketConnector的.java:254)在org.eclipse.jetty.server.ssl.SslSocketConnector $ SslConnectorEndPoint.run(SslSocketConnector.java:665)在org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:599)在java.lang.Thread.run上的org.eclipse.jetty.util.thread.QueuedThreadPool $ 3.run(QueuedThreadPool.java:534)(Thread.java:745)错误:编译文件时出错:C:\ Users \ Brian_Kessler@epam.com \ AppData \ Local \ Temp \ jetty-0.0.0.0-8443-webapp -_- any- \ jsp \ org \ apa che \ jsp \ examples \ hello_002dworld \ index_jsp.java 2014-12-11 15:35:48.106:警告:oejs.ServletHandler:/examples/hello-world/index.jsp org.apache.jasper.JasperException:PWC6033:无法为JSP编译类|| PWC6199 :生成的servlet错误:|类型java .util.Map $ Entry无法解析 . 它是从所需的.class文件||间接引用的org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:123)位于org.apache.jasper.compiler.Compiler.generateClass的org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:296) (Compiler.java:376)org.apache.jasper.compiler.Compile.compile(Compiler.java:437)位于org.apache.jasper的org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:608) . servlet.JspServletWrapper.service(JspServletWrapper.java:360)at atorg.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:486)位于org.apache.jasper.servlet.JspServlet.service(JspServlet.java:380)的javax.servlet.http.HttpServlet.service(HttpServlet . java:820)org.eclipse.jetty.servle.ServletHolder.handle(ServletHolder.java:565)atg.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:479)org.eclipse.jetty.server .handler.ScopedHandler.handle(ScopedHandler.java:119)org.eclipse.jetty.securityHandler.handle(SecurityHandler.java:521)org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java) :227)org.eclipse.jetty上的org.eclipse.jetty.serv.服务中心的org.eclipse.jetty.Verle . (ServletHandler.java:406)的org.eclipse.jetty.server.hand.ContextHandler.doHandle(ContextHandler.java:1031) . server.session.SessionHandler.doScope(SessionHandler.java:186)位于org.eclipse.jetty.server.hand.上的org.eclipse.jetty.server.hand.ContextHandler.doScope(ContextHandler.java:965) . ScopedHan dler.java:117)org.eclipse.jetty.handle(HandlerWrapper.java:111)org.eclipse.jetty.server.handle(Server.java:349)org.eclipse上的org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:111)位于org.eclipse.jetty.server.AbstractHttpConnection $ RequestHandler.headerComplete(AbstractHttpConnection)的org.eclipse.jetty.server.BlockingHttpConnection.handleRequest(BlockingHttpConnection.java:47).jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:449) .java:910)org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:634)org.eclipse.jetty上的org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:230) . server.BlockingHttpConnection.handle(BlockingHttpConnection.java:66)位于org.eclipse.jetty.port上的org.eclipse.jetty.bio.SocketConnector $ ConnectorEndPoint.run(SocketConnector.java:254)中的$ SslConnectorEndPoint . 在org.eclipse.jet的org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:599)运行(SslSocketConnector.java:665) ty.util.thread.QueuedThreadPool $ 3.run(QueuedThreadPool.java:534)at java.lang.Thread.run(Thread.java:745)

如果相关:

操作系统:Windows 7 Java:1.8.0_25 Maven:3.2.2

任何帮助解决这个问题将不胜感激!