【发布时间】:2014-01-03 05:56:30
【问题描述】:
我通过将 .jar 文件放在 Coldfusion 服务器的 WEB-INF/lib 文件夹中来加载 Google 的 Java 客户端以进行服务帐户授权。可以这样创建 java 对象:
<cfset credential = createObject("java", "com.google.api.client.googleapis.auth.oauth2.GoogleCredential") />
但是如果java类有任何ClassName$InnerClassName形式的内部类,当对象被转储时,它们似乎没有被加载。
具体来说,我尝试添加从这里下载的 .jar 文件:https://code.google.com/p/google-api-java-client/downloads/list
我试图转换为 CF 的代码是:
GoogleCredential credential = new GoogleCredential.Builder().setTransport(HTTP_TRANSPORT)
.setJsonFactory(JSON_FACTORY)
.setServiceAccountId("[[INSERT SERVICE ACCOUNT EMAIL HERE]]")
.setServiceAccountScopes(PlusScopes.PLUS_ME)
.setServiceAccountPrivateKeyFromP12File(new File("key.p12"))
.build();
这个<cfset credential = createObject("java", "com.google.api.client.googleapis.auth.oauth2.GoogleCredential") /> 可以很好地创建对象,但是当它被转储或在代码中调用 Builder() 方法时,转储不显示 Builder 方法,或者说分别找不到该方法。
当我从google-api-client-1.17.0-rc.jar 文件中提取类时,具有该方法的类作为GoogleCredential$Builder.class 存在
底线是 .jar 文件中的所有内容似乎都井井有条,但是当它们被添加到 CF 时,并非所有内容都在那里。
有人知道为什么 CF 没有完全加载 .jar 文件吗?
【问题讨论】:
标签: java coldfusion jar google-oauth-java-client