当前位置: 首页 > 知识库问答 >
问题:

为什么SFDC画布的SalesforceCanvasFrameworkSDK“Hello World”应用程序不工作?

薄鸿远
2023-03-14

目前我正在查看Force.com画布开发者指南的“第3章:快速入门-高级”。

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

构建成功并创建了密钥库。但是,当我执行目标\bin\webapp.bat时,我得到以下错误:

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

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

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\html" target="_blank">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/helloworld/index.jsp时出现问题。原因:

PWC6033: Unable to compile class for JSP

PWC6199:生成的servlet错误:无法解析类型type java.util.Map $条目。它是从required间接引用的。类别文件

原因是:

org.apache.jasper.JasperException: PWC6033: Unable to compile class for JSP

PWC6199:生成的servlet错误:无法解析类型type java.util.Map $条目。它是从required间接引用的。类别文件

在org . Apache . jasper . compiler . defaulterrorhandler . Java error(defaulterrorhandler . Java:123)在org . Apache . jasper . compiler . error dispatcher . Java:296)在org . Apache . jasper . compiler . generate class(compiler . Java:376)在org . Apache . jasper . compiler . compiler . compiler(compiler . Java:437)在org . Apache . jasper . jspcompilationcontext . compile(jspcompilation

同时,我的Jetty服务器因以下原因死亡:

如果相关:

操作系统:Windows 7Java:1.8。0_25Maven:3.2.2

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

共有1个答案

松洛华
2023-03-14

我能够在MacOS Sierra 10.13.6上修复如下

问题似乎确实存在于Java 8,因此如果您可以使用Java 7开始整个安装,您将节省大量时间。在我的例子中,我已经安装了Java 8,所以我必须执行以下操作:

1- 从安装 java 7:https://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase7-521261.html 。您必须创建一个Oracle帐户,它是免费的。

2-确认两个版本的java都在运行

Pablos-MacBook-Pro:SalesforceCanvasFrameworkSDK pabloalvarez$ /usr/libexec/java_home -V
Matching Java Virtual Machines (2):
    1.8.0_191, x86_64:  "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_191.jdk/Contents/Home
    1.7.0_80, x86_64:   "Java SE 7" /Library/Java/JavaVirtualMachines/jdk1.7.0_80.jdk/Contents/Home

3-然后

export JAVA_HOME=`/usr/libexec/java_home -v 1.7.0_80`
export JAVACMD=`/usr/libexec/java_home -v 1.7.0_80`

现在确认Java 7是默认版本

Pablos-MacBook-Pro:SalesforceCanvasFrameworkSDK pabloalvarez$ java -version
java version "1.7.0_80"
Java(TM) SE Runtime Environment (build 1.7.0_80-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.80-b11, mixed mode)

5-然后

export JAVACMD=/usr/bin/java

6-终于

Pablos-MacBook-Pro:SalesforceCanvasFrameworkSDK pabloalvarez$ sh target/bin/webapp
Looks like we are NOT running on heroku.
2019-01-14 10:54:48.557:INFO:oejs.Server:jetty-7.6.0.v20120127
2019-01-14 10:54:48.863:INFO:oejsh.ContextHandler:started o.e.j.w.WebAppContext{/,file:/Users/pabloalvarez/SalesforceCanvasFrameworkSDK/src/main/webapp/}
2019-01-14 10:54:49.252:INFO:oejus.SslContextFactory:Enabled Protocols [SSLv2Hello, TLSv1, TLSv1.1, TLSv1.2] of [SSLv2Hello, SSLv3, TLSv1, TLSv1.1, TLSv1.2]

祝你好运!

 类似资料:
  • 我试着在画布里放一幅画。但就是没有出现。我谷歌了一下,看看哪里出了问题。不幸的是,我还是解决不了。这是我的代码 这是css文件

  • 我有这个项目。然后我做以下步骤: 转到 预期结果:错误消息(在浏览器中呈现) 白标签错误页 此应用程序没有 /error的显式映射,因此您将此视为一种退回。星期二八月27 16:59:23CEST 2019有一个意外的错误(类型=未找到,状态=404)。没有可用的消息 如何更改附加的代码,使文件索引代替此错误。是否呈现xhtml? 更新1:如果我去,我得到这个错误: 白标签错误页此应用程序没有/E

  • 我使用的是Appium版本1.4.0(draco)和Xcode版本6.4。我无法让刷卡功能在我的自动测试中工作。iOS的模拟器设备是iPad air。任何有用的帖子将不胜感激。

  • 我已经连接了我的Windows10和linux机器。我想远程关闭我的Windows10电脑从我的Linux。然而,当我使用下面的Java程序时,它并没有关掉我的窗户。我试过用 相反,在程序中输出命令,但我得到了相同的结果。 输出

  • **Hola在清单文件中的权限: android.permission.receive_boot_completed android.permission.read_external_storage android.permission.write_external_storage android.permission.get_accounts android.permission.read_ph

  • 这是关于WEB开发、画布和HTML5的。 我正在用HTML5画布和JQuery开发一个绘画应用程序。您可以绘制多个图层,并获得带有放大镜效果的动态缩放。 架构是多画布: 背景: 画布背景 层: > 第1层 第2层 ... 分层的 工具: > 幽灵(当用户想要画线时显示“幽灵”线。释放鼠标确认绘制) 放大图层 我的问题是缩放。为了获得我想要的效果,我在放大图层上重新绘制了所有图层。当然,当您绘制20