【发布时间】:2015-02-11 03:04:16
【问题描述】:
目前我正在查看“第 3 章:快速入门--高级”的 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 错误 500
访问 /examples/hello-world/index.jsp 时出现问题。原因:
PWC6033: Unable to compile class for JSPPWC6199:生成的 servlet 错误:java.util.Map$Entry 类型不能 得到解决。它是从所需的 .class 文件中间接引用的
原因:
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.ErrorDispatcher.javacError(ErrorDispatcher.java:296) 在 org.apache.jasper.compiler.Compiler.generateClass(Compiler.java:376) 在 org.apache.jasper.compiler.Compiler.compile(Compiler.java:437) 在 org.apache.jasper.JspCompilationContext.compile(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) 在 javax.servlet.http.HttpServlet.service(HttpServlet.java:820) 在 org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:565) 在 org.eclipse.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) 在 org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1031) 在 org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:406) 在 org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:186) 在 org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:965) 在 org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117) 在 org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:111) 在 org.eclipse.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) 在 org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:534) 在 java.lang.Thread.run(Thread.java:745) Powered by Jetty://
同时,我的 Jetty 服务器因以下原因而死机:
错误:编译错误 org.eclipse.jdt.internal.compiler.classfmt.ClassFormatException 在 org.eclipse.jdt.internal.compiler.classfmt.ClassFileReader.(ClassFileReader.java:372) 在 org.apache.jasper.compiler.JDTJavaCompiler$1.findType(JDTJavaCompiler.java:367) 在 org.apache.jasper.compiler.JDTJavaCompiler$1.findType(JDTJavaCompiler.java:324) 在 org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.askForType(LookupEnvironment.java:102) 在 org.eclipse.jdt.internal.compiler.lookup.UnresolvedReferenceBinding.resolve(UnresolvedReferenceBinding.java:49) 在 org.eclipse.jdt.internal.compiler.lookup.BinaryTypeBinding.resolveType(BinaryTypeBinding.java:122) 在 org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.getTypeFromTypeSignature(LookupEnvironment.java:1188) 在 org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.getTypeFromVariantTypeSignature(LookupEnvironment.java :1244) 在 org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.getTypeArgumentsFromSignature(LookupEnvironment.java:1 031) 在 org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.getTypeFromTypeSignature(LookupEnvironment.java:1193) 在 org.eclipse.jdt.internal.compiler.lookup.BinaryTypeBinding.createMethod(BinaryTypeBinding.java:495) 在 org.eclipse.jdt.internal.compiler.lookup.BinaryTypeBinding.createMethods(BinaryTypeBinding.java:577) 在 org.eclipse.jdt.internal.compiler.lookup.BinaryTypeBinding.cachePartsFrom(BinaryTypeBinding.java:327) 在 org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.createBinaryTypeFrom(LookupEnvironment.java:640) 在 org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.createBinaryTypeFrom(LookupEnvironment.java:619) 在 org.eclipse.jdt.internal.compiler.Compiler.accept(Compiler.java:295) 在 org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.askForType(LookupEnvironment.java:133) 在 org.eclipse.jdt.internal.compiler.lookup.PackageBinding.getTypeOrPackage(PackageBinding.java:183) 在 org.eclipse.jdt.internal.compiler.lookup.CompilationUnitScope.findImport(CompilationUnitScope.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.jdt.internal.compiler.lookup.CompilationUnitScope.faultInTypes(CompilationUnitScope.java:444) 在 org.eclipse.jdt.internal.compiler.Compiler.process(Compiler.java:752) 在 org.eclipse.jdt.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.JspServletWrapper.service(JspServletWrapper.java:360) 在 org.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.servlet.ServletHolder.handle(ServletHolder.java:565) 在 org.eclipse.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) 在 org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1031) 在 org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:406) 在 org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:186) 在 org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:965) 在 org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117) 在 org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:111) 在 org.eclipse.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) 在 org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:534) 在 java.lang.Thread.run(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:WARN: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.ErrorDispatcher.javacError(ErrorDispatcher.java:296) 在 org.apache.jasper.compiler.Compiler.generateClass(Compiler.java:376) 在 org.apache.jasper.compiler.Compiler.compile(Compiler.java:437) 在 org.apache.jasper.JspCompilationContext.compile(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) 在 javax.servlet.http.HttpServlet.service(HttpServlet.java:820) 在 org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:565) 在 org.eclipse.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) 在 org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1031) 在 org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:406) 在 org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:186) 在 org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:965) 在 org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117) 在 org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:111) 在 org.eclipse.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) 在 org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:534) 在 java.lang.Thread.run(Thread.java:745)
如果相关:
操作系统:Windows 7 爪哇:1.8.0_25 Maven:3.2.2
任何解决此问题的帮助将不胜感激!
【问题讨论】:
-
你有没有解决过这个问题@brian-kessler?我正在调查一个类似的问题,目前怀疑该问题是 Jetty v8 和 Java 8 之间的不兼容,但如果您发现了原因,很高兴听到它。
-
@MattSheppard,我不记得曾经找到解决方案或解决方法。对不起。
-
不用担心 - 感谢您的跟进。我已经看得更远了,我相当肯定在我的情况下需要升级到 Jetty 9,但到目前为止我还没有让 JSP 在 Jetty 9 中工作。
标签: exception canvas salesforce jetty classpath