我正在使用Google API Java客戶端創建憑證對象。以下代碼適用於Windows,但在OSX 10.10.3(優勝美地)上引發錯誤。ColdFusion〜Class不能是接口(僅限OSX)
<cfscript>
httpTransport = createObject("java", "com.google.api.client.http.javanet.NetHttpTransport").init();
jsonFactory = createObject("java","com.google.api.client.json.jackson2.JacksonFactory").init();
credential = createObject("java", "com.google.api.client.googleapis.auth.oauth2.GoogleCredential$Builder").init();
</cfscript>
我能夠調用的CreateObject對一些類的沒有問題(NetHttpTransport,JacksonFactory等),但是當我嘗試實例憑證生成器,我得到以下錯誤:
對象實例化異常。
實例化Java對象時發生異常。該類不能是接口或抽象類。錯誤:com/google/api/client/auth/oauth2/Credential $ Builder。
java.lang.NoClassDefFoundError: com/google/api/client/auth/oauth2/Credential
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:637)
at java.lang.ClassLoader.defineClass(ClassLoader.java:621)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
...
at jrun.servlet.jrpp.JRunProxyService.invokeRunnable(JRunProxyService.java:203)
at jrunx.scheduler.ThreadPool$ThreadThrottle.invokeRunnable(ThreadPool.java:428)
at jrunx.scheduler.WorkerThread.run(WorkerThread.java:66)
Caused by: java.lang.ClassNotFoundException: com.google.api.client.auth.oauth2.Credential
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
... 60 more
,我最終設法內的ColdFusion重現的Java代碼:
GoogleCredential credential = new GoogleCredential.Builder()
.setTransport(httpTransport)
.setJsonFactory(JSON_FACTORY)
.setServiceAccountId(SERVICE_ACCOUNT_EMAIL)
.setServiceAccountPrivateKeyFromP12File(new File(KEY_FILE_LOCATION))
.setServiceAccountScopes(AnalyticsScopes.all())
.build();
即對Java對象的鍋爐板錯誤消息。你能發佈完整的堆棧跟蹤嗎? – Leigh
謝謝。跟蹤表示其中一個必需的類丟失或無法訪問:'由於:java.lang.ClassNotFoundException:com.google.api.client.auth.oauth2.Credential'。驗證您是否已將包含該類的jar添加到CF類路徑 - 或者對於CF10 + [應用程序庫路徑](http://help.adobe.com/en_US/ColdFusion/10.0/Developing/WSe61e35da8d318518-106e125d1353e804331-7ffd.html )。 – Leigh